我有一个输入数据流,它有交错的实数和虚数整数.将这些值转换为complex64值是我程序中最慢的操作.这是我目前的做法:
import numpy as np
a = np.zeros(1000000, dtype=np.int16)
b = np.complex64(a[::2]) + np.complex64(1j) * np.complex64(a[1::2])
Run Code Online (Sandbox Code Playgroud)
如果不进行C扩展或使用cython之类的东西,我能做得更好吗?如果我不能做得更好,那么使用像其中之一这样的技术最简单的方法是什么?
我在Python中使用复数的NumPy数组,这些数组的扩展远远超过NumPys默认复杂类型(数字大于10 ^ 500)的正常浮点限制.我想知道是否有某种方法可以扩展NumPy,以便它能够处理这种规模的复杂数字.例如,有没有办法制作使用Decimal模块功能的NumPy复杂类型?
我知道有可用的资源,例如mpmath(https://code.google.com/p/mpmath/)可能会做我需要的,但是我的项目要求我使用NumPy.
对于那些对我为什么需要这些巨大数字感兴趣的人来说,这是因为我正在研究早期宇宙的数值相对论模拟.
python numpy decimal complex-numbers floating-point-precision