- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
考虑以下 dtype float32
的 NumPy 数组:
In [29]: x = numpy.arange(10, dtype=numpy.float32)
当我使用pytables.Expr
将其乘以2
时,我得到一个float32
数组:
In [30]: tables.Expr('x * 2').eval().dtype
Out[30]: dtype('float32')
然而,当我将其乘以 2.0
时,我得到一个 float64
数组:
In [31]: tables.Expr('x * 2.0').eval().dtype
Out[31]: dtype('float64')
是否有任何方法可以在上述表达式中指定浮点文字,并且不会导致结果提升为float64
?
更一般地说,我有一个使用 float32
数组的表达式,并且我想确保结果也是 float32
类型(我不介意 float64
用于中间计算,但我无法将结果存储为 float64
)。我该怎么做?
最佳答案
我非常确定 pytables.Expr
是基于 Numexpr
的。 Numexpr 的文档指出了有关表达式中提升的以下内容:
In operations implying a scalar and an array, the normal rules of casting are used in Numexpr, in contrast with NumPy, where array types takes priority. For example, if 'a' is an array of type float32 and 'b' is an scalar of type float64 (or Python float type, which is equivalent), then 'a*b' returns a float64 in Numexpr, but a float32 in NumPy (i.e. array operands take priority in determining the result type). If you need to keep the result a float32, be sure you use a float32 scalar too.
所以这可能就是正在发生的事情。浮点常量负责提升为 64 位 float ,解决方案是显式指定浮点常量为 float32。
关于python - numexpr 中的自动 float32 提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10905272/
我需要在大约一千万点处评估 BesselK 函数。我知道scipy.special支持此为 scipy.special.kv(n, x) ,但我想要更快的评估以及内存有效的评估。理想的numexpr会
我过去在很多机器上成功安装了 numexpr。但现在我实在无法应付使其在新的 Linux 系统上运行。本质上我下载了 tar.gz 文件并且 python setup.py install --hom
我正在尝试执行以下操作: import numexpr as ne a = np.random.rand(10, 1) b = np.random.rand(1, 10) ne.NumExpr('su
我想评估 python (2.7) 中 numexpr 模块的性能。为此,我创建了一个大小为 (10^5, 10^5) 的随机稀疏矩阵。但是,下面的脚本已经在表达式求值步骤中抛出错误,表示它无法识别对
我正在使用 sympy 进行一些符号数学运算,然后使用 eval 和 sympy 的 lambdastr 实用程序生成 Python lambda 函数。这是我的意思的一个简化示例: import s
我需要使用 numexpr 重写这段代码,它正在计算矩阵数据 [行 x 列] 和向量 [1 x 列] 的欧几里德范数矩阵。 d = ((data-vec)**2).sum(axis=1) 如何实现?或
我正在尝试在 numexpr 表达式中使用对象属性。最明显的做法是: import numpy as np import numexpr as ne class MyClass: def __
如何使用 numexpr 有效地表达以下内容? z = min(x-y, 1.0) / (x+y) 这里,x 和y 是一些相同形状的大型 NumPy 数组。 换句话说,在除以 x+y 之前,我试图将
在 python numexpr 中将值分配给您正在操作的同一数组以避免创建临时数组是否安全? 来自 project homepage 上的内存使用说明看起来不错,但如果不深入研究源代码,这几乎不是一
在 Windows 10 Python 3.7.9 (IDLE) 上,我成功安装了“pip install numexpr”,但在“import numexpr as ne”时出现错误: 回溯(最近调
我在 Windows 7 机器上通过 pip 安装 numexpr 包: pip list | grep numexpr numexpr (2.4.6) 但是当我打开 ipython 并尝试使用 df
考虑以下 dtype float32 的 NumPy 数组: In [29]: x = numpy.arange(10, dtype=numpy.float32) 当我使用pytables.Expr将
我刚刚开始使用 numexpr,虽然 github 存储库似乎有一些如何使用它的基本示例,但我无法清楚地理解它们如何应用于某些复杂的情况。假设我有一个函数: def func(x): #x is
我在安装 numexpr 以安装 PyTables 时遇到问题,因此我可以处理大量数据集。 构建细节:Windows 7 专业版 64 位、Python 2.7、numexpr 2.01、numpy
我一直在尝试学习 Numexpr包裹。关于如何使用它的例子充其量是稀疏的。有人可以给我一个关于如何使用“local_dict”和“global_dict”参数的简单示例吗? 最佳答案 下面的例子可能会
我对 NumPy 据说是对其算术数组操作进行矢量化的概念感到有点挣扎:它是否克服了 Python 的 GIL,因为 NumPy 的一部分是用 C 实现的?另外,Numexpr 是如何工作的呢?如果我理
我正在尝试使用 numexpr 加速 lambdify 生成的一些数字代码。不幸的是,基于numexpr 的函数在使用sqrt 函数时会中断,即使它是supported functions 之一。 .
由于 NumPy 不使用多核,我正在学习使用 NumExpr 加速 NumPy 代码,因为它对多线程有很好的支持。下面是我正在使用的示例: # input array to work with x =
测试代码: import numpy as np import pandas as pd COUNT = 1000000 df = pd.DataFrame({ 'y': np.random.
我正在尝试创建一个较小的,分层的样本,以减少处理时间。 运行此代码: df_strat= stratified_sample(df, ["Parental Status","Gender", "Age
我是一名优秀的程序员,十分优秀!