mpmath中的逐元素操作

6 投票
3 回答
2542 浏览
提问于 2025-04-17 19:19

我想在Python数组上进行逐元素的mpmath操作。比如说,

import mpmath as mpm
x = mpm.arange(0,4)
y = mpm.sin(x)        # error

另外,我也可以使用mpmath矩阵来实现这个操作。

x = mpm.matrix([0,1,2,3])
y = mpm.sin(x)             # error

请问,mpmath在这方面有什么功能吗?还是说必须要一个一个地循环处理每个元素呢?

3 个回答

-1

apply方法应该是可以正常工作的

A = mpmath.arange(0,4)

A.apply(sin)
3

mpmath.arange 显然返回的是普通的 Python 列表,所以你可以使用 map 来对每个元素应用一个函数:

import mpmath
x = mpmath.arange(0,4)
y = map(mpmath.sin, x)
9

mpmath这个库似乎不支持逐个元素的操作,不过你可以使用numpy来实现这个功能:

import numpy as np
import mpmath as mpm
x = np.array(mpm.arange(0,4))

sin = np.vectorize(mpm.sin)
y = sin(x)

撰写回答