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,如concatenatejoin,而不是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() 简单解析

追加/合并二维数组

Numpy 数组:连接展平和添加维度

numpy常用知识速查

使用python在循环内通过相同的矩阵-矩阵乘法创建不同的矩阵

numpy 之矩阵的认知