在 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 = []

它正在创建一个列表。然后你附加一个列表,它将是一个数组。