Python 使用广播根据向量中的元素乘以矩阵行?

Python 使用广播根据向量中的元素乘以矩阵行?,python,numpy,Python,Numpy,假设我有一个矩阵 x=array([[ 0., 0., 0.], [ 0., 0., 1.], [ 0., 1., 0.], [ 0., 1., 1.], [ 1., 0., 0.], [ 1., 0., 1.], [ 1., 1., 0.], [ 1., 1., 1.]]) 我想去 array([[ 0., 0., 0.], [ 0., 0.,

假设我有一个矩阵

x=array([[ 0.,  0.,  0.],
       [ 0.,  0.,  1.],
       [ 0.,  1.,  0.],
       [ 0.,  1.,  1.],
       [ 1.,  0.,  0.],
       [ 1.,  0.,  1.],
       [ 1.,  1.,  0.],
       [ 1.,  1.,  1.]])
我想去

array([[ 0.,  0.,  0.],
       [ 0.,  0.,  2.],
       [ 0.,  3.,  0.],
       [ 0.,  4.,  4.],
       [ 5.,  0.,  0.],
       [ 6.,  0.,  6.],
       [ 7.,  7.,  0.],
       [ 8.,  8.,  8.]])
如何在
x
范围(1,9)
之间编写单行表达式?列的相同操作的代码是什么

x * np.arange(1, 9).reshape(-1, 1)

这两种形式都由
arange(1,9)
组成一个列向量,它沿着
x
的y轴很好地广播

“列的相同操作”只是上述操作的转置,即跳过
重塑操作:

x * arange(1, 4)

这两种形式都由
arange(1,9)
组成一个列向量,它沿着
x
的y轴很好地广播

“列的相同操作”只是上述操作的转置,即跳过
重塑操作:

x * arange(1, 4)