使用有什么不同
import numpy as np
a, b = np.random([1024, 1024]), np.random([1024, 1024])
c = np.multiply(a, b)
Run Code Online (Sandbox Code Playgroud)
过度
c = a * b
Run Code Online (Sandbox Code Playgroud)
或者是*numpy-arrays上的-Operator只是被覆盖了np.multiply?
编辑:这个问题被标记为重复,因为一个问题询问有关除法运算符(np.divide()vs/)和类似答案的相同的事情,但除非它被改为"numpy算术与python算术"或类似的东西,它赢了'帮助人们想到和我一样的事情(关于乘法)而不是"聪明"足以假设关于相关算术运算(除法)的问题推广到所有基本算术运算.为了更容易找到答案,我主张保持这个问题.
速度差异 - 无:
In [65]: timeit c = np.multiply(a,b)
4.95 ms ± 10.5 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
In [66]: timeit c = a*b
5.06 ms ± 180 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Run Code Online (Sandbox Code Playgroud)
对于较小的数组,由于不同的调用堆栈,我们可能会看到差异,但对于这些,实际计算支配了时间。
但你可以从文档看,np.multiply是一个ufunc有权限访问该暗示的所有机器。
对于np.matrix对象,*是矩阵乘积,np.multiply是元素乘法。