我試圖實現高斯分佈的矢量化實現,而不使用任何numpy函數。正態分佈的Vectorised實現
只是想明確我想在沒有forloop的情況下達到與以下相同的結果。
import numpy as np
import matplotlib.pyplot as plt
import math
x = np.linspace(-1, 1, 100)
y = np.linspace(-1, 1, 100)
for i in range(0, len(x)):
y[i] = normpdf(y[i], 0, .1)
plt.plot(x, y)
plt.show()
def normpdf(x, mean, sd):
var = float(sd)**2
denom = (2*math.pi*var)**.5
num = math.exp(-(float(x)-float(mean))**2/(2*var))
return num/denom
您可以更改您的代碼,以便在for循環中調用normpdf之前進行定義嗎? –
你有什麼理由想要這樣做,而不使用任何numpy功能?您已經在使用'np.linspace',並且您已經說過您需要一個矢量化解決方案,通常意味着利用numpy數組方法。你是否知道['scipy.stats.norm.pdf'](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.norm.html)? –
這就是iv'e在我的筆記本中定義它的方式,仍然不能實現矢量化。@ ali_m沒有任何功能原因,它是矢量化ML算法的練習的一部分。 –