用图生动解释numpy.sum(axis=0/1/2)
1. numpy.sum(axis=0/1/2)对比
1.1 代码结果对比
import numpy
# a.shape=(2,3,4) 2页3行4列 即:2个3行4列的二维矩阵
a = numpy.array([
[[1,2,3,4],
[5,6,7,8],
[9,10,11,12]],
[[11,12,13,14],
[15,16,17,18],
[19,20,21,22]],
])
# axis=0 按页与页之间对应的数字相加
# a.shape=(2,3,4) => page.shape=(3,4)
page = a.sum(axis=0)
# axis=1 按行与行之间对应的数字相加
# a.shape=(2,3,4) => row.shape = (2,4)
row = a.sum(axis=1)
# axis=2按列与列之间对应的数字相加
# a.shape=(2,3,4) => column.shape = (2,3)
column = a.sum(axis=2)
print(page)
print(row)
print(column)
[[12 14 16 18]
[20 22 24 26]
[28 30 32 34]]
[[15 18 21 24]
[45 48 51 54]]
[[10 26 42]
[50 66 82]]
1.2 维度变化对比
| a.shape | axis = 0 | axis = 1 | axis = 2 |
|---|---|---|---|
| (2,3,4) | (3,4) | (2,4) | (2,3) |
我们发现 axis=0/1/2 分别把对应 a.shape 位上的维度数去掉了呀。
2. 用图来解释三维下的axis=0/1/2
2.1 axis=0 按页与页之间对应的数字相加
# axis=0 按页与页之间对应的数字相加
page = a.sum(axis=0)
[[12 14 16 18]
[20 22 24 26]
[28 30 32 34]]

2.2 axis=1 按行与行之间对应的数字相加
# axis=1 按行与行之间对应的数字相加
row = a.sum(axis=1)
[[15 18 21 24]
[45 48 51 54]]

2.3 axis=2 按列与列之间对应的数字相加
# axis=2 按列与列之间对应的数字相加
column = a.sum(axis=2)
[[10 26 42]
[50 66 82]]

看图之后一目了然呀,妈妈再也不用担心我不懂numpy.sum()了!!!

本文通过代码示例和图表,详细解析了numpy.sum()函数中axis参数的作用,展示了在不同轴上进行求和操作如何影响多维数组的形状和数据处理。适合初学者和需要深入理解numpy操作的开发者。
8万+

被折叠的 条评论
为什么被折叠?



