np.sin(x/2.) * np.exp(x/4.) + 6. * np.exp(-x/4.)
を持っていると私は次のコードを使用して、それをプロットすることができます
x = np.arange(-5, 15, 2)
y = np.sin(x/2.) * np.exp(x/4.) + 6. * np.exp(-x/4.)
plt.plot(x, y)
plt.show()
をしかし、私は、関数プロットを定義した場合は動作しません:
rr = np.arange(-5, 15, 2)
def y(o):
return np.sin(o/2.) * np.exp(o/4.) + 6. * np.exp(-o/4.)
def h(b):
return int(y(b))
plt.plot(rr, h)
plt.show()
はなぜそれは起こり、関数をプロットするためにコードをどのように変更できますか?
データを 'int'にキャストする追加機能を実際に作成したい場合は、単に' h(b) 'の内容を' return y(b).astype(np.int) 'に置き換えることができます。実際に(何らかの理由で)ループを維持したいのであれば、配列全体を 'l = np.zeros_like(b、dtype = np.int)'として最初に定義すれば、はるかに高速です。大量の 'b'の空リストを作成して値を追加するのがはるかに遅くなります(実際はループは不要です:numpyとその操作を配列に使ってください!) – Bart