python - 将 numpy 二维数组与一维数组相乘

标签 python arrays numpy

我有一个 numpy 二维数组:

[[1,1,1],
[1,1,1],
[1,1,1],
[1,1,1]]

当二维数组的行长度小于一维数组的长度时,如何才能将从上到下的索引与一维数组中的相应值相乘?例如,将上面的内容与此相乘:

[10, 20, 30, 40]

要得到这个:

 [[10, 10, 10],
 [20, 20, 20],
 [30, 30, 30]
 [40, 40, 40]]

可能是重复的,但我找不到我正在寻找的确切内容。提前致谢。

最佳答案

numpy 中的

* 进行逐元素乘法,例如将一维数组乘以另一个一维数组:

In [52]: np.array([3,4,5]) * np.array([1,2,3])
Out[52]: array([ 3,  8, 15])

当你将二维数组乘以一维数组时,二维数组的每一行都会发生同样的事情:

In [53]: np.array([[3,4,5],[4,5,6]]) * np.array([1,2,3])
Out[53]:
array([[ 3,  8, 15],
       [ 4, 10, 18]])

对于您的具体示例:

In [66]: ones = np.ones(12, dtype=np.int).reshape(4,3)

In [67]: a = np.array([10, 20, 30, 40])

In [68]: (ones.T * a).T
Out[68]:
array([[10, 10, 10],
       [20, 20, 20],
       [30, 30, 30],
       [40, 40, 40]])

关于python - 将 numpy 二维数组与一维数组相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44360084/

相关文章:

C++ 2011 : good syntax to initialize an array in a constructor?

python - 将稀疏 scipy 矩阵加载到现有的 numpy 稠密矩阵中

python - Numpy: "jagged"3D 数组中一维的平均值

python - 使用巴特沃斯滤波器去除正弦噪声

python - 在 Python 中临时保存文件?

javascript - Google Maps API V3 和 Javascript 结果和标记

python - 替换 numpy 数组中的元素

python - Python 的 C 预处理器宏等效项

python - 将 Python 函数移至模块而不破坏兼容性或循环导入

java - 从数组中获取值