簡體   English   中英

Python將列表轉換為2D numpy數組

[英]Python converting lists into 2D numpy array

我有一些列表要轉換為2D numpy數組。

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

我想要的numpy數組是:

[[  2.   18.    2.3]
 [  7.   29.    4.6]
 [  8.   44.    8.9]
 [  5.   33.    7.7]]

我可以通過從列表中直接輸入numpy數組表達式中的單個項目作為np.array(([2,18,2.3], [7,29, 4.6], [8,44,8.9], [5,33,7.7]), dtype=float)

但我希望能夠將列表轉換為所需的numpy數組。

一種方法是創建你的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)

產量

[[  2.   18.    2.3]
 [  7.   29.    4.6]
 [  8.   44.    8.9]
 [  5.   33.    7.7]]

你可以直接使用np.transpose

np.transpose([list1, list2, list3])

這將把你的列表列表轉換為一個numpy數組並轉換它(將行更改為列,列更改為行)之后:

array([[  2. ,  18. ,   2.3],
       [  7. ,  29. ,   4.6],
       [  8. ,  44. ,   8.9],
       [  5. ,  33. ,   7.7]])

你也可以像這樣使用zip功能

In [1]: import numpy as np

In [2]: list1 = [ 2, 7 , 8 , 5]

In [3]: list2 = [18 ,29, 44,33]

In [4]: list3 = [2.3, 4.6, 8.9, 7.7]

In [5]: np.array(zip(list1,list2,list3))
Out[5]: 
array([[  2. ,  18. ,   2.3],
       [  7. ,  29. ,   4.6],
       [  8. ,  44. ,   8.9],
       [  5. ,  33. ,   7.7]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM