Python 将列表转换为Numpy ndarray

Python 将列表转换为Numpy ndarray,python,numpy,Python,Numpy,我想转换这个列表 li = [3, 2 , 1 , 4] 到下面的NumPy Ndaray [[3], [2], [1], [4]] 我尝试了np.asarray(),但它没有将其转换为ndarray。有没有办法提到轴心国 可以使用创建嵌套列表,然后使用将嵌套列表转换为Numpy ndarray 可以使用创建具有额外轴的阵列 >>> np.expand_dims(li, -1) array([[3], [2], [1], [4]])

我想转换这个列表

li = [3, 2 , 1 , 4]
到下面的NumPy Ndaray

[[3], [2], [1], [4]]
我尝试了
np.asarray()
,但它没有将其转换为
ndarray
。有没有办法提到轴心国

可以使用创建嵌套列表,然后使用将嵌套列表转换为Numpy ndarray

可以使用创建具有额外轴的阵列

>>> np.expand_dims(li, -1)
array([[3],
       [2],
       [1],
       [4]])
或者,如果愿意,在创建阵列后添加轴

np.array(li)[..., np.newaxis]

最短的是我相信

np.c_[li]
# array([[3],
#        [2],
#        [1],
#        [4]])
对于一般尺寸和轴:

dummy, ndim, axis = 0, 4, 2
np.r_[f'{dummy},{ndim},{axis}', li]
# array([[[[3],
#          [2],
#          [1],
#          [4]]]])
_.shape
# (1, 1, 4, 1)
另一个例子:

dummy, ndim, axis = 0, 3, 0
np.r_[f'{dummy},{ndim},{axis}', li]
# array([[[3]],
#        [[2]],  
#        [[1]],
#        [[4]]])
_.shape
# (4, 1, 1)

asarray
确实生成
ndarray

In [41]: li = [3, 2 , 1 , 4]
In [42]: x = np.asarray(li)
In [43]: x
Out[43]: array([3, 2, 1, 4])
In [44]: type(x)
Out[44]: numpy.ndarray
要生成额外的嵌套,需要添加尺寸标注(以一种或另一种方式):


昨天:

什么是
np.asarray()
产生的?它不是
ndarray
?我希望它能产生一个一维数组。昨天也有人问过同样的问题:可以说更一般一点,“有没有办法提到轴?”同意@hpaulj的说法,同样的问题也被问到了。在问题的一个注释中,有一个明确的答案是使用
np。重塑
In [41]: li = [3, 2 , 1 , 4]
In [42]: x = np.asarray(li)
In [43]: x
Out[43]: array([3, 2, 1, 4])
In [44]: type(x)
Out[44]: numpy.ndarray
In [45]: np.asarray(li)[:,None]
Out[45]: 
array([[3],
       [2],
       [1],
       [4]])