首页 > 解决方案 > numpy 中的通用函数概念和符号

问题描述

我正在学习 numpy 包,我发现了这个代码示例:

import numpy as np
a = np.array([[1,2,3], [4,5,6]])
np.add.reduce(a)

我无法理解的是点符号:

np.add.reduce(a)

相比之下,例如

np.add(a,5)

我了解 add 和 reduce 的作用,但 add 是什么?什么是减少?

标签: pythonnumpynumpy-ufunc

解决方案


“减少”是一个通用概念,我在https://docs.python.org/3/library/functools.html#functools.reduce找到了一个不错的定义

将两个参数的函数从左到右累积应用于序列项,以将序列减少为单个值。

Numpy 的 ufunc reduce 记录在https://docs.scipy.org/doc/numpy/reference/generated/numpy.ufunc.reduce.html

通过沿一个轴应用 ufunc 将 a 的维度减少一。

因此np.add.reduce(a)(也称为np.add.reduce(a, axis=0))将调用and ,然后将结果添加到np.add等,直到它包含所有元素。a[0]a[1]a[2]len(a)

结果:array([5, 7, 9])


np.add(x, y)基本上是x + ynp.add.reduce(a, axis=0)基本上是np.sum(a, axis=0)


np.add.reduce(a, axis=1)添加a[:, 0]a[:, 1],然后将结果添加到a[:, 2],依此类推。

结果:array([ 6, 15])


推荐阅读