将基质附加到具有numpy

时间:2017-04-28 18:35:57

标签: python numpy matrix

我在Python中有一个返回numpy.mat形状(100, 1)的函数。我在一个循环中调用了这个函数4次,并希望得到4个matricies并创建一个形状(100, 4)的矩阵。我曾在numpy.appendnumpy.concatenatenumpy.insert找了一段时间,但一直无法使用。

以下是我的问题的简短SSCCE

zeros = np.zeros(shape=(100, 4))
for i in range(1, 5):
    np.append(zeros, np.empty(shape=(100, 1)))
print(zeros)

其中zeros会导致形状(100, 4)的矩阵与"垃圾"每次致电numpy.empty而不是所有0.的价值。

1 个答案:

答案 0 :(得分:1)

沿着这些方向做点什么 -

zeros = np.zeros(shape=(100, 4))
for i in range(1, 5):
    data = np.random.rand(100,1) # func that returns (100,1) shaped array
    zeros[:,i-1] = data.ravel()

我们也可以使用ravel()data[:,0]代替np.squeeze(data),基本的想法是在那里提供1D数组,因为LHS {{1}期望那里有一个zeros[:,i-1]数组。

作为替代方案,在循环内部,我们也可以这样做 -

1D

因此,使用列索引zeros[:,[i-1]] = data 而不是[i-1]的列表,我们将保留要分配i-1的维度(保持为2D)并允许我们在data中输入,data也没有任何变化。