Python 将列表转换为 2D numpy 数组

pic*_*olo 5 python numpy list

我有一些列表要转换为 2D numpy 数组。

list1 = [ 2, 7 , 8 , 5]
list2 = [18 ,29, 44,33]
list3 = [2.3, 4.6, 8.9, 7.7]
Run Code Online (Sandbox Code Playgroud)

我想要的 numpy 数组是:

[[  2.   18.    2.3]
 [  7.   29.    4.6]
 [  8.   44.    8.9]
 [  5.   33.    7.7]]
Run Code Online (Sandbox Code Playgroud)

我可以通过将列表中的单个项目直接输入到 numpy 数组表达式中来获得np.array(([2,18,2.3], [7,29, 4.6], [8,44,8.9], [5,33,7.7]), dtype=float)

但我希望能够将列表转换为所需的 numpy 数组。

gtl*_*ert 5

一种方法是创建numpy数组,然后使用转置函数将其转换为所需的输出:

import numpy as np

list1 = [ 2, 7 , 8 , 5]
list2 = [18 ,29, 44,33]
list3 = [2.3, 4.6, 8.9, 7.7]

arr = np.array([list1, list2, list3])
arr = arr.T
print(arr)
Run Code Online (Sandbox Code Playgroud)

输出

[[  2.   18.    2.3]
 [  7.   29.    4.6]
 [  8.   44.    8.9]
 [  5.   33.    7.7]]
Run Code Online (Sandbox Code Playgroud)


MSe*_*ert 4

你可以np.transpose直接使用:

np.transpose([list1, list2, list3])
Run Code Online (Sandbox Code Playgroud)

这会将列表的列表转换为 numpy 数组,然后将其转置(将行更改为列,将列更改为行):

array([[  2. ,  18. ,   2.3],
       [  7. ,  29. ,   4.6],
       [  8. ,  44. ,   8.9],
       [  5. ,  33. ,   7.7]])
Run Code Online (Sandbox Code Playgroud)