将列表转换为Numpy 2D数组

时间:2020-08-14 14:56:59

标签: python arrays numpy

如何将列表转换为numpy二维ndarray。例如:

lst = [20, 30, 40, 50, 60]

预期结果:

>> print(arr)
>> array([[20],
       [30],
       [40],
       [50],
       [60]])

>> print(arr.shape)
>> (5, 1)

3 个答案:

答案 0 :(得分:4)

将其转换为数组并重塑形状:

x = np.array(x).reshape(-1,1)

reshape添加列结构。 reshape中的-1可以正确处理需要整形的行数。

输出:

[[20]
 [30]
 [40]
 [50]
 [60]]

答案 1 :(得分:2)

如果您需要更有效的计算,请使用numpy数组而不是列表推导。这是使用array broadcasting

的另一种方法
x = [20, 30, 40, 50, 60]
x = np.array(x) #convert your list to numpy array
result = x[:, None] #use numpy broadcasting

如果最后仍然需要列表类型,则可以使用result.tolist()

有效地转换结果

答案 2 :(得分:0)

您可以使用列表推导,然后将其转换为numpy数组:

import numpy as np

x = [20, 30, 40, 50, 60]

x_nested = [[item] for item in x]

x_numpy = np.array(x_nested)