<数据分析> NumPy初见
NumPy 学习笔记
from 《利用Python进行数据分析》
numpy导包语句:
1 | import numpy as np |
ndarray
两个重要的attribute:dtype
:表示数组容纳的数据类型;shape
:元组,指示着数组的形状
ndarray的生成
生成方法:
总的来说可以按照接受参数分为四类:
构造型:np.array()
:接受参数为元组、列表或者其他参数;
“按需供给型”:
接受参数为shape
和dtype
,具体代表有:np.ones()
、np.zeros()
;
“like”型:
接受一个ndarray实例并按要求生成一个形似其的ndarray实例,具体代表有:np.oneslike()
、np.zeros_like
;
特征矩阵型:
生成指定大小(N x N)的特征矩阵。np.eye()
、np.inentity()
.
ndarray数据类型
重要方法:np.astype()
接受参数为一个dtype,功能为强制转换数组数据类型。
NumPy数组算数
NumPy所支持的数组算数是定义在两个尺寸相同d的ndarray之间的。
1 | # 设arr, arr1为两个尺寸相同的ndarray的引用,NumPy支持以下写法: |
基础索引与切片
一个值得注意的事实是,ndarray的切片是这个数组的一个视图,也就是说,当对切片进行操作时,这个操作会映射到原数组上;
如果希望得到切片的一个副本,那么需要调用:np.copy()
方法,这个方法返回一个ndarray的副本。
具体索引/切片形式和python内建数据结构相似,形如x:y
这样的形式包含在中括号中。
对于多维数组(以三维数组arr3d为例),其索引形式为:arr3d[甲,乙,丙],从左至右依次选定中括号层次由外向内的系列对象。
布尔索引
fact1 :
1 | names = np.array(['a', 'b', 'b']) |
fact2 :
索引数组可以传入布尔数组作为某个轴的索引参数。
魔术索引(magic index)
数组转置和转轴
通用函数
这个查书就好
使用数组进行面向数组编程
1 | points = np.arange(-5, 5, 0.01) |
np.where(cond, xarr, yarr)
方法可以被看做python三元表达式的向量化版本,其功能为:若cond中数组相应位置元素满足cond表达式,则用xarr对应元素替换,否则用yarr对应元素替换。
后续不再摘录书中方法,有必要去查numpy官方API文档即可。