代码之家  ›  专栏  ›  技术社区  ›  Hector Barbossa

np之间有什么区别。vectorize()和正则表示法

  •  0
  • Hector Barbossa  · 技术社区  · 8 年前

    我是python和numpy的新手。假设我有一个名为addTwo的函数,它只返回给定值+2。我的问题是np之间的区别是什么。矢量化(addTwo)(矩阵)和addTwo(矩阵)。两者的输出相同。 基本上我的问题是:如果我有以下代码:

    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 回复  |  直到 8 年前
        1
  •  1
  •   Timofey Chernousov    8 年前

    根据文件( 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. 这意味着没有reazon vectorize 函数的,它可以直接应用,就像在你的例子中一样。 实际上,这可能会导致性能下降。 “矢量化”的主要目标是对代码隐藏for循环。但这既不会避免,也不会改变预期结果。