如何將列表的簡單列表轉換爲numpy數組?行是單獨的子列表,每行包含子列表中的元素。列表成numpy數組列表
回答
>>> numpy.array([[1, 2], [3, 4]])
array([[1, 2], [3, 4]])
很簡單:
>>> lists = [[1, 2], [3, 4]]
>>> np.array(lists)
array([[1, 2],
[3, 4]])
如果你的列表清單有不同的元素比伊格納西奧巴斯克斯 - 艾布拉姆斯的答案是行不通的次數列出。代替有3個選項:
1)請數組的數組:
x=[[1,2],[1,2,3],[1]]
y=numpy.array([numpy.array(xi) for xi in x])
type(y)
>>><type 'numpy.ndarray'>
type(y[0])
>>><type 'numpy.ndarray'>
2)請列出的數組:
x=[[1,2],[1,2,3],[1]]
y=numpy.array(x)
type(y)
>>><type 'numpy.ndarray'>
type(y[0])
>>><type 'list'>
3)首先使列表在長度上相等:
x=[[1,2],[1,2,3],[1]]
length = len(sorted(x,key=len, reverse=True)[0])
y=numpy.array([xi+[None]*(length-len(xi)) for xi in x])
y
>>>array([[1, 2, None],
>>> [1, 2, 3],
>>> [1, None, None]], dtype=object)
謝謝,爲此來到這裏。一段時間以來,一直在使用numpy,並發現這種行爲並不平凡。感謝您抽出時間來解釋這個更一般的情況。 – 2014-10-29 00:07:46
豎起大拇指爲這個答案! – alisa 2016-11-12 04:19:25
由於這是Google列表中將列表轉換爲Numpy數組的首選搜索,我將提供以下內容儘管問題是4歲:
>>> x = [[1, 2], [1, 2, 3], [1]]
>>> y = numpy.hstack(x)
>>> print(y)
[1 2 1 2 3 1]
當我第一次想到這樣做,我很高興與我自己,因爲它是如此簡單。然而,隨着名單的大名單時間之後,它實際上是更快地做到這一點:
>>> y = numpy.concatenate([numpy.array(i) for i in x])
>>> print(y)
[1 2 1 2 3 1]
注意@巴斯蒂安的回答#1不使一個單一的連續的列表,所以我增加了concatenate
。
無論如何...我更喜歡hstack
的方法,因爲它的優雅使用Numpy。
此外,搜索轉換嵌套列表具有N個等級爲N維數組的問題後,我什麼也沒找到,所以這裏是我的方式圍繞它:
import numpy as np
new_array=np.array([[[coord for coord in xk] for xk in xj] for xj in xi], ndmin=3) #this case for N=3
- 1. 展平NumPy數組列表?
- 2. 如何將2d numpy數組列表連接成一個3d numpy數組?
- 3. 元組列表Numpy recarray
- 4. 將2D numpy數組列表轉換爲一個3D numpy數組?
- 5. 如何從numpy數組列表中刪除一個numpy數組?
- 6. 初始化numpy的數組列表
- 7. 給numpy數組添加一個列表
- 8. 使用numpy數組的列表形狀
- 9. 將列表轉換爲numpy數組
- 10. 如何從numpy數組創建列表?
- 11. numpy數組內的列表索引
- 12. Python中3x1 numpy數組的列表
- 13. Python中的列表和Numpy數組
- 14. NumPy的數組列表轉換
- 15. 將int列表轉換爲numpy數組
- 16. 表達式sympy數組numpy的陣列
- 17. numpy的數組列表格式
- 18. 使用列表,而不是numpy數組
- 19. 如何排序numpy數組列表?
- 20. Python:numpy fftn在numpy數組列表上
- 21. numpy數組比Python列表大
- 22. 將2d numpy數組轉換爲列表列表
- 23. Python中的容器列表:標準列表與numpy數組
- 24. 將1D numpy數組轉換爲列表列表
- 25. 製表符分隔數組到numpy數組列表?
- 26. 用於遍歷numpy數組列表的行的生成器
- 27. 從列表理解輸出中有效地生成numpy數組?
- 28. 如何將(dtype = object)numpy數組值設置爲Python列表,而不用numpy將列表解釋爲值列表?
- 29. 從numpy數組按指數列表切片子陣列
- 30. 組列表轉換成由列表
的REPL指略微削減初學者問題。 – 2012-04-27 07:21:54
這會自動轉換2D數組中列表的列表,因爲所有包含列表的長度都是相同的。你知道如何不這麼做:即使所有列表的長度相同,也要創建一個列表數組?或者是否有可能在1D數組的一維數組中轉換二維數組(有效地,我的意思是,沒有迭代方法或python地圖的東西) – 2012-10-04 09:58:00
如果這對您不適用,因爲您的子列表的大小不是一樣的,請參閱[the以下答案](http://stackoverflow.com/a/26224619/1449460)。 – 2016-10-17 05:27:25