为什么numpy对许多ndarray方法都有相应的功能?
一些例子:
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)
排序,同时返回排序后的副本。