numpy.all 轴参数行为不当?

2023-12-09

我有一个以下数组。

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)给定后,它会检查每一行的所有元素是否为 True。

但似乎要检查一下每列因为它给出了 4 个元素的输出,例如array([False, True, False, True], dtype=bool).

我对 np.all 功能有什么误解?


axis=0意味着将元素与在一起along轴 0,所以a[0, 0]a[1, 0], a[0, 1]a[1, 1]等。指定的轴被折叠。

你可能认为这需要np.all(a[0]), np.all(a[1])等,通过沿轴 0 索引并执行来选择子数组np.all在每个子数组上。这与它的工作原理相反;这将折叠除指定轴之外的所有轴。

对于 2D 数组,一种约定相对于另一种约定并没有太大优势,但对于 3D 及更高维数组,NumPy 选择的约定更有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

numpy.all 轴参数行为不当? 的相关文章

随机推荐