Python 有没有一种方法可以使Numpy中的复数具有十进制类型的精度?

Python 有没有一种方法可以使Numpy中的复数具有十进制类型的精度?,python,numpy,decimal,complex-numbers,floating-point-precision,Python,Numpy,Decimal,Complex Numbers,Floating Point Precision,我在Python中使用的是复数的NumPy数组,它远远超过了NumPys默认复数类型(大于10^500的数字)的正常浮点限制。我想知道是否有某种方法可以扩展NumPy,使它能够处理这种量级的复数。例如,有没有一种方法可以创建一个使用Decimal模块功能的NumPy复杂类型 我知道有诸如mpmath()之类的可用资源可以满足我的需要,但是我的项目要求我使用NumPy 对于那些对我为什么需要这些巨大数字感兴趣的人,这是因为我正在进行早期宇宙的数值相对论模拟。根据您的平台,您可能支持complex1

我在Python中使用的是复数的NumPy数组,它远远超过了NumPys默认复数类型(大于10^500的数字)的正常浮点限制。我想知道是否有某种方法可以扩展NumPy,使它能够处理这种量级的复数。例如,有没有一种方法可以创建一个使用Decimal模块功能的NumPy复杂类型

我知道有诸如mpmath()之类的可用资源可以满足我的需要,但是我的项目要求我使用NumPy


对于那些对我为什么需要这些巨大数字感兴趣的人,这是因为我正在进行早期宇宙的数值相对论模拟。

根据您的平台,您可能支持complex192和/或complex256。这些通常在Windows下的英特尔平台上不可用,但在其他一些平台上可用-如果您的代码在Solaris或超级计算机群集上运行,则可能支持其中之一这些类型。在Linux上,您甚至可以找到它们,或者您可以使用
dtype=object
创建数组,然后使用bigfloat或gmpy2.mpc

  • 最大为10^4932+10^4932j的复数256
  • complex192同上,但精度较低
  • 我甚至看到有人提到numpy和complex512

  • 你试过创建一个mpmath对象的numpy数组吗?有一些信息是关于我没有想过要创建一个mpmath对象数组的,我来试试。另外,这篇用户定义类型的文章看起来很有前途。谢谢你们,我会给你们回复结果的。嗯,我的工作目前正在一台windows机器和一台Linux机器上进行分割……要么我必须使这两台机器都是Linux,要么找到另一个解决方案。不过谢谢你,这给了我一个很好的调查途径。