use*_*532 2 python arrays numpy
>>> b = np.array([[1,2,3], [4,5,6], [7,8,9]])
>>> b[0,2]
3
Run Code Online (Sandbox Code Playgroud)
从这段代码中可以清楚地看到,您传递的第一个列表([1,2,3])成为第一个ROW,而不是2D数组的第一个COLUMN.
>>> np.apply_along_axis(sum, 0, b)
array([12, 15, 18])
Run Code Online (Sandbox Code Playgroud)
为什么这不给我阵列([6,15,24])?我将0设置为轴,这意味着行.第一行的总和是6,而不是12.
来自docs:
轴是为具有多个维度的数组定义的.二维阵列具有两个相应的轴:第一个在行(轴0)上垂直向下运行,第二个轴在列(轴1)上水平运行.
因此,如果要在第一行求和,它将跨列,您需要将轴更改为1:
In [194]: np.apply_along_axis(sum, 1, b)
Out[194]: array([ 6, 15, 24])
Run Code Online (Sandbox Code Playgroud)
或者你可以用numpy数组的sum方法来做:
In [198]: b.sum(axis=1)
Out[198]: array([ 6, 15, 24])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
808 次 |
| 最近记录: |