numpy - 具有减少功能的自定义 numpy 函数
问题描述
我正在尝试创建一个可以减少包含sympy
Symbol
对象的数组的函数。Elementwise 函数和减少 1 轴似乎工作:
from sympy import symarray, Max
import numpy as np
a = symarray('a', (3,3))
f = np.frompyfunc(lambda x,y: Max(x,y), 2, 1)
f.reduce(a, axis=0)
输出:
array([Max(a_0_0, a_1_0, a_2_0), Max(a_0_1, a_1_1, a_2_1),
Max(a_0_2, a_1_2, a_2_2)], dtype=object)
但我不能指定多个轴:
f.reduce(a, axis=(0,1))
输出:
ValueError: reduction operation '<lambda> (vectorized)' is not reorderable, so at most one axis may be specified
当然,我可以做类似的事情f.reduce(f.reduce(a, axis=0), axis=0)
,但我希望有一种更优雅的方式来做这件事,并且keepdims=True
如果没有明确的重塑,类似的事情就无法工作。
解决方案
推荐阅读
- javascript - 在 React Native 中,我有“警告可能未处理的 Promise Rejection (id: 5): TypeError: array.push is not a function”
- mysql - Mysql查询从表中不存在的列表中查找ID
- dapper - 即使我只返回一个对象,我是否必须遍历来自 Dapper 的 IEnumerable 返回?
- javascript - 未捕获的错误:不能将 stdClass 类型的对象用作数组 ---> 第 23 行
- python - Python:没有名为“dash.development”的模块。“破折号”不是一个包
- flutter - 使用颤振从底部导航栏上的按钮注销用户
- c# - 没有这样的元素:无法使用 Xpath 在 C# 中定位元素
- cross-compiling - 相当于 Bing、Yahoo、Ask.com 的 Google 趋势
- sql - 我有多个查询,但我希望只有 1 个查询可以运行所有查询
- python - Python3.8 - 从网站 url 获取特定内容