问题标签 [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.
python - Python Sympy ufuncify FallingFactorial
我想对 Sympy 的 FallingFactorial 函数进行 ufunc 化,以便它在数组输入上的工作方式与 numpy 类似,而不仅仅是一对整数。
我尝试了以下代码:
但我收到以下错误:
上面的代码对其他人有用还是我有什么问题?我正在使用 Python 2.7 和 Sympy 0.7.4.1
python - 记录一流分配的功能
我有一个利用 Python 函数的一流特性定义的函数,如下所示:
要么我需要一种将文档字符串添加到按原样定义的函数的方法,要么使用更常见的格式实现相同的目的,以便我可以以正常方式编写文档字符串:
当函数被调用时起作用
但是我随后失去了调用方法的能力,例如
我猜这是因为函数在使用时变得更像一个类frompyfunc
,从ufunc
.
我想我可能需要定义一个类,而不是一个函数,但我不确定如何。我会同意的,因为这样我就可以像往常一样轻松添加文档字符串。
我标记了这个coding-style
,因为原始方法有效,但不能轻易记录,如果标题不清楚,我很抱歉,我不知道描述这个的正确词汇。
python - 将 N 个工作日添加到不属于单元“D”的 Numpy datetime64
我正在尝试将工作日添加到当前格式化为datetime64
对象但类型为'ns'
.
根据 Numpy文档,该busday_offset
函数仅适用于单位为'D'
. 我想要的功能存在于 Pandas 中,使用“BusiniessDay in
tseries.offsets”。
我可以将每个日期转换为 Pandas Timestamp
,然后添加偏移量,然后再转换回来,但这感觉比应该做的工作更多。
有没有办法直接将任意数量的工作日添加到datetime64
具有单位的对象'ns'
?
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
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__"
。是什么赋予了?
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, ...])
。完成它的最简单有效的方法是什么?
numpy - 减少的最大值的 Numpy 索引 - numpy.argmax.reduceat
我有一个平面阵列b
:
c
以及标记每个“块”开始的索引数组:
我知道我可以使用减少找到每个“块”中的最大值:
但是......有没有办法通过矢量化操作(无列表,循环)找到<edit>
块内的最大值索引</edit>
(如numpy.argmax
)?
python - 使用 numpy ufuncs 修改 pandas 数据框
我有四列的值:“A”、“B”、“C”和“D”,一列包含四个字母中的任何一个。
根据字母列的值,我想计算其他三列的最大值。
假设上述数据存储在变量 df 中,我尝试执行以下操作:
我基本上希望 max 函数仅在屏蔽数据帧的相关列上工作,并在正确的位置写回原始数据帧 (df) 的“max”列,但 pandas 在最后一行抱怨:
问题是我如何准确定位这些行的那些单元格以接收 max() 函数的输出,以便不使用不必要的空间(我可以使用 apply 函数来做到这一点,但它占用了我不使用的大量空间没有)。
performance - 避免 Numpy Index For 循环
有什么办法可以避免使用第二个for
循环进行这样的操作?
或者有没有更好的方法来优化这个?现在它对于大尺寸来说非常慢。
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
没有在字符串上实现,所以我似乎需要一些更聪明的方法来比较它们。