np.vectorize() 和常规表示法有什么区别
Whats the difference between np.vectorize() and regular notation
我是 python 和 numpy 的新手。假设我有一个名为 addTwo 的函数,它只是 returns 给定值 + 2。我的问题是 np.vectorize(addTwo )(matrix) 和 addTwo (matrix) 之间有什么区别。两者都给我相同的输出。
基本上我的问题是:如果我有以下代码:
import numpy as np
def addTwo(a):
return a + 2
matr = np.array([[1, 2], [2, 3], [3, 4]])
我想知道这两者的区别:
addTwo(matr)
np.vectorize(addTwo)(matr)
根据文档(
https://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.vectorize.html):
The vectorize function is provided primarily for convenience, not for performance. The implementation is essentially a for loop.
这意味着函数的 vectorize
中没有 reazon 可以像您的示例中那样直接应用。
实际上这可能会导致性能下降。
"vectorize" 的主要目标是在您的代码中隐藏 for 循环。但它不会避免它既不会改变预期结果。
我是 python 和 numpy 的新手。假设我有一个名为 addTwo 的函数,它只是 returns 给定值 + 2。我的问题是 np.vectorize(addTwo )(matrix) 和 addTwo (matrix) 之间有什么区别。两者都给我相同的输出。 基本上我的问题是:如果我有以下代码:
import numpy as np
def addTwo(a):
return a + 2
matr = np.array([[1, 2], [2, 3], [3, 4]])
我想知道这两者的区别:
addTwo(matr)
np.vectorize(addTwo)(matr)
根据文档(
https://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.vectorize.html):
The vectorize function is provided primarily for convenience, not for performance. The implementation is essentially a for loop.
这意味着函数的 vectorize
中没有 reazon 可以像您的示例中那样直接应用。
实际上这可能会导致性能下降。
"vectorize" 的主要目标是在您的代码中隐藏 for 循环。但它不会避免它既不会改变预期结果。