在 python 中声明矩阵数组
Declare array of matrix in python
我是魔法 python 世界的新手。
1)我需要一个数组 (arrMtx),其中此向量的每个元素都是一个矩阵。
我如何声明数组 arrMtx?
2)我想为了填充 arrMtx,我应该这样做:
mtx = [[0.0 for x in range(NUM_COLUMN)] for x in range(NUM_ROW)]
arrMtx[i] = mtx
你有什么建议吗?
如果你想要一个二维数组(矩阵)的列表:
num_matrices = 3 ## Let's say
ncol = 3
nrow = 3
arrMtx = [[[0 for j in range(ncol)] for i in range(nrow)] for k in range(num_matrices)]
输出:
>>>[[[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]]]
简单地试试这个,其中 n
是否。 arrMtx
中的元素数
>>>[[[0.0 for x in range(NUM_COLUMN)] for x in range(NUM_ROW)]]*n #no. of elements
也就是说
>>>mtx = [[0.0 for x in range(NUM_COLUMN)] for x in range(NUM_ROW)]
>>>arrMtx = [mtx] * n
NUM_COLUMN = 4
NUM_ROW = 2
NUM_MATRIX = 3
mtx = [[0.0 for x in range(NUM_COLUMN)] for x in range(NUM_ROW)]
arrMtx = [mtx for x in range(NUM_MATRIX)]
print arrMtx
输出:
[[[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, 0.0]], [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]]
在Python中,Lists的用法与vector in c++
相同。
在列表中,您可以append随心所欲:
L = [0,1,2,3....]
附加列表后将是:
L.append('str')
L = [0,1,2,3,'str'....]
因此,您可以添加任何内容。
所以制作一个矩阵,你需要list of list
像:
L = [[....], [.....]....]
mtx = [[0.0 for x in range(NUM_COLUMN)] for x in range(NUM_ROW)]
这里mtx也是一个矩阵。你可以追加它到另一个列表:
arrMtx = []
arrMtx.append(mtx)
问题1答案:
您可以像这样声明 array arrMtx
:
arrMtx = []
它正在创建一个列表。然后你附加一个列表,它将是一个数组。
我是魔法 python 世界的新手。
1)我需要一个数组 (arrMtx),其中此向量的每个元素都是一个矩阵。 我如何声明数组 arrMtx?
2)我想为了填充 arrMtx,我应该这样做:
mtx = [[0.0 for x in range(NUM_COLUMN)] for x in range(NUM_ROW)]
arrMtx[i] = mtx
你有什么建议吗?
如果你想要一个二维数组(矩阵)的列表:
num_matrices = 3 ## Let's say
ncol = 3
nrow = 3
arrMtx = [[[0 for j in range(ncol)] for i in range(nrow)] for k in range(num_matrices)]
输出:
>>>[[[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]]]
简单地试试这个,其中 n
是否。 arrMtx
>>>[[[0.0 for x in range(NUM_COLUMN)] for x in range(NUM_ROW)]]*n #no. of elements
也就是说
>>>mtx = [[0.0 for x in range(NUM_COLUMN)] for x in range(NUM_ROW)]
>>>arrMtx = [mtx] * n
NUM_COLUMN = 4
NUM_ROW = 2
NUM_MATRIX = 3
mtx = [[0.0 for x in range(NUM_COLUMN)] for x in range(NUM_ROW)]
arrMtx = [mtx for x in range(NUM_MATRIX)]
print arrMtx
输出:
[[[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, 0.0]], [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]]]
在Python中,Lists的用法与vector in c++
相同。
在列表中,您可以append随心所欲:
L = [0,1,2,3....]
附加列表后将是:
L.append('str')
L = [0,1,2,3,'str'....]
因此,您可以添加任何内容。
所以制作一个矩阵,你需要list of list
像:
L = [[....], [.....]....]
mtx = [[0.0 for x in range(NUM_COLUMN)] for x in range(NUM_ROW)]
这里mtx也是一个矩阵。你可以追加它到另一个列表:
arrMtx = []
arrMtx.append(mtx)
问题1答案:
您可以像这样声明 array arrMtx
:
arrMtx = []
它正在创建一个列表。然后你附加一个列表,它将是一个数组。