numpy将相同子维度的矩阵堆叠在一起[重复]
Posted
技术标签:
【中文标题】numpy将相同子维度的矩阵堆叠在一起[重复]【英文标题】:numpy stacking matrices together of same sub dimension [duplicate] 【发布时间】:2018-05-20 19:15:20 【问题描述】:假设我有一个矩阵
mat = np.empty((0, 3, 5))
我还有一个形状为 (3, 5) 的矩阵,如何将该矩阵添加到 mat[0]?
我尝试了不同的 stack、vstack、hstack、concatenate 和 insert 组合,但它们似乎不起作用
【问题讨论】:
向第二个轴添加一个新轴并连接:np.concatenate((arr1, arr2[None]),axis=0)
。或者 vstack
: np.vstack((arr1, arr2[None]))
.
您有一个尺寸为零的数组。您希望它的具体表现如何?
你希望输出矩阵是什么形状?
另一个像这样的当前问题:***.com/questions/47681110/….
【参考方案1】:
我建议你这样做来创建你的矩阵。 :)
在当前状态下,您的矩阵是空的。喜欢[]
。
import numpy as np
rows = 5
cols = 3
mat = np.array([[0] * cols] * rows)
mat_2 = np.empty((0, 3, 5))
print mat
print mat_2
# out for mat:
[[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]]
# out for mat_2:
[]
如我在 cmets 中所述,要使我的答案最终化,只需添加您要添加的两个矩阵,例如 m1 + m2
。
rows = 5
cols = 3
mat = np.array([[1] * cols] * rows)
mat_2 = np.array([[2] * cols] * rows)
print mat + mat_2
# out :
[[3 3 3]
[3 3 3]
[3 3 3]
[3 3 3]
[3 3 3]]
【讨论】:
虽然他写了how can I add that matrix to mat[0]
,但主题行是关于stacking
。显然,他试图从相当于空列表[]
的数组开始,然后可能会重复执行append
。它是add
,如concatenate
或join
,而不是sum
。【参考方案2】:
我了解到您想将一个 3x5 矩阵插入一个空数组。然后np.append
可以做到这一点。只需指定右轴即可。
import numpy as np
mat = np.empty((0,3,5))
mat3x5 = np.matrix('1,1,1,1,2;3,1,2,3,1;2,3,1,2,3')
mat3x5 = np.expand_dims(mat3x5, 0)
result = np.append(mat, mat3x5, axis=0)
【讨论】:
以上是关于numpy将相同子维度的矩阵堆叠在一起[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Numpy 中 np.vstack() 和 np.hstack() 简单解析