[英]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.