回答
更“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