【问题标题】:ufunc Vs basic arithmetic operators in Numpyufunc与Numpy中的基本算术运算符
【发布时间】:2018-12-04 09:20:40
【问题描述】:

我看到 Universal Function(ufunc) 用于执行元素数组操作。

 arr = np.arange(5)
 arr2 = np.arange(5,10)
 np.add(arr,arr2)

这段代码类似于arr + arr2。那我们为什么要使用ufunc呢?

【问题讨论】:

    标签: python python-3.x numpy numpy-ufunc


    【解决方案1】:

    因为它是一个带有许多简单添加表达式无法为您提供的功能的函数。您可以根据您在某些情况下的预期行为覆盖 ufunc 对象,并从其所有功能中受益。

    您只需查看函数的标头即可看到:

    numpy.add(x1, x2, /, out=None, *, where=True, cast='same_kind', order='K', dtype=None, subok=True[, signature, extobj])

    在文档中阅读更多内容:

    https://docs.scipy.org/doc/numpy/reference/generated/numpy.add.html

    还有:

    https://docs.scipy.org/doc/numpy/reference/ufuncs.html#ufuncs-kwargs\

    还请注意,每当您执行a + b 时,如果ab 是一个ndarray,则numpy 会在内部调用add(a, b)。所以当两个参数都是ndarray时没有区别。

    ufuncs 提供的另一个很好的功能是您可以直接在 python 对象上执行 numpy 功能。

    In [20]: np.add([2, 3, 4], 4)
    Out[20]: array([6, 7, 8])
    

    如果你在 Python 中求和,你会得到一个 TypeError:

    In [21]: [2, 3, 4] + 4
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-21-0a8f512c0d3a> in <module>()
    ----> 1 [2, 3, 4] + 4
    
    TypeError: can only concatenate list (not "int") to list
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-17
      • 2019-03-02
      • 1970-01-01
      • 2012-05-12
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      • 2015-02-06
      相关资源
      最近更新 更多