gpt4 book ai didi

python - 如何在python中将向量附加到矩阵

转载 作者:太空狗 更新时间:2023-10-29 18:14:27 24 4
gpt4 key购买 nike

我想在 python 中将向量附加到矩阵。我尝试了 appendconcatenate 方法,但没有得到答案。我以前使用过 Matlab,我用过这个:

m = zeros(10, 4) % define my matrix, 10x4
v = ones(10, 1) % my vecto, 10x1
c = [m,v] % so simple! the result is: 10x5 (the vector added as the last column)

我如何使用 numpy 在 python 中做到这一点?

最佳答案

您正在寻找 np.r_np.c_ . (想想“列堆栈”和“行堆栈”(它们也是函数),但具有 matlab 样式的范围生成。)

另见 np.concatenate , np.vstack , np.hstack , np.dstack , np.row_stack, np.column_stack

例如:

import numpy as np
m = np.zeros((10, 4))
v = np.ones((10, 1))
c = np.c_[m, v]

产量:

array([[ 0.,  0.,  0.,  0.,  1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 1.]])

这也等同于 np.hstack([m, v])np.column_stack([m, v])

如果您不是来自 matlab,hstackcolumn_stack 可能看起来更具可读性和描述性。 (出于这个原因,他们在这种情况下可以说更好。)

但是,np.c_np.r_ 具有来自 matlab 的人们往往期望的附加功能。例如:

In [7]: np.r_[1:5, 2]
Out[7]: array([1, 2, 3, 4, 2])

或者:

In [8]: np.c_[m, 0:10]
Out[8]:
array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 2.],
[ 0., 0., 0., 0., 3.],
[ 0., 0., 0., 0., 4.],
[ 0., 0., 0., 0., 5.],
[ 0., 0., 0., 0., 6.],
[ 0., 0., 0., 0., 7.],
[ 0., 0., 0., 0., 8.],
[ 0., 0., 0., 0., 9.]])

无论如何,对于使用 matlab 的人来说,除了 vstack 之外,了解 np.r_np.c_ 也很方便,hstack

关于python - 如何在python中将向量附加到矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com