是什么区别np.vectorize()和常规表示法

时间:2017-10-22 08:19:45

标签: python numpy linear-algebra

我是python和numpy的新手。考虑到我有一个名为addTwo的函数,只返回给定值+ 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)

1 个答案:

答案 0 :(得分:0)

根据文件( https://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.vectorize.html): vectorize 这意味着{{1}}函数中没有reazon可以直接应用,就像在你的例子中一样。 实际上,这可能会导致性能下降。 " vectorize"的主要目标是从你的代码隐藏一个for循环。但它不会避免改变预期的结果。