首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对数组进行mpf操作?

如何对数组进行mpf操作?
EN

Stack Overflow用户
提问于 2012-12-06 20:35:39
回答 2查看 7.4K关注 0票数 11

我有:

代码语言:javascript
复制
import numpy as np
from mpmath import *

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

但它不让我这么做:

代码语言:javascript
复制
TypeError: cannot create mpf from array

那么我应该做些什么呢?

基本上,我将使用这个数组,并根据环境(例如1.35626567e10846.2345252e-2732)以令人难以置信的大小乘以元素,因此需要mpf。

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

如何让mpf数组保存这些数字?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-07 01:06:55

将一个数组乘以一个mpf数字就行了:

代码语言:javascript
复制
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数字的两个数组进行逐个元素相乘也是可行的:

代码语言:javascript
复制
result * result

因此,您真正的问题是如何计算numpy数组中的mpmath函数。要做到这一点,我会使用np.frompyfunc (不久前这是唯一的选择)。

代码语言:javascript
复制
besseli_vec = np.frompyfunc(mp.besseli, 2, 1)
besseli_vec(0, A)
票数 16
EN

Stack Overflow用户

发布于 2012-12-06 21:28:56

查看mpmath.arange

代码语言:javascript
复制
import numpy as np
import mpmath as mp

np.array(mp.arange(600))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13743785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档