Python numpy.all轴参数错误行为?
我有一个如下数组Python numpy.all轴参数错误行为?,python,numpy,axis,Python,Numpy,Axis,我有一个如下数组 a = np.array([[0, 5, 0, 5], [0, 9, 0, 9]]) >>>a.shape Out[72]: (2, 4) >>>np.all(a,axis=0) Out[69]: array([False, True, False, True], dtype=bool) >>>np.all(a,axis=1) Out[70]: array([False, False
a = np.array([[0, 5, 0, 5],
[0, 9, 0, 9]])
>>>a.shape
Out[72]: (2, 4)
>>>np.all(a,axis=0)
Out[69]:
array([False, True, False, True], dtype=bool)
>>>np.all(a,axis=1)
Out[70]:
array([False, False], dtype=bool)
因为轴0表示二维数组中的第一个轴(行方向)
我希望当np.all(a,axis=0)
给定时,它会检查每行的所有元素是否为真
但它看起来像是检查每列的,,因为它将输出为4个元素,如数组([False,True,False,True],dtype=bool)
我对np.all函数有什么误解?
axis=0
意味着沿着轴0将元素一起,因此a[0,0]
与a[1,0]
进行AND运算,a[0,1]
与a[1,1]
进行AND运算,等等。指定的轴被折叠
您可能认为需要np.all(a[0])
,np.all(a[1])
等,通过沿轴0索引并对每个子阵列执行np.all
来选择子阵列。这与它的工作原理相反;这将折叠除指定轴之外的每个轴
对于2D数组,一种约定与另一种约定相比没有多大优势,但是对于3D和更高版本,NumPy选择的约定更有用。
axis=0
意味着沿着轴0和元素一起,因此a[0,0]
与a[1,0]
,a[0,1]
与[1,1]等进行AND运算。指定的轴将折叠
您可能认为需要np.all(a[0])
,np.all(a[1])
等,通过沿轴0索引并对每个子阵列执行np.all
来选择子阵列。这与它的工作原理相反;这将折叠除指定轴之外的每个轴
对于二维阵列,一种约定相对于另一种约定没有多大优势,但对于三维及更高版本,NumPy选择的约定更有用。
axis=0
是二维的每列。轴从左开始为0,1,2,等等。我记得看到了一个很好的副本,但我找不到它。将轴
参数视为正在折叠的轴。当您通过轴=0时,您正在将所有行折叠为一行。-解释了“沿轴求和”的含义。轴=0
是2D的每列。轴从左开始为0,1,2,等等。我记得看到了一个很好的副本,但我找不到它。将轴
参数视为正在折叠的轴。当您通过轴=0时,您正在将所有行折叠为一行。-解释了“沿轴求和”的含义。虽然有点晚了,但还是要谢谢你!。我终于明白了。!嗯,虽然有点晚了,但还是要谢谢你!。我终于明白了。!