首页 > 解决方案 > NumPy 中的 ufunc 组合

问题描述

我的代码包含以下定义:

skew_min = np.frompyfunc(lambda x, y: min(x + 1, y), nin=2, nout=1)

关键在于它是ufunc,因为我skew_min.accumulate进一步呼吁。但是这个定义真的很糟糕。它运行缓慢(因为 python-from-native-code 调用)并产生错误类型的结果(pyobject 数组而不是 float 数组)。我多么梦想,应该有一些 FP 风格的组合器可以ufunc从其他ufuncs 构建,就像这样:

skew_min = compose_1(np.minimum, subst_1(np.add, 1))

(相应地,组成功能compose_1subst_1执行ufunc-tional 组合和替换)。compose但是我在 NumPy 文档中找不到任何类似的东西。

那么,有没有一种很好的方法来组合两个ufuncs 来构建一个新的?

标签: pythonfunctionnumpycomposition

解决方案


推荐阅读