目录
第4章 Numpy基础
数组运算:大小相等的数组间、数组和标量间的算术运算都会将运算应用到各个元素。
数组的比较运算会产生bool型数组。示例:
- 数组切片:
arr[5:8]是从下标5 到下标7
将一个标量值赋给一个切片时,该值会自动传播到整个选区。
数组切片与列表不同,数组切片时原始数组的视图,修改会直接反映到源数组上。
如果想得到ndarray切片的副本,则需要 arr[5:8].copy()
- N维数组:
N维数组 递归访问:arr2d[0][2] 索引访问:arr2d[0,2]
N维数组可多轴切片。 arr2d[:2,1:]
N维的 整数索引 和 切片 混合, 示例:arr2d[1,:2]。
仅有:(冒号)时表示选取整个轴
- 花式索引:向数组[]内传入一个用于指定顺序的整数列表或ndarray
如arr为5*4数组,
arr=[[0,0,0,0],
[1,1,1,1],
[2,2,2,2],
[3,3,3,3],
[4,4,4,4] ]
则 arr[[4,3,0,1]] 为:
[[4,4,4,4],
[3,3,3,3],
[0,0,0,0],
[1,1,1,1]]
- arr.T #转置
np.dot(arr.T,arr) # 计算矩阵内积
矩阵乘法:dot函数 x.dot(y) # 相当于np.dot(x,y)
通用函数:对ndarray中的数据执行元素级运算; 如sqrt、exp(这些是一元),maximum、add、multiply(这些是二元,可以接受两个数组,并返回一个结果数组)。
- where
arr3=np.where(条件,arr1,arr2) # 满足条件则arr3[i]为arr1,否则为arr2; arr1、arr2也可以是标量;
arr=np.where(arr>0,2,arr) # 只将正值设置为2 。
- 布尔型数组
bools.any() # 数组中是否存在>=1个True
bools.all() # 数组中是否所有值都是True
- 排序
arr.sort[ ]
只在一个轴上排序 arr.sort[1]
- np.unique # 找到一维ndarray中的唯一值并返回已排序的结果
np.uniques(ages) 等同于sorted(set(names))
第5章 Pandas入门
- drop方法:删除指定行或列(许多方法,如drop可以就地修改对象,但不会返回新的对象)
- sort_index 方法:对行索引或列索引进行排序
- 对DataFrame进行索引就是获取一个或多个列,如 data['country'] 为获取country这一列;
但有几个特殊情况:data[:2]是对DataFrame切片,选取的是行。