1
私はpy-expression-evalライブラリを使用して式を評価しています。python-py-expression-eval - numpy ndarrayを渡す
import numpy as np
from py_expression_eval import Parser
parser=Parser()
a = np.array([1,2,3])
parser.parse('x*5').evaluate({'x':a})
#Works and outputs
array([ 5., 10., 15.])
しかし:
parser.parse('sin(x)').evaluate({'x':a})
がエラースロー:
Traceback (most recent call last):
File "<pyshell#52>", line 1, in <module>
parser.parse('sin(x)').evaluate({'x':a})
File "C:\Python27\lib\site-packages\py_expression_eval\__init__.py", line 133, in evaluate
nstack.append(f(n1))
TypeError: only length-1 arrays can be converted to Python scalars
をしかし、私は1で、アレイ1の値を渡した場合、それは動作します:
parser.parse('sin(x)').evaluate({'x':a[0]})
0.8414709848078965
COSとThanks..Works、日焼け、ASIN、ACOS、ATAN、ログ、切り上げ、床、ラウンド、EXP機能
np.sin
作品でそれを置き換えます。今問題は '^'です。これはmath.pow関数を使って実装されています。 np.powerで置き換えることはできません。 – inxp'^'の解を追加しました。 –
whoa ....ありがとう....私はops2を使用していたことは確かです...それは昨日働いていませんでした....しかし、今それは働いています... :) – inxp