[利用python进行数据分析 书笔记]第4章 NumPy基础:数组和矢量计算

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() 进行相反的操作

线性代数



随机数生成


猜你喜欢

转载自blog.csdn.net/Daisy_fight/article/details/80791313