python - 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 是什么?什么是减少?
解决方案
“减少”是一个通用概念,我在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 + y
。np.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])
推荐阅读
- sql-server - 无法获取所有数据库的数据库统计信息
- java - Itext7 将公共方法移至受保护
- c# - Azure blob stoarge 上传文件需要更多时间
- python - 在为 pytorch(python 环境)安装 apex 扩展时,显示以下错误,无法解决此问题
- django - 如何从 django 视图向消费者(django-channels)发送消息?
- time - 将时间间隔设置为指定值
- java - Groovy 方法名称(java.lang.ClassFormatError:非法方法名称)
- vb.net - 连接字符串函数
- eclipse - Eclipse:有没有办法打开所有修改过的文件?
- c# - 如何动态绑定数据到自适应卡?