2021年3月20日星期六

numpy - why mean and SD are unstable for the same value?

Question

Why the same value -3.29686744 results in different mean and standard deviation?

Expected

X = np.array([      [-1.11793447, -3.29686744, -3.50615096],      [-1.11793447, -3.29686744, -3.50615096],      [-1.11793447, -3.29686744, -3.50615096]  ])    mean = np.mean(X, axis=0)  print(f"mean is \n{mean}\nX-mean is \n{X-mean}\n")    sd = np.std(X, axis=0)  print(f"SD is \n{sd}\n")  

Result:

mean is   [-1.11793447 -3.29686744 -3.50615096]  X-mean is   [[0. 0. 0.]   [0. 0. 0.]   [0. 0. 0.]]    SD is   [0. 0. 0.]  

Unexpected

X = np.array([      [-1.11793447, -3.29686744, -3.50615096],      [-1.11793447, -3.29686744, -3.50615096],      [-1.11793447, -3.29686744, -3.50615096],      [-1.11793447, -3.29686744, -3.50615096],      [-1.11793447, -3.29686744, -3.50615096]  ])    mean = np.mean(X, axis=0)  print(f"mean is \n{mean}\nX-mean is \n{X-mean}\n")    sd = np.std(X, axis=0)  print(f"SD is \n{sd}\n")  

Result is:

mean is   [-1.11793447 -3.29686744 -3.50615096]  X-mean is   [[0.0000000e+00 4.4408921e-16 4.4408921e-16]   [0.0000000e+00 4.4408921e-16 4.4408921e-16]   [0.0000000e+00 4.4408921e-16 4.4408921e-16]   [0.0000000e+00 4.4408921e-16 4.4408921e-16]   [0.0000000e+00 4.4408921e-16 4.4408921e-16]]    SD is   [0.0000000e+00 4.4408921e-16 4.4408921e-16]  
https://stackoverflow.com/questions/66728134/numpy-why-mean-and-sd-are-unstable-for-the-same-value March 21, 2021 at 09:47AM

没有评论:

发表评论