将每一列乘以 NumPy 数组中的数字
Multiplying each column by a number in a NumPy array
我想按以下顺序将 A
的列与 X
中的元素相乘:X
的第一个元素乘以 [=12= 的第一列], 第二个元素到第二列等等。
例如,给定:
import numpy as np
X=np.array([10. , 2.46421304, 4.99073939, 5.79902063, 0. ]
A=np.array([[0, 1, 1, 1, 0],
[1, 0, 1, 0, 1],
[1, 1, 0, 1, 1],
[1, 0, 1, 0, 1],
[0, 1, 1, 1, 0]])
我要生产:
array([[0, 2.464, 4.991, 5.799, 0],
[10, 0, 4.991, 0, 0],
[10, 2.464, 0, 5.799, 0],
[10, 0, 4.991, 0, 0],
[0, 2.464, 4.991, 5.799, 0]])
您可以利用 numpy
中的广播来做:
result = A * X
print(result)
这给出了所需的输出(低至小的浮点错误):
[[ 0. 2.46421304 4.99073939 5.79902063 0. ]
[10. 0. 4.99073939 0. 0. ]
[10. 2.46421304 0. 5.79902063 0. ]
[10. 0. 4.99073939 0. 0. ]
[ 0. 2.46421304 4.99073939 5.79902063 0. ]]
我想按以下顺序将 A
的列与 X
中的元素相乘:X
的第一个元素乘以 [=12= 的第一列], 第二个元素到第二列等等。
例如,给定:
import numpy as np
X=np.array([10. , 2.46421304, 4.99073939, 5.79902063, 0. ]
A=np.array([[0, 1, 1, 1, 0],
[1, 0, 1, 0, 1],
[1, 1, 0, 1, 1],
[1, 0, 1, 0, 1],
[0, 1, 1, 1, 0]])
我要生产:
array([[0, 2.464, 4.991, 5.799, 0],
[10, 0, 4.991, 0, 0],
[10, 2.464, 0, 5.799, 0],
[10, 0, 4.991, 0, 0],
[0, 2.464, 4.991, 5.799, 0]])
您可以利用 numpy
中的广播来做:
result = A * X
print(result)
这给出了所需的输出(低至小的浮点错误):
[[ 0. 2.46421304 4.99073939 5.79902063 0. ]
[10. 0. 4.99073939 0. 0. ]
[10. 2.46421304 0. 5.79902063 0. ]
[10. 0. 4.99073939 0. 0. ]
[ 0. 2.46421304 4.99073939 5.79902063 0. ]]