python - 为什么numpy对很多ndarray方法都有对应的函数呢?

标签 python arrays numpy methods built-in

几个例子:

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/

相关文章:

python - 计算 flask 模板中的行数

python - 如何在 python 中从 3 个数组创建颜色映射

java - opencv java中的 mask 图像

python - PyQt5:带 QAction 的键盘快捷键

python - 检查 Python 文件中一行最后一项的有效方法

java - 操作不同数组(对象数组)索引时是否需要同步

javascript - indexOf 不是函数,无法在数组中找到元素的索引

java - 如何将数组文字传递给函数?

python - 根据条件和年份标记 NaN 值

python - 当条目在 Gtk Python 中获得焦点时如何更改输入语言