在一个函数中,我给出一个Numpy数组:它可以是多维的,也可以是一维的

因此,当我给出一个多维数组时:

np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]).shape
>>> (3, 4)


np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]).shape[1]
>>> 4

美好的。

但是当我问形状
np.array([1,2,3,4]).shape
>>> (4,)


np.array([1,2,3,4]).shape[1]
>>> IndexError: tuple index out of range

糟糕,元组只包含一个元素...而我想让1表示它是一维数组。
有没有办法做到这一点?我的意思是说,它具有简单的函数或方法,并且没有针对ndim的判别测试?

谢谢 !

最佳答案

>>> a
array([1, 2, 3, 4])
>>> a.ndim
1
>>> b = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
>>> b.ndim
2

如果要使用列向量,则可以使用.reshape方法-实际上,.shape实际上是一个可设置的属性,因此numpy还可让您执行此操作:
>>> a
array([1, 2, 3, 4])
>>> a.shape += (1,)
>>> a
array([[1],
       [2],
       [3],
       [4]])
>>> a.shape
(4, 1)
>>> a.ndim
2

关于python - 使用类似形状的函数获取一维numpy.array的 "1",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22772257/

10-12 18:47