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
을하지만 하나에 의해 배열을 하나의 값을 전달하면 그것은 작동 :
parser.parse('sin(x)').evaluate({'x':a[0]})
0.8414709848078965
Thanks..Works, 황갈색, ASIN는, ACOS는, ATAN, 또한, 천장을 만들다, 바닥, 라운드, 특급 기능 로그 . 이제 문제는 '^'뿐이며 math.pow 함수를 사용하여 구현됩니다. np.power로 교체하면 작동하지 않습니다. – inxp
'^'에 대한 해결책을 추가했습니다. –
와우 .... 고마워 .... 내가 작전 2를 사용했다는 것이 확실했다 ... 어제 작동하지 않았다. 그러나 지금은 일하고있다. :) – inxp