numpy 为什么np.shape()不能生成2位元组?

scyqe7ek  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(130)

根据我对np.shape()函数的理解,该函数返回一个元组,每个索引都有相邻元素的数量。
当我在2D-array上运行np.shape()时:

a = np.array(([5,6,2,5],[7,8,9,10]))
print(np.shape(a))

字符串
我得到(2,4)
但是,当我在1D-array上运行np.shape()时:

d = np.array([1, 2, 3, 4, 5, 6])
print(np.shape(d))


我得到(6,)
为什么答案不是(1)?因为上面的2D阵列表示2行,4列。在1D数组中,我只有一行。我猜6代表1D数组中的6个元素。
我知道它返回相邻元素个数的定义。然而,即使这样也与2行4列的答案相矛盾,因为它没有考虑元素。
有人能帮我澄清一下我的疑惑吗?- 谢谢你-谢谢

fzwojiic

fzwojiic1#

直观地说,将一维阵列描述为1行中的N个元素是正确的,但np.shape()是任意定义的,以提供关于阵列尺寸的清晰信息。在Numpy documentation中,它说返回的“形状元组的元素给予了相应数组维度的长度”。一般来说,Numpy和编程中的数组维度是基于将数组嵌套到更大的数组中的次数。因此,这将返回(1,6)

np.shape(np.array([[1,2,3,4,5,6]]))

字符串
因为一个数组嵌套在另一个数组中。

相关问题