z有没有一种不使用循环来计算数组的 Pythonic 方法?import numpy as npx = np.array([[1, 2, 3], [6, 7, 8]])y = np.array([5, 8])z = np.array([x[i] * y[i] for i in range(0, len(x))])
2 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
你可以做:
x * np.expand_dims(y, 1)
expand_dims
当乘以 (shape 2×3) 时,乘法将根据需要广播 ( x
shape 2×1 )的结果。
结果:
array([[ 5, 10, 15], [48, 56, 64]])
慕哥6287543
TA贡献1831条经验 获得超10个赞
您将需要适当的暗淡y(shape ) 与(shape )2,1相乘,这里有一些其他方法可以将单个额外的暗淡添加到x2,3y
x * y[:, None]
array([[ 5, 10, 15],
[48, 56, 64]])
x * y[:, np.newaxis]
array([[ 5, 10, 15],
[48, 56, 64]])
添加回答
举报
0/150
提交
取消