好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

在Python中为什么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()就地对数组进行排序,而np.sort(a)返回一个已排序的副本.

查看更多关于在Python中为什么numpy有许多ndarray方法的相应函数?的详细内容...

  阅读:20次