【发布时间】:2021-01-10 14:52:48
【问题描述】:
我对 NumPy(或 SciPy)很陌生,并且来自 Octave/Matlab,这对我来说似乎有点挑战。
我正在阅读文档并编写一些基本功能。我遇到了这个部分:Vectorizing functions (vectorize)
它定义了这个函数:
def addsubtract(a, b):
if a > b:
return a - b
else:
return a + b
然后向量化它:
vec_addsubtract = np.vectorize(addsubtract)
但最后,它说:
这个特殊的函数可以不用vectorize就可以写成向量形式。
我不知道有任何其他方法可以编写这样的函数。那么什么是向量形式呢?
【问题讨论】:
-
this 对您有帮助吗?
-
检查NumPy for MATLAB users。如果您有 NumPy 数组,则可以像使用 MATLAB 中的数组(矩阵)一样使用它们。大多数 NumPy 操作已经在整个数组上工作,因此不需要(额外)对任何东西进行矢量化。
-
在这样的介绍中引入
np.vectorize可能不是一个好主意。我看到太多来自初学者的 SO 问题因为试图使用它而误入歧途。实际上numpy's整个数组的功能与 Octave 的非常相似。
标签: python numpy vectorization