Numpy axis简单解释
在学习python中经常会用到numpy这个科学库,它是用C语言编写的所以对于矩阵的计算速度远远快于python自己的计算方法。这里对于Numpy的安装和介绍就不再提示了,重点说明一下自己对于axis轴的理解。
图中的矩阵是一个shape=(3, 5)的numpy.array, 这里不按照是行还是列的说法。而是按照ndims来说,就是第一个维度和第二个维度。按照索引的顺序,axis=0代表的就是第一个维度的方向,axis=1就是代表第二个维度的方向,依次往下类推。
一个简单的二维数组
1 | import numpy as np |
数组的维度
1 | >>>print(arr.ndim) |
数组求和
1 | sum_0 = np.sum(arr, axis=0) |
按照上面的图表示,当axis=0的时候求和的结果是按照row的方向来求和,也就是说是每一列的求和。当axis=1的时候求和的结果就是按照col的方向来求和, 也就是说是每一行的求和。看下面的结果
1 | import numpy as np |
三维数组
1 | array_3 = np.random.randint(0, 5, [2, 3, 2]) |
三维数组的三个维度,axis=0输出的就是剩下两个维度的结果。同理一样
1 | >>>(3, 2) |
axis的分析并不难,只是不是通常所记忆的索引问题,所以每次用axis的时候一定要想一想上面的那个图。记住0和1的方向指引,熟能生巧。