NumPy的ndarray:一种多维数组对象
创建ndarray
data.shape |
表示各维度大小的元组 |
data.dtype |
表示数组数据类型 |
data.ndim |
返回维数 |
ndarray的数据类型
astype |
显式地转换其dtype,会创建一个新的数组(一份拷贝) |
数组和表量之间的运算
两数组之间直接使用+、-、*、/
基本的索引和切片
arr[5:8] |
数组切片是原始数组的视图(数据不会被复制),视图上的任何修改都会直接反映到原数组上 |
如arr[5:8]返回index为5-7的值,不包括8 |
arr[5:8].copy() |
如果想要得到ndarray的副本而不是视图,需要显式地进行复制 |
布尔型索引
布尔型数组跟切片、整数可混合使用。如data[names=='bob', 2:]
也可以使用多个布尔条件,如& | !。但and和or在布尔型数组中无效
花式索引
arr([1,5],[3,5]) |
选出的是元素(1,3)和(5,5) |
arr[[1,5]] [:, [0,3,1,2]] |
选出1和5行的全部元素,列按0/3/1/2顺序排列 |
np.ix_ |
将两个一维整数数组转换为一个用于选取方形区域的索引器 |
arr[np.ix_([1,5],[0,3,1,2])]返回结果与上一个一样 |
数组转置和轴对换
转置 |
arr.T或arr.transpose()(可用于高维度,输入一个由轴编号组成的元组) |
返回的是原数据的视图,不进行复制操作 |
通用函数:快速的元素级数组函数
利用数组进行数据处理
将条件逻辑表述为数组运算
np.where(x,y,z) |
x为条件,x为true则返回y,否则为z |
数学和统计方法
用于布尔型数组的方法
(arr > 0).sum() |
布尔值会被强制转换为1/0,sum可用于计算1的值 |
arr.any() |
检查arr数组中是否存在一或多个true |
arr.all() |
检查是否全都是true |
排序
np.sort() |
返回已排序的副本,参数可输入1或0表示行和列 |
唯一化以及其他集合的逻辑
用于数组的文件输入输出
将数组以二进制形式保存到磁盘
np.save('文件名',数组) |
存 |
np.load('文件名') |
读取 |
np.savez('文件名',a=arr,b=arr) |
将多个数组保存到一个压缩文件 |
存取文本文件
np.loadtxt('文件名',delimmiter = ',') |
np.savetxt() |
进行相反的操作 |
线性代数
随机数生成