numpy总结

numpy具有如下功能:

  • ndarray数组:一个具有矢量算术运算和复杂广播能力的多维数组,具有快速且节省空间的特点;
  • 对整组数据进行快速运算的标准数学函数(无需编写循环);
  • 线性代数、随机数生成以及傅里叶变换功能;
  • 读写磁盘数据、操作内存映射文件。

简单使用:

import numpy as np

a=np.array([1,2,3,4])

numpy的基本结构是narray数组,narray数组有如下优点:

  • ndarray数组中所有元素的数据类型相同、数据地址连续,批量操作数组元素时速度更快。而list列表中元素的数据类型可能不同,需要通过寻址方式找到下一个元素。
  • ndarray数组支持广播机制,矩阵运算时不需要写for循环。
  • NumPy底层使用C语言编写,内置并行计算功能,运行速度高于Python代码。
#创建数组
#
从list创建array a = [1,2,3,4,5,6] # 创建简单的列表 b = np.array(a) # 将列表转换为数组
c = np.arange(0,10,2)#创建元素从0到10依次递增二的数组

#创建3x3全零的数组
a = np.zeros([3,3])
#创建3x3全1的数组
np.ones([3,3])

查看ndarray数组的属性

  • shape:数组的形状 ndarray.shape,1维数组(N, ),二维数组(M, N),三维数组(M, N, K)。
  • dtype:数组的数据类型。
  • size:数组中包含的元素个数 ndarray.size,其大小等于各个维度的长度的乘积。
  • ndim:数组的维度大小,ndarray.ndim, 其大小等于ndarray.shape所包含元素的个数。

改变ndarray数组的数据类型和形状

b = a.astype(np.int64)#把a数组的元素的数据类型全改为int64
c = a.reshape([1, 9])#把a的形状改为1x9

 ndarray数组的基本运算

  • 标量和ndarray数组之间的运算(数组的每个元素都和标量做运算)
  • 两个ndarray数组之间的运算(数组的对应元素做运算)

数组切片

a = np.arange(30)
b = a[4:7]#b=[4,5,6]

ndarray数组的统计方法

  • mean:计算算术平均数,零长度数组的mean为NaN。
  • stdvar:计算标准差和方差,自由度可调(默认为n)。
  • sum :对数组中全部或某轴向的元素求和,零长度数组的sum为0。
  • maxmin:计算最大值和最小值。
  • argminargmax:分别为最大和最小元素的索引。
  • cumsum:计算所有元素的累加。
  • cumprod:计算所有元素的累积。
#例
arr = np.array([[1,2,3], [4,5,6], [7,8,9]]) arr.mean(), np.mean(arr)

随机数np.random

np.random.rand(3, 3)#生成3x3的均匀分布
np.random.randn(3, 3)#生成3x3的标准正态分布

随机打乱ndarray数组顺序

# 生成一维数组
a = np.arange(0, 30)
print('before random shuffle: ', a)
# 打乱一维数组顺序
np.random.shuffle(a)
print('after random shuffle: ', a)

线性代数

  • diag:以一维数组的形式返回方阵的对角线(或非对角线)元素,或将一维数组转换为方阵(非对角线元素为0)。
  • dot:矩阵乘法。
  • trace:计算对角线元素的和。
  • det:计算矩阵行列式。
  • eig:计算方阵的特征值和特征向量。
  • inv:计算方阵的逆。

NumPy保存和导入文件

文件读写

# 使用np.fromfile从文本文件'housing.data'读入数据
# 这里要设置参数sep = ' ',表示使用空白字符来分隔数据
# 空格或者回车都属于空白字符,读入的数据被转化成1维数组
d = np.fromfile('./work/housing.data', sep = ' ')

文件保存

复制代码
# 产生随机数组a
a = np.random.rand(3,3)
np.save('a.npy', a)

# 从磁盘文件'a.npy'读入数组
b = np.load('a.npy')

# 检查a和b的数值是否一样
check = (a == b).all()
check # True
复制代码

 

posted @   {hunter}ZY  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示