使用类似形状的函数获取一维numpy.array的“1”

2024-04-19 00:55:45 发布

您现在位置:Python中文网/ 问答频道 /正文

在函数中,我给出了一个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进行判别测试,例如?

谢谢!


Tags: of函数numpy元素indexnprange数组
2条回答

嗯,无法设置访问列表元素的默认值,但您可以尝试:

>>> shape = np.array([1,2,3,4]).shape
>>> shape[1] if shape[1:] else 1
1

哦。

>>> 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

相关问题 更多 >