回答
更「matrixy」答案是使用numpy的的object
D型:例如:
>>> import numpy as np
>>> np.ndarray(shape=(5,6), dtype=np.object)
array([[None, None, None, None, None, None],
[None, None, None, None, None, None],
[None, None, None, None, None, None],
[None, None, None, None, None, None],
[None, None, None, None, None, None]], dtype=object)
但是,正如WIM表明,這可能是低效的,如果你用這個做數學。
>>> mat = np.empty(shape=(5,6))
>>> mat.fill(np.nan)
>>> mat
array([[ nan, nan, nan, nan, nan, nan],
[ nan, nan, nan, nan, nan, nan],
[ nan, nan, nan, nan, nan, nan],
[ nan, nan, nan, nan, nan, nan],
[ nan, nan, nan, nan, nan, nan]])
>>>
如果你真的使用更多的Python對象的東西,並不打算填充矩陣,你可以使用更好的東西;一個dict
!
>>> from collections import defaultdict
>>> mat = defaultdict(lambda: None)
>>> mat[4,4]
>>> mat[4,4] is None
True
matrix = []
for i in xrange(M):
matrix.append([None]*N)
感謝您的回答!有沒有更短的指令?最好! –
看看別人的答案,他們很不錯。 –
是的!謝謝! :) –
matrix = [[None]*N for _ in xrange(M)]
不要做[[None]*N]*M
,否則你會得到它的M
元素都是真正同一列表對象的列表。
請注意,這不是一個真正的矩陣;這是一個列表清單。試圖執行諸如max(matrix)
之類的操作將無法正常工作,如果您嘗試將矩陣的元素設置爲列表,則無法區分您的數據結構是否應該是列表矩陣,列表矩陣或3D矩陣。如果你想做很多矩陣操作,強烈建議使用NumPy。它提供了具有高性能和非常方便的語法的實際矩陣和任意維數組。
謝謝@ user2357112您的強大答案!不幸的是,我無法在6分鐘內接受答案! –
numpy的有empty ndarray創建方法
numpy.empty(shape, dtype, order)
爲矩陣matlib.empty:
numpy.matlib.empty(shape, dtype, order)
- 1. 創建一個有m + 1列和n + 1行的矩陣
- 2. Matlab:如何創建數組的空n * m矩陣?
- 3. 如何在Python中創建一個空的n * m PNG文件?
- 4. 試圖創建n * m個矩陣
- 5. 一個N×M陣列或M個大小爲N的數組?
- 6. 要將m×n矩陣轉換爲1×n矩陣
- 7. 乘以(n×m個)矩陣係數a(NX 1)矩陣明智
- 8. 從列索引的m大小的向量中創建0和1的m乘n矩陣
- 9. 如何矩陣矩陣轉換(N)(1,N)基體在python
- 10. 從矩陣填充一維數組
- 11. 從多維數組中返回一個n乘1的矩陣
- 12. 如何在python中填充矩陣
- 13. 如何在Python中爲每個2D截面填充2D矩陣的4D矩陣
- 14. 如何創建1乘N矩陣,元素從1到N(matlab)?
- 15. 用n個元素填充一個n * n矩陣
- 16. 故障在python填充空矩陣
- 17. 爲N×M矩陣穿越
- 18. 如何用R中另一個矩陣的值填充矩陣?
- 19. 如何測試一個Python中的矩陣只有1和0?
- 20. 如何從n維矩陣得到n維二維子矩陣?
- 21. 填充python矩陣
- 22. 創建在python空矩陣
- 23. 從矩陣n×m個
- 24. 用M矩陣填充M與1D列表python
- 25. 如何在循環中逐漸填充數組而不將其聲明爲Python中的「1」或「0」/空?
- 26. 如何用0和1遞歸填充矩陣?
- 27. 如何在矩陣中間創建一個填充菱形的菱形?
- 28. n維矩陣乘法python
- 29. 分配一個已填充的矩陣到一個未填充的矩陣
- 30. 創建N維「排列」矩陣
但我需要超過5或6個元素! :\ –
用你想要的尺寸替換'shape =(...)'。你可以使用任何你喜歡的尺寸! – SingleNegationElimination
如果您打算在數組中使用數字,那麼使用'np.nan'比None/dtype = object更有意義。如果你「不關心」數值是什麼,請使用np.empty。 – wim