形状数组
(442, 1)是二维的。它具有442行和1列。
形状数组
(442, )是一维的,由442个元素组成。
请注意,他们的代表也应该看起来有所不同。括号的数量和位置有所不同:
In [7]: np.array([1,2,3]).shapeOut[7]: (3,)In [8]: np.array([[1],[2],[3]]).shapeOut[8]: (3, 1)
请注意,您可以
np.squeeze用来删除长度为1的轴:
In [13]: np.squeeze(np.array([[1],[2],[3]])).shapeOut[13]: (3,)
NumPy广播规则允许在需要时
在左侧 自动添加新轴。因此
(442,)可以广播到
(1, 442)。长度为1的轴可以广播到任意长度。因此,当你测试形状的阵列之间的相等
(442,1)和形状的阵列
(442, ),所述第二阵列被提升到形状
(1,442),然后将两个阵列扩大它们的长度1上,使得它们都成为广播形状的阵列的轴
(442,442)。这就是为什么当您测试相等性时,结果是一个布尔的shape数组
(442, 442)。
In [15]: np.array([1,2,3]) == np.array([[1],[2],[3]])Out[15]: array([[ True, False, False], [False, True, False], [False, False, True]], dtype=bool)In [16]: np.array([1,2,3]) == np.squeeze(np.array([[1],[2],[3]]))Out[16]: array([ True, True, True], dtype=bool)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)