我有一个NumPy数组x = np.array([[1, 2, 3], [4, 6, 8]])
,我想将每个元素除以y
。但是,y
不是单个数字,而是数组y = np.array([2, 4])
。我想将x
的每一行除以y
的每一行,以返回np.array([[0.5, 1.0, 1.5], [1.0, 1.5, 2.0])
。
我该怎么做?如果我只运行x / y
,则会收到错误消息:ValueError: operands could not be broadcast together with shapes (2,3) (2,)
答案 0 :(得分:1)
多个数组之间的操作必须遵循numpy的broadcasting rules。在这里,您的第二个数组必须通过以下方式重塑形状为(2, 1)
x / y.reshape(2, 1)
或等效地
x / y[:, np.newaxis]