问题标签 [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.
numpy - 为什么我不能使用 numpy.logaddexp.reduce?
为什么我不能使用 numpy.logaddexp.reduce?
python - 如何使用 numpy.frompyfunc 返回元素数组而不是数组数组?
我正在使用 SHTOOLS 包中的 PLegendre 函数。它返回一个特定参数的勒让德多项式数组。PLegendre(lmax,x) 返回 Legendre 多项式 P_0(x) 到 P_lmax(x) 的数组。它是这样工作的:
我想传递一个数组作为参数,所以我使用frompyfunc。
输出是一个数组数组。我知道我可以通过对数组进行切片来创建一个元素数组。
但是..有没有办法直接解决这个问题,而不必对数组数组进行切片?
python-2.7 - 获得叉积的最快方法
看起来显式计算向量数组的叉积比使用np.cross
. 我已经尝试过vector-first和vector-last,它似乎没有什么区别,尽管这是在对类似问题的回答中提出的。是我用错了,还是只是慢了点?
在笔记本电脑上,每个交叉产品的显式计算似乎需要大约 60ns。这〜大致〜尽可能快吗?在这种情况下,似乎没有任何理由去 Cython 或 PyPy 或编写一个特别的ufunc
。
我也看到了使用 einsum 的参考资料,但我并不真正了解如何使用它,并且怀疑它并没有更快。
python - Pandas / Numpy 玩得不好
我正在尝试将 Pandas 和 Numpy 一起安装,以便它们能够正常工作。我目前收到错误“numpy.ufunction 的大小错误,请尝试重新编译”。这似乎表明 Pandas 需要的 Numpy 版本不正确。但我已经尝试过 numpy 版本 1.5.0 用于 32 位,numpy 1.6.1 用于 32 位,numpy 1.7.0 用于 32 位,numpy 1.7.1 用于 32 位 Windows。
我必须下载 .exe 并以这种方式加载它,因为如果我尝试 pip install numpy 我会收到清理错误。所以我不知道如何让 Pandas 和 Numpy 一起工作。我会安装 Anaconda,但我使用的脚本也需要 win32com,并且害怕在那里破坏某些东西。
我已经多次卸载并重新安装了这些模块。
任何建议,将不胜感激。我正在运行 Windows 7 64 位并在计算机上加载了 ActivePython 2.7.6.9 MSC v.1500 32 位。
先感谢您。我已经阅读了其他几篇帖子,但我仍然无法解决我的问题。
罗伯特
python-2.7 - 如何正确安装 NumPy ufunc?
我正在尝试从SciPy Docs安装一个示例 ufunc,但是当我运行python setup.py build
或python setup.py install
收到一些关于已弃用 NumPy API 的警告时。
当我运行python setup.py install
这是输出:
运行python setup.py build
产生:
如果我尝试导入模块,我会得到:
有谁知道如何使这项工作?
python - 计算复杂 numpy ndarray 的 abs()**2 的最节省内存的方法
我正在寻找最节省内存的方法来计算复杂的 numpy ndarray 的绝对平方值
我还没有找到一个完全可以做到的 ufunc np.abs()**2
。
由于这种大小和类型的数组占用大约半 GB,我正在寻找一种主要节省内存的方法。
我也希望它是可移植的,所以理想情况下是一些 ufunc 的组合。
到目前为止,我的理解是这应该是最好的
它将不必要地计算(**0.5)**2
,但应该**2
就地计算。总共峰值内存需求只是原始数组大小 + 结果数组大小,应该是 1.5 * 原始数组大小,因为结果是真实的。
如果我想摆脱无用的**2
电话,我必须做这样的事情
但如果我没记错的话,这意味着我必须为实部和虚部计算分配内存,因此峰值内存使用量将是 2.0 * 原始数组大小。这些arr.real
属性还返回一个不连续的数组(但这不太重要)。
有什么我想念的吗?有没有更好的方法来做到这一点?
编辑1:很抱歉没有说清楚,我不想覆盖arr,所以我不能用它。
python - Numpy 将输入数组作为 `out` 参数传递给 ufunc
如果类型正确,将输入数组作为可选输出参数提供给 numpy 中的 ufunc 通常是否安全?例如,我已经验证了以下工作:
数组类型必须与输出(对于 的浮点数numpy.floor()
)兼容或相同,否则会发生这种情况:
因此,鉴于一个适当类型的数组,就地应用 ufunc 通常安全吗?还是floor()
特例?该文档没有说清楚,以下两个与该问题有切线关系的线程也没有说清楚:
编辑:
作为一阶猜测,我会假设它通常是安全的,但并不总是安全的,基于http://docs.scipy.org/doc/numpy/user/c-info.ufunc-tutorial.html上的教程。在计算期间使用输出数组作为中间结果的临时持有者似乎没有任何限制。虽然类似floor()
并且ciel()
可能不需要临时存储,但可能需要更复杂的功能。话虽这么说,整个现有的库可能是在考虑到这一点的情况下编写的。
python - 对数组的两个值进行更快的循环操作
考虑以下函数:
如何重写第 1 行/第 2 行以使循环在 python 3 中更快(不使用 cython)?
python - 用python3.x在numpy中做地板除法的ufunc是什么?
在 python 2.x 中,我可以使用通用函数numpy.divide
进行楼层划分。但是,ufuncdivide
和true_divide
两者都在 python 3.x 中进行了真正的除法。
那么numpy中用python3做地板除法的通用函数是什么?
python - 使用 numpy.frompyfunc 将广播添加到带有参数的 python 函数
从一个数组db
(大约是(1e6, 300)
)和一个mask = [1, 0, 1]
向量中,我将目标定义为第一列中的 1。
我想创建一个out
向量,该向量由其中对应的行db
匹配mask
andtarget==1
和其他任何地方的零组成。
我已经定义了一个vline
函数,该函数将 amask
应用于每个数组行,np.array_equal(mask, mask & vector)
用于检查向量 101 和 111 是否适合掩码,然后仅保留索引 where target == 1
。
out
被初始化为array([0, 0, 0, 0, 0, 0])
vline
函数定义为:
for
通过在循环中逐行应用此函数,我得到了正确的结果:
现在我想vline
通过创建一个矢量化ufunc
:
但是ufunc
抱怨用这些形状广播输入: