问题标签 [numpy-ufunc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
396 浏览

python - 有没有办法序列化一个 sympy ufuncify-ied 函数?

有没有办法序列化或保存使用ufuncifySymPy 自动包装模块中的工具进行二值化的函数?

这里有一个解决方案dillHow to serialize sympy lambdified function?,但这仅适用于lambdified函数。

这是一个最小的工作示例来说明:

动机:我想加快几个5000 万字符长的SymPy 表达式;ufuncify效果很好(单独使用三个数量级的改进lambidfy),但ufuncify每个表达式需要 3 小时。我希望能够不时利用ufuncify-ied 表达式(无需等待一天重新处理它们)。更新:为了说明,计算机进入睡眠状态杀死了我的 python 内核,现在我需要等待大约 10 小时才能恢复二进制化函数

0 投票
0 回答
262 浏览

python - Pandas:应用自定义聚合函数(不带 groupby)

我们可以考虑将两种类型的函数应用于 Pandas 系列:转换和聚合。他们在文档中做出了这种区分;转换映射系列中的单个值,而聚合以某种方式总结整个系列(例如平均值)。

apply很清楚如何使用aggregation. 请注意,groupby不涉及,并且聚合不需要groupby.

我正在处理以下情况:我有一个Series其中每一行都是字符串列表。我可以聚合这些数据的一种方法是计算每个字符串的出现次数,并返回 5 个最常见的术语。

如果我将此函数称为top_five_strings(series),它可以正常工作,就像我调用np.mean(series)了一个数字系列一样。但是,不同之处在于我也可以做到series.agg(np.mean)并得到相同的结果。如果我这样做series.agg(top_five_strings),我会得到 Series 每一行中的前五个字母(如果你将单行作为函数的参数,这很有意义)。

我认为关键的区别在于它np.mean是 NumPy ufunc,但我无法弄清楚_aggregate帮助函数在 Pandas 源代码中的工作原理。

我剩下两个问题:

1)我可以通过使我的 Python 函数成为一个ufunc(如果可以,如何)来实现这一点?

2)这是一件愚蠢的事情吗?我还没有发现其他人试图做这样的事情。然而,在我看来,能够在 Pandas 框架内实现自定义聚合以及自定义转换(例如,我得到一个 Series 作为结果,就像使用df.describe.

0 投票
0 回答
972 浏览

python - 用 numba 声明矢量化 ufunc,签名错误:不允许“浮动”实例

我正在尝试编写一个可以由 numba 向量化的函数,以充当一组数组上的 ufunc:

我在另一个函数中调用上述函数,将它需要的八个数组作为参数传递。我的期望是这个函数将以广播方式应用,就好像每个元素 i 的一维循环(假设所有输入数组大小相等),ufunc 从第 i 个索引处的每个数组获取标量作为其参数,最后在输出数组的第 i 个位置返回四个具有相应值的数组(ufunc 广播的结果减少为输出数组)。

当我将上面的代码作为调用方法的单元测试的一部分运行时,我在控制台中收到以下错误:

我可以通过在签名本身周围添加引号来修改签名,以便将其转换为字符串。当我这样做时,错误现在变成了:

谁能建议我在这里做错了什么?在此先感谢您的任何建议。

0 投票
2 回答
110 浏览

python-3.x - 如何引用 numpy.ufunc.at 中的所有行

如何引用 numpy.ufunc.at 中给定列的所有行或切片

这适用于列:

但是,这些都失败了

或者

0 投票
0 回答
51 浏览

python - 获取numpy矩阵行与数组有交集

我有大量 int32 numpy 一维数组。有没有一种有效的方法来获取与测试数组有非空交集的行的索引?基本上我正在寻找更快的pythonic表达式替代品:

0 投票
3 回答
200 浏览

python - NumPy ufunc 在一个轴上比另一个轴快 2 倍

我正在做一些计算,并测量ufunc在不同轴上的性能np.cumsum,以使代码更具性能。

cumsum轴 1 上的速度几乎是轴 0 上的2 倍cumsum为什么会这样,幕后发生了什么?很高兴能清楚地了解其背后的原因。谢谢!


更新:经过一番研究,我意识到如果有人正在构建一个应用程序,他们总是只对某个轴求和,那么数组应该以适当的顺序初始化:即轴 = 1 总和的C 顺序或Fortran 顺序对于axis = 0 sums,以节省CPU时间。

另外:这个关于连续数组和非连续数组之间差异的优秀答案有很大帮助!

0 投票
2 回答
509 浏览

python - 创建 numpy 函数并转换为张量

我正在尝试使用像 f=(x-a1)^2+(y-a2)^2+a3 这样的 numpy 创建函数

其中 a1,a2,a3 是随机生成的数字,x,y 是参数。

但我无法使用它,我想找到 f(0,0) 其中 [0,0] 是 [x,y] 和 [a1,a2,a3] 之前设置,但我的代码不起作用。然后我想将此函数转换为张量流张量。这是我的代码,带有“##”的字符串不起作用。

0 投票
1 回答
309 浏览

numpy - 在网格网格上模拟 numpy 矢量化函数

这是有关如何使用的示例numpy.meshgrid

如果我在上面有一个meshgridlike xxyy但我的函数是一个常规函数,而不是vectorized,f(x,y)例如,常规math.sin函数怎么办?

我知道我可以遍历list of lists, xxyy但我想尝试模拟vectorized代码。

0 投票
1 回答
523 浏览

python - 快速高效的数组切片,避免删除操作

我正在尝试获取数组 A(N,3) 的切片(例如元素 1-3 和 5-N),避免使用 numpy.delete。该过程的示例如下:

我希望使用类似的东西

但这会执行元素比较,因此删除的元素比我想要的要多。如何做到这一点?我想出了这个想法,但似乎太复杂和缓慢:

有没有办法以更快/更清洁的方式做到这一点?

PD A 的任何两个元素都不相等的假设始终成立

0 投票
1 回答
515 浏览

python - Numpy相等的dtype

dtype是否应该不考虑关键字参数np.equal

在函数文档中,它似乎表明dtype应该是一个有效的关键字参数,我找不到任何说它会被忽略的东西,但是在使用逻辑 ufunc 时,它似乎没有被使用:

如果指定了返回 dtype,我希望任何 ufunc 都具有相同的输出类型,但np.add行为符合我的预期,而np.equal没有。这种行为是有意的吗?