【问题标题】:numpy stacking matrices together of same sub dimension [duplicate]numpy将相同子维度的矩阵堆叠在一起[重复]
【发布时间】: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])).
  • 您有一个尺寸为零的数组。您希望它的具体表现如何?
  • 你希望输出矩阵是什么形状?
  • 另一个像这样的当前问题:stackoverflow.com/questions/47681110/….

标签: python numpy


【解决方案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)

【讨论】:

    猜你喜欢
    • 2018-05-01
    • 2017-04-06
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 2017-11-06
    • 1970-01-01
    相关资源
    最近更新 更多