python——axis=0,1的理解

结论

二维

axis=0

rows——
axis=0:沿着 行(rows) 的方向 跨 列
即当axis=0时,我们沿着每一列或行标签向下执行(垂直方向)

axis=1

cols——
axis=1:沿着 列(cols) 的方向 跨 行
即当axis=1时,我们沿着每一行或者列标签向右执行(水平方向)

进阶:多维

axis的实际含义是根据axis指定的维度进行连接,如矩阵m1的维度为(2,3), 那么axis=0就代表了第一个维度‘2’。
因此,将m1和m2按照第一个维度进行连接,得到的新的矩阵就是将第一维度进行相加,其余维度不变,即维度变成了(4,3)。
同理,axis=1时就是将矩阵的第二维度进行合并,其余维度不变,即维度变成了(2,6)。

axis的值也可以设置为负数,如axis=-1实际上就是指倒数第一个维度。

numpy中axis参数说明:
axis=i,即沿着数组第i个下标的变化方向进行操作。遍历完第i个下标所有的变化,求一次值。
axis=(i,j),即沿着数组第i和第j两个下标的变化方向进行操作。

e.g.,数组a有四个轴分别是x,y,w,z轴,这四个轴也分别叫第0轴、第1轴、第2轴和第3轴。数组a的shape=(5,3,2,4),执行np.sum(a,axis=XX),当axis=0,即沿着第0个轴x下标变化的方向进行求和,第0轴降维,得到的shape=(3,2,4)。

图例

示例

二维

a=np.array([[1,2],[3,4]])
np.sum(a) #10
np.sum(a,axis=0) #[4 6]
np.sum(a,axis=1) #[3 7]

进阶:多维

a=np.random.randint(1,100,size=(2,3,4,5))
a.shape #(2,3,4,5)
np.sum(a,axis=1).shape #(2,4,5)
np.min(a,axis=2).shape #(2,3,5)
posted @ 2022-05-31 12:42  岸南  阅读(693)  评论(0)    收藏  举报