繁体   English   中英

NumPy - 将向量乘以标量添加到矩阵

[英]NumPy - Adding a vector multiplied by a scalar to a matrix

我是 NumPy 的新手,并尝试在使用循环的情况下执行以下操作。

我有一个 (n, n) 方阵 A 和一个大小为 (1,n) 的向量 x,我想将向量添加到矩阵的每一行,同时将向量乘以行的索引。
即,将向量 *1 添加到第一行,将向量 *2 添加到第二行,依此类推。
同样,不允许循环,只有 NumPy 函数。

例如,给定矩阵:
[[0, 0, 0]
[0, 0, 0]
[0, 0, 0]]

和向量 [[1,1,1]]

我想得到:
[[1, 1, 1]
[2, 2, 2]
[3, 3, 3]]

我尝试使用重复来从 x 创建一个形状为 A 的矩阵,但无法管理标量乘法。 有什么有用的function/有效方法吗?

您可以使用广播来实现这一点。

A = np.ones((5,5))
x = np.arange(5)
indices = np.arange(5)[None,:].T
A * x + indices

array([[0., 1., 2., 3., 4.],
       [1., 2., 3., 4., 5.],
       [2., 3., 4., 5., 6.],
       [3., 4., 5., 6., 7.],
       [4., 5., 6., 7., 8.]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM