【发布时间】:2018-09-09 18:17:48
【问题描述】:
如果我有一个 NumPy 数组,
>>> x = np.arange(10)
使用对象方法获取有关该数组的信息有什么区别
>>> x.mean()
4.5
与使用 NumPy 函数相比
>>> np.mean(x)
4.5
我希望对象方法正在调用该函数,但是有些例子中函数不包含在方法中,例如
>>> np.median(x)
4.5
>>> x.median()
AttributeError: 'numpy.ndarray' object has no attribute 'median'
排除某些功能似乎表明功能方法比面向对象方法更完整或更受青睐,因为它消除了来回切换的需要。是否有意排除某些方法?与另一种方法相比,一种方法是否具有内在优势?
【问题讨论】:
-
没有系统差异或关系。大多数函数都是用 Python 编写的,您可以阅读。许多人将操作委托给相应的方法(如果存在)。函数形式还可以在对其进行操作之前将列表转换为数组。方法调用通常会快一点,因为它涉及的调用层较少。
-
还有运算符(转化为方法调用)、
ufuncs(可能需要多个数组)和接收数组列表的函数。请记住,numpy历史悠久,贡献者众多。
标签: python function numpy methods