问题标签 [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 投票
0 回答
170 浏览

python - Python Sympy ufuncify FallingFactorial

我想对 Sympy 的 FallingFactorial 函数进行 ufunc 化,以便它在数组输入上的工作方式与 numpy 类似,而不仅仅是一对整数。

我尝试了以下代码:

但我收到以下错误:


上面的代码对其他人有用还是我有什么问题?我正在使用 Python 2.7 和 Sympy 0.7.4.1

0 投票
2 回答
137 浏览

python - 记录一流分配的功能

我有一个利用 Python 函数的一流特性定义的函数,如下所示:

要么我需要一种将文档字符串添加到按原样定义的函数的方法,要么使用更常见的格式实现相同的目的,以便我可以以正常方式编写文档字符串:

当函数被调用时起作用

但是我随后失去了调用方法的能力,例如

我猜这是因为函数在使用时变得更像一个类frompyfunc,从ufunc.

我想我可能需要定义一个类,而不是一个函数,但我不确定如何。我会同意的,因为这样我就可以像往常一样轻松添加文档字符串。

我标记了这个coding-style,因为原始方法有效,但不能轻易记录,如果标题不清楚,我很抱歉,我不知道描述这个的正确词汇。

0 投票
2 回答
1645 浏览

python - 将 N 个工作日添加到不属于单元“D”的 Numpy datetime64

我正在尝试将工作日添加到当前格式化为datetime64对象但类型为'ns'.

根据 Numpy文档,该busday_offset函数仅适用于单位为'D'. 我想要的功能存在于 Pandas 中,使用“BusiniessDay intseries.offsets”。

我可以将每个日期转换为 Pandas Timestamp,然后添加偏移量,然后再转换回来,但这感觉比应该做的工作更多。

有没有办法直接将任意数量的工作日添加到datetime64具有单位的对象'ns'

0 投票
1 回答
6592 浏览

python - numpy ufuncs速度与for循环速度

我读过很多“避免使用 numpy 循环”。所以,我试过了。我正在使用此代码(简化版)。一些辅助数据:

我的第一个实现是使用for循环:

然后,我摆脱了显式for循环,并实现了这一点:

而且这个解决方案对于小型阵列来说更快,但是当我扩大规模时,我得到了这样的时间依赖性: 在此处输入图像描述

我错过了什么还是正常行为?如果不是,在哪里挖?

编辑:根据评论,这里有一些附加信息。时间是用 IPython%timeit和测量的%%timeit,每次运行都是在新内核上执行的。我的笔记本电脑是acer aspire v7-482pg (i7, 8GB)。我在用着:

  • 蟒蛇3.5.2
  • numpy 1.11.2 + mkl
  • 视窗 10
0 投票
1 回答
546 浏览

python - 使用 __numpy_ufunc__()

我正在尝试使用Numpy v1.11 文档中__numpy_ufunc__()解释的方法来覆盖 numpy ufuncs 在子类上的行为,但它似乎从未被调用。尽管指南中列出了这个用例,但我找不到任何人实际使用. 有没有人试过这个?这是一个最小的例子:ndarray__numpy_ufunc__()

3.5.1 |连续分析公司| (默认,2016 年 6 月 15 日,15:32:45)

[GCC 4.4.7 20120313(红帽 4.4.7-1)

1.11.2

⟨class'main.Function'⟩⟨class'main.Function'⟩ _ _ _ _

函数([2, 4, 6])

函数([2, 4, 6])

显然,子类化是有效的,它使用 numpy 在幕后添加数组。我正在使用足够新的 numpy 版本来使用该__numpy_ufunc__()功能(根据该文档页面,它是 v1.11 中的新功能)。但是这段代码永远不会打印出来"In PF __numpy_ufunc__"。是什么赋予了?

0 投票
1 回答
236 浏览

python - 如何从 Python Slice 对象生成 numpy.ufunc.reduceat 索引

假设我有一个类似的切片,x[p:-q:n]或者x[::n]我想使用它来生成要传递到numpy.ufunc.reduceat(x, [p, p + n, p + 2 * n, ...])or的索引numpy.ufunc.reduceat(x, [0, n, 2 * n, ...])。完成它的最简单有效的方法是什么?

0 投票
1 回答
808 浏览

numpy - 减少的最大值的 Numpy 索引 - numpy.argmax.reduceat

我有一个平面阵列b

c以及标记每个“块”开始的索引数组:

我知道我可以使用减少找到每个“块”中的最大值:

但是......有没有办法通过矢量化操作(无列表,循环)找到<edit>块内的最大值索引</edit>(如numpy.argmax)?

0 投票
1 回答
467 浏览

python - 使用 numpy ufuncs 修改 pandas 数据框

我有四列的值:“A”、“B”、“C”和“D”,一列包含四个字母中的任何一个。

根据字母列的值,我想计算其他三列的最大值。

假设上述数据存储在变量 df 中,我尝试执行以下操作:

我基本上希望 max 函数仅在屏蔽数据帧的相关列上工作,并在正确的位置写回原始数据帧 (df) 的“max”列,但 pandas 在最后一行抱怨:

问题是我如何准确定位这些行的那些单元格以接收 max() 函数的输出,以便不使用不必要的空间(我可以使用 apply 函数来做到这一点,但它占用了我不使用的大量空间没有)。

0 投票
2 回答
144 浏览

performance - 避免 Numpy Index For 循环

有什么办法可以避免使用第二个for循环进行这样的操作?

或者有没有更好的方法来优化这个?现在它对于大尺寸来说非常慢。

0 投票
2 回答
2624 浏览

python - 在 np 字符串数组中将每个元素与其他元素进行比较的最快方法

我有一个 numpy 字符串数组,其中一些重复,我想将每个元素与每个其他元素进行比较,以生成一个新的 1 和 0 向量,指示每对(i,j)是相同还是不同。

例如["a","b","a","c"]-> 12 元素 (4*3) 向量[1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1]

有没有办法在 numpy 中快速做到这一点,而无需通过所有元素对进行双循环?我的数组有大约 240,000 个元素,因此以天真的方式完成它需要很长时间。

我知道numpy.equal.outer,但显然numpy.equal没有在字符串上实现,所以我似乎需要一些更聪明的方法来比较它们。