如何将矩阵转换为列向量并将所有内容追加到python中

时间:2013-06-24 18:01:32

标签: python vector matrix append

我对Matlab更熟悉,但我目前正在使用python。如果我在python中有4个矩阵/数组,我怎样才能将每个矩阵转换为列向量然后将它们连接在一起形成一个大的列向量?

在Matlab中,我有:

W1 = rand(hiddenSize, visibleSize) * 2 * r - r;
W2 = rand(visibleSize, hiddenSize) * 2 * r - r;
b1 = zeros(hiddenSize, 1);
b2 = zeros(visibleSize, 1);

theta = [W1(:) ; W2(:) ; b1(:) ; b2(:)]; 

theta是我感兴趣的最终列向量。我将如何在python中执行此操作?

我认为我会使用reshape函数来创建列向量(类似于W1 = reshape(W1,size(W1))),但我无法使其工作,我不知道如何追加每个创建一个大列向量。任何见解都会很棒!

1 个答案:

答案 0 :(得分:2)

如果您要从Matlab迁移到Python,我强烈建议您安装NumPy(以及Scipy}个软件包。

使用NumPy你可以这样做:

import numpy as np
W1 = np.arange(25*64).reshape(25, 64)
W2 = np.arange(25*64).reshape(64, 25)
b1 = np.arange(25)
b2 = np.arange(64)

theta = np.concatenate([W1.flat, W2.flat, b1, b2])
print(theta.shape)
# (3289,)

这是introduction to NumPy for Matlab users