3

我更熟悉 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)) ),但我无法让它工作,我不知道如何附加每个来创建一个大的列向量。任何见解都会很棒!

4

1 回答 1

3

如果您要从 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,)

这是面向 Matlab 用户的 NumPy 简介

于 2013-06-24T18:25:53.350 回答