2
我有一個函數如何繪製def定義的函數?
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,你可以簡單地用'return y(b).astype(np.int)'替換'h(b)'的內容。如果你真的(不管什麼原因)想要保持一個循環,那麼如果你首先定義整個數組爲'l = np.zeros_like(b,dtype = np.int)',那麼它會快得多。對於大尺寸的'b'來說,創建一個空列表並且追加值會慢得多(但是實際上,這裏的循環是不必要的:使用'numpy'的強大功能和對陣列的操作!) – Bart