【发布时间】:2018-05-28 22:35:52
【问题描述】:
我想创建一个python函数来连接几个矩阵这是两个矩阵的例子:
def create_matrix(number,rows,columns):
matrix=np.full((rows,columns),number)
return matrix
matrix1=create_matrix(0,1,2)
matrix2=create_matrix(1,1,3)
matrix3=create_matrix(2,1,4)
def concatenate_matrix(matrix1,matrix2):
vector_pacient=np.hstack((matrix1,matrix2))
return vector_pacient
print(concatenate_matrix(matrix1,matrix2))
print('result',concatenate_matrix(matrix1,matrix2).shape)
这对我得到的两个矩阵非常有效:
[[0 0 1 1 1]]
result shape (1, 5)
如我所愿,现在我想连接可变数量的矩阵,我试过了:
def concatenate_matrix2(*args):
for arg in args:
print(arg.shape)
vector_pacient=np.hstack(arg)
return vector_pacient
print(concatenate_matrix2(matrix1,matrix2,matrix3))
print(concatenate_matrix2(matrix1,matrix2,matrix3).shape)
但是我得到了:
(1, 2)
(1, 3)
(1, 4)
[2 2 2 2]
(1, 2)
(1, 3)
(1, 4)
result shape (4,)
我不明白错误在哪里,它的形状应该是:
(1,9)
还有一个矩阵如下:
[[0 0 1 1 1 2 2 2 2]]
因此,我希望得到修复我的代码的建议。
【问题讨论】:
-
为什么不直接将数组列表传递给
concatenate或stack变体之一? -
np.concatenate((matrix1, matrix2, matrix3), axis=1)
标签: python-3.x numpy matrix keyword-argument