gpt4 book ai didi

python - 如何 mpf 一个数组?

转载 作者:太空狗 更新时间:2023-10-29 20:11:24 24 4
gpt4 key购买 nike

我有:

import numpy as np
from mpmath import *

mpf(np.array(range(0,600)))

但它不会让我这样做:

TypeError: cannot create mpf from array

那我该怎么办呢?

基本上,我将使用这个数组,并根据情况将元素乘以一个非常大或非常小的数字(例如 1.35626567e10846.2345252e-2732) 因此需要 mpf。

更具体地说,我将使用 besseli 和 besselk 函数,它们可以创建令人难以置信的大值和令人难以置信的小值。

我如何获得一个 mpf 数组来保存这些数字?

最佳答案

将一个数组乘以一个 mpf 数就可以了:

import numpy as np
import mpmath as mp
small_number = mp.besseli(400, 2) # This is an mpf number
# Note that creating a list using `range` and then converting it
# to an array is not very efficient. Do this instead:
A = np.arange(600)
result = small_number * A # Array of dtype object, ie, it contains mpf numbeers

将两个包含 mpf 数的数组按元素相乘也可以:

result * result

所以您真正的问题是如何计算 numpy 数组中的 mpmath 函数。为此,我会使用 np.frompyfunc (前段时间这是唯一的选择)。

besseli_vec = np.frompyfunc(mp.besseli, 2, 1)
besseli_vec(0, A)

关于python - 如何 mpf 一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13743785/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com