Numpy数组

来源:互联网 发布:柳州博腾网络 编辑:程序博客网 时间:2024/05/29 21:30

1、列表和数组:列表数据类型可以不同;数组的数据类型相同
2、N维数组对象:ndarray Python已有列表类型,为什么需要一个数组对象(类型)?
• 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据
• 设置专门的数组对象,经过优化,可以提升这类应用的运算速度
• 数组对象采用相同的数据类型,有助于节省运算和存储空间

3、N维数组对象:ndarray
ndarray是一个多维数组对象,由两部分构成: • 实际的数据 • 描述这些数据的元数据(数据维度、数据类型等); ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始
4、ndarray对象的属性 :
.ndim: 秩,即轴的数量或维度的数量
.shape: ndarray对象的尺度,对于矩阵,n行m列
.size: ndarray对象元素的个数,相当于.shape中n*m的值
.dtype: ndarray对象的元素类型(整数、浮点数、布尔型)
.itemsize: ndarray对象中每个元素的大小,以字节为单位

5、ndarray数组的创建方法:(ndarray在程序中的别名是:array)
(1)从Python中的列表、元组等类型创建ndarray数组,x = np.array(list/tuple, dtype=np.float32)
(2)使用NumPy中函数创建ndarray数组,如:arange, ones, zeros等
np.arange(n): 类似range()函数,返回ndarray类型,元素从0到n‐1
np.ones(shape): 根据shape生成一个全1数组,shape是元组类型
np.zeros(shape): 根据shape生成一个全0数组,shape是元组类型
np.full(shape,val): 根据shape生成一个数组,每个元素值都是val
np.eye(n): 创建一个正方的n*n单位矩阵,对角线为1,其余为0
np.concatenate(): 将两个或多个数组合并成一个新的数组
。。。
6、ndarray数组的维度变换:
.reshape(shape):不改变数组元素,返回一个shape形状的数组,原数组不变
.resize(shape) : 与.reshape()功能一致,但修改原数组
.swapaxes(ax1,ax2) :将数组n个维度中两个维度进行调换
.flatten(): 对数组进行降维,返回折叠后的一维数组,原数组不变
7、ndarray数组的类型变换:astype()方法

8、数组的索引和切片:
a[1 :4 :2] 表示 起始编号: 终止编号(不含): 步长
多维数组的切片

9、数组计算:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

10、Numpy数据的存取:一二维数据存取
(1)np.savetxt(frame, array, fmt=’%.18e’, delimiter=’,’)
frame : 文件、字符串或产生器,可以是.csv .gz或.bz2的压缩文件
fmt:‘%d’表示十进制整数格式,‘%.1f’表示保留一位小数,‘%s’表示字符串格式
(2)np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)
np.float、np.int分别表示浮点数和整数
unpack : 如果True,读入属性将分别写入不同变量

11、多维数据存取:
(1)
存:a.tofile(frame, sep=”, format=’%s’)
取:np.fromfile(frame, dtype=float, count=‐1, sep=”)
count : 读入元素个数,‐1表示读入整个文件
(该方法需要读取时知道存入文件时数组的维度和元素类型)
(2)便捷式(存为二进制数据,存取更方便)
存:np.save(fname, array)
取:np.load(fname)

12、NumPy的random子库

13、Numpy的统计函数:
这里写图片描述
这里写图片描述
这里写图片描述

原创粉丝点击