Pyhtonを用いたグラフの描画において、下記のように定義域を配列で表現し、関数の出力も配列で表現したい時があります。
import numpy as np; import matplotlib.pyplot as plt; def f(x): y = (略) return y; xlist = np.linspace(-5,5,100); y = f(xlist); plt.plot(xlist, y); plt.show();
このとき、f()の中でmathパッケージのlogやexpを用いるとエラーが出ます。
そういうときは下記のようにnumpyパッケージのlogやexpを用いればオッケーです。
>>> a = np.array([2,3,4]) >>> math.exp(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: only length-1 arrays can be converted to Python scalars >>> np.exp(a) array([ 7.3890561 , 20.08553692, 54.59815003])
sin等のその他の関数も同様です。