Python行/列混淆
从这段代码可以清楚地看出,您传递的第一个列表([1,2,3])将成为2D数组的第一行,而不是第一列Python行/列混淆,python,arrays,numpy,Python,Arrays,Numpy,从这段代码可以清楚地看出,您传递的第一个列表([1,2,3])将成为2D数组的第一行,而不是第一列 >>> b = np.array([[1,2,3], [4,5,6], [7,8,9]]) >>> b[0,2] 3 为什么这不给我数组([6,15,24])?我将0设置为轴,表示行。第一行的总和是6,而不是12。来自: 轴是为具有多个维度的阵列定义的。二维数组有两个对应的轴:第一个轴垂直向下跨行(轴0),第二个轴水平跨列(轴1) 所以,如果您想在第一行求和,
>>> b = np.array([[1,2,3], [4,5,6], [7,8,9]])
>>> b[0,2]
3
为什么这不给我数组([6,15,24])?我将0设置为轴,表示行。第一行的总和是6,而不是12。来自:
轴是为具有多个维度的阵列定义的。二维数组有两个对应的轴:第一个轴垂直向下跨行(轴0),第二个轴水平跨列(轴1)
所以,如果您想在第一行求和,它将跨列,您需要将axis更改为1:
>>> np.apply_along_axis(sum, 0, b)
array([12, 15, 18])
也可以使用numpy数组的sum方法:
In [194]: np.apply_along_axis(sum, 1, b)
Out[194]: array([ 6, 15, 24])
好吧,我误解了“沿给定轴将函数应用于一维切片”(我不是母语人士,也许这就是原因)。我认为这意味着你沿着指定的轴走,并切掉一维向量(就像轴=0时的行):D非常感谢!
In [198]: b.sum(axis=1)
Out[198]: array([ 6, 15, 24])