几个例子: numpy.sum()ndarray.sum()numpy.amax()ndarray.max()numpy.dot()ndarray.dot() ……还有更多.它是支持一些遗留代码,还是有更好的理由?而且,我是根据我的代码“看起来”的方式选择的,还是两种
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()就地对数组进行排序,而np.sort(a)返回一个已排序的副本.