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() | 进行相反的操作 |
线性代数
随机数生成