Поэлементные операции в mpmath

Я хочу выполнять поэлементные операции mpmath с массивами Python. . Например,

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 какие-либо возможности в этой области, или необходимо перебирать записи в цикле?


person Doubt    schedule 16.03.2013    source источник


Ответы (3)


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)
person DrRobotNinja    schedule 16.03.2013

mpmath.arange, по-видимому, возвращает обычные списки Python, поэтому вы можете использовать map для применения функции к каждому элементу:

import mpmath
x = mpmath.arange(0,4)
y = map(mpmath.sin, x)
person Lynn    schedule 16.03.2013
comment
Спасибо nooodl, тоже отличная идея. - person Doubt; 16.03.2013

Метод применения просто должен работать

A = mpmath.arange(0,4)

A.apply(sin)
person nasir    schedule 30.04.2013
comment
Это действительно работает с матрицами (но не со списками), что было исходным вопросом! Попробуйте x = mpm.matrix([0,1,2,3]) y = x.apply(mpm.sin) - person Bananin; 21.08.2019