不好意思,因為我不是本科的學生,所以不太會做
主要是想利用for loop與ndarray計算樣本標準差,我知道有簡式能用,不過題目不准@@
目前是寫了下面這樣,跑出來的結果是32.963679507401274,在最下面三行不改的情況下,我看正解是30.888381395974083,想問看看該如何修改才好
import numpy as np
def my_std(n):
for i in n:
std = np.sqrt(np.sum(np.square((i- np.mean(n)))) /(len(n)-1))
return std
np.random.seed(100)
data = np.random.randint(0,100,size=(4,5))
my_std(data)
麻煩大家了!非常感謝~~
把 for 拿掉即可,numpy 可以對整個 numpy.array 操作
def my_std(n):
std = np.sqrt(np.sum(np.square(n - np.mean(n))) / (n.size - 1))
return std