-4
A
回答
2
这还没有真正清楚自己想要什么。
如果你想多维数组,你可以使用列表:
>>> matrix = [[None]*10 for x in range(3)]#replace 10 with 1000 or what ever
>>> matrix
[[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]]
>>>
而且我会建议使用None
宁可0
。
您可以存取权限这样的矩阵:
>>> matrix[1][3] = 55
>>> matrix
[[None, None, None, None, None, None, None, None, None, None], [None, None, None, 55, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None]]
难道这就是你去向何方?
为了更好的视觉表现,你可以这样做:
>>> for x in matrix:
... print(x, "\n")
...
[None, None, None, None, None, None, None, None, None, None]
[None, None, None, 55, None, None, None, None, None, None]
[None, None, None, None, None, None, None, None, None, None]
你也可以去:
>>> matrix = [[None]*10 for x in xrange(3)]
读到它
here。
由于您使用的是python 3x。你应该使用range()
。 Se更多here。
哦并没有什么特别的毛病,你在做什么,你正在使用一个元组,而不是一个列表什么方式,这些是不可变的,但嵌套列表内的,所以你可以修改它:
>>> positionMatrix = ([0]*10, [0]*10, [0]*10)
>>> positionMatrix
([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
>>> positionMatrix[0][4] = 99
>>> positionMatrix
([0, 0, 0, 0, 99, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
只是不这样做:
>>> positionMatrix = [[0]*10]*3
>>> positionMatrix[0][4] = 99
>>> positionMatrix
[[0, 0, 0, 0, 99, 0, 0, 0, 0, 0], [0, 0, 0, 0, 99, 0, 0, 0, 0, 0], [0, 0, 0, 0, 99, 0, 0, 0, 0, 0]]
>>>
它指的是内存中的同一个对象。
以防万一,你可以使用这个:
>>> positionMatrix = [[0]*10, [0]*10, [0]*10]
>>> positionMatrix
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>> positionMatrix[0][4] = 99
>>> positionMatrix
[[0, 0, 0, 0, 99, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
既然你将创建3级不同的对象。
-1
positionMatrix = [[[0 for x in range(1000)] for x in range(1000)] for x in range(1000)]
这是相同的INT positionMatrix [1000] [1000] [1000]在C/C++。
0
如果性能不重要,则可以将字典用作Python中的多维数组。
positionMatrix = {}
positionMatrix[ row, col ] = foo
要初始化为3×1000个零:
for col in range(3):
for row in range(1000):
positionMatrix[ row, col ] = 0.0
或者只是
from collections import defaultdict
positionMatrix = defaultdict(float)
当它第一次访问其中的每个元素初始化为0。
如果您使用的是高性能数字矩阵,请查看numpy
。
编辑:更新3列1000行而不是3D矩阵。
相关问题
- 1. 在Python中创建具有列名和行名的矩阵
- 2. 如何在列中创建1000个具有相同值的行?
- 3. 如何在ASP.NET中创建具有动态行和列的矩阵?
- 4. 从Matlab中现有的2d矩阵创建3d矩阵
- 5. 更有效的方法将3D矩阵的每列与3D矩阵的每个片相乘
- 6. 将矩阵创建为具有来自另一个矩阵的列的子集
- 7. R创建矩阵阵列
- 8. 创建3D立体阵列
- 9. 如何从矩阵中选择具有特定列值的行?
- 10. 用R创建3D矩阵?
- 11. Tensorflow:具有3D功能阵列
- 12. 重新排列具有命名的列/行的矩阵python
- 13. 从3D numpy阵列创建3D图形
- 14. 如何创建具有不同列数据类型的numpy矩阵?
- 15. 将具有矩阵元素的列表的列表取消为列表矩阵
- 16. 如何从列表创建矩阵?
- 17. 从具有特定条件的旧3D矩阵生成新的3D矩阵
- 18. 现有阵列添加到3D阵列
- 19. 如何从数字的阵列创建具有十六进制字符阵列
- 20. 查找其矩阵行具有最高列总和
- 21. 如何创建具有多行和多列的tableview?
- 22. 如何创建具有2行和不同列数的表格
- 23. 如何创建新阵列扣除现有阵列的段
- 24. IDL删除3D阵列的行和列
- 25. 如何识别在矩阵中具有相同值的行和列
- 26. 如何打印矩阵的所有列
- 27. Python的矩阵,行和列
- 28. 如何创建具有分支时间的成对矩阵?
- 29. 如何创建具有特定数学方程的矩阵?
- 30. 如何使用Matlab创建具有不同元素的矩阵
问题是? –
你真的想要一个数组吗?或者你想要一个列表列表吗?或者你想要一个列表元组还是...?如果你真的想要一个矩阵,使用numpy。另外,1000 x 3不是3D矩阵。 –
不是3 x 1000的矩阵。我使用Python 3.我不相信numpy与Python 3兼容。 – kachilous