[Python]exp,sin等の関数に引数として配列を渡したい時

Kazutoshi Shinoda 347views 更新:2016年5月3日

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等のその他の関数も同様です。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません