我知道如何使用for循环,但是有没有办法使用numpy数组及其操作来实现这种乘法?
答案 0 :(得分:1)
您可以使用np.multiply.outer
:
>>> import numpy as np
>>>
>>> H = np.arange(9).reshape(3, 3)
>>> t = np.c_[10:40:10]
>>>
>>> H
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> t
array([[10],
[20],
[30]])
>>>
>>> np.multiply.outer(t.ravel(), H)
array([[[ 0, 10, 20],
[ 30, 40, 50],
[ 60, 70, 80]],
[[ 0, 20, 40],
[ 60, 80, 100],
[120, 140, 160]],
[[ 0, 30, 60],
[ 90, 120, 150],
[180, 210, 240]]])