numpy
基本信息
- .size返回元素总数.dtype返回类型,nbytes占用内存
- numpy.ndim返回数组的维度
- 注解:[1,2,3]是一维,[[1,2,3],[1,2,3]]是二维,[[[1,2,3],[1,2,3]],[[4,5,6],[7,8,9]]]是三维
- numpy.shape返回各位维度大小的元组
- shape分别为(3,),(2,3),(2,2,3) 例如最后一个等效成[A,B],A又是2*3的数组,所以shape=(2,2,3)
- 相乘或者相加会自动对其每个元素进行操作,而不是和列表一样扩展长度
- np.sin(),np.exp(),np.log(),np.sum(),作用像名字一样
- 对其元素的操作类似于列表
- np对dtype类型要求严格,你定义的整型数组参数就会自动变为整型
- num = np.array([[1, 2, 3],[1, 2, 3]]), dtype=‘float64’),设置类型,赋值num[0,0]或者num[0][0]
- num[0]=[1,2,3]
- num = np.arange(0, 25).reshape(5, 5) 这是创建一个0-25的数组,再把形状转成5*5
- num < 3 -> 输出一个元素为bool的矩阵 [[True, True, False],[True, True, False]]
- 想知道哪些元素小于8同时大于3 -> (num<8)&(num>3) (& | ~ ^)都能用
- num[num<3] = 10 -> [[10, 10, 3],[10, 10, 3]] ,同理num[(num<8)&(num>3)]也能得到你想要的
- 花式索引:num[[0,1],[1,2]] ->[2,3],num[:,[1,2]] -> [[2 3] [2 3]],mask = np.array([0,1])
print(num[mask,[1,2]]) -> [2 3] - 取出3的整数倍,num[num % 3 == 0] num%3会得到num的取余值,==0后会返回bool矩阵
- 理解axis,a = np.array([[1, 2, 3],[4, 5, 6]]) ,a.sum(axis=0) ->[5,7,9],a.sum(axis=-1)->[6,15]
axis=0就是把行给压缩到一行,axis=-1就是把列给压缩到一列,指定的轴会消失 - 查找最大最小值,a = np.array([[1, 4, 5],[4, 5, 2]]),a.max(axis=0) -> [4 5 5] a.max(axis=1) -> [5 5]查找最大值,a.argmax(axis=0) -> [1 1 0] a.argmax(axis=1) -> [2 1]查找最大值索引,min同理,不带参数就会返回最大值