我比较熟悉 Matlab,但我目前正在使用 Python。如果我在 python 中有 4 个矩阵/数组,我如何将每个矩阵/数组转换为一个列向量,然后将它们 append 在一起形成一个大的列向量?
在 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)) ),但我无法让它工作,我不确定如何追加每个创建一个大列向量。任何见解都会很棒!
最佳答案
如果您要从 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,)
关于python - 如何将矩阵转换为列向量并在 python 中将它们 append 在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17281966/