几个例子:
numpy.sum()
ndarray.sum()
numpy.amax()
ndarray.max()
numpy.dot()
ndarray.dot()
...还有很多。是为了支持一些遗留代码,还是有更好的理由?而且,我是仅根据代码的“外观”来选择,还是两种方式中的一种比另一种更好?
我可以想象有人可能希望 numpy.dot()
使用 reduce
(例如,reduce(numpy.dot, A, B, C, D)
) 但我不认为这对像 numpy.sum()
这样的东西有用。
最佳答案
正如其他人所指出的,同名的 NumPy 函数和数组方法通常是等价的(它们最终调用相同的底层代码)。如果阅读起来更容易,那么其中一个可能优于另一个。
但是,在某些情况下,两者的行为略有不同。特别是,使用 ndarray
方法有时会强调该方法是就地修改数组这一事实。
例如,np.resize
返回具有指定形状的新 数组。另一方面,ndarray.resize
就地改变数组的形状。每种情况下使用的填充值也不同。
类似地,a.sort()
对数组 a
就地排序,而 np.sort(a)
返回排序后的副本.
关于python - 为什么numpy对很多ndarray方法都有对应的函数呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29120730/