微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python3:下面是预定义的stats_value(arr);请帮我解决

如何解决Python3:下面是预定义的stats_value(arr);请帮我解决

import numpy as np
from scipy import stats
import statistics
def stats_values(arr):

#Input : arr - Numpy 数组 #Output:函数必须按以下顺序打印数组的统计信息 #1.意思 #2.中位数 #3.标准差 #4.方差 #5.模式 #5.四分位距 #注意:所有答案必须是 Float 数据类型。将您的答案四舍五入到 2 位数。 #''' #在这里写你的代码

x1 = np.mean(arr)
print('%.1f'%x1)
x2 = np.median(arr)
print('%.1f'%x2)
x3 = np.std(arr,dtype = np.float32)
print('%.2f'%x3)
x5 = np.var(arr)
print('%.1f'%x5)
MODE = stats.mode(arr)
x4= MODE[0]
print('%.1f'%x4 )
Q1 = np.percentile(arr,25,interpolation = 'midpoint')
Q3 = np.percentile(arr,75,interpolation = 'midpoint')
iqr = Q3 - Q1
print('%.1f'%iqr )

if __]name__ == "__main__":
 array_num=[]
 n=int(input())
 for i in range(n):
    a=input()
    af=float(a)
    array_num.append(af)
arr=np.array(array_num)
stats_values(arr)

#---------------------------------------------- ---------------------------------------------

#This is my code but it's not passing other other cases except one.below are arr[] values
#**Test case 0:**  [2. 2. 3. 5.]   --working
#**Test case 1:** [ 9.2 10.7  6.8  9.   3.4  5.7  5.7]
#**Test case 2:** [23.   34.   56.    2.3   4.5   4.5  67.   89.   89.   89.   89.   89.
#4.67  3.45  2.45  3.45  6.8   9.    2.45 56.6 ]
#**Test case 3:**** [23.   34.   56.    2.3   4.5   4.5  67.   89.   89.   89.   89.   89.
#4.67  3.45  2.45  3.45  6.8   9.    2.45 56.6  45.   45.   45.   45.
#45.   45.   56.   78.   89.   78.   90.   12.   34.   56.   78.   23.
#45.   67.   89.   89.  ]

解决方法

以下代码的所有测试用例都已成功执行:

import numpy as np
from scipy import stats
import statistics
def stats_values(arr):
#Write your code here
from scipy import stats
from math import sqrt
print(round(np.mean(arr),2))
print(round(np.median(arr),2))
N = len(arr)
mu = sum(arr)/float(N)
diff_sq = [(i-mu)**2 for i in arr]
variance = sum(diff_sq)/float(N)
stdev = sqrt(sum(diff_sq)/float(N))
print(round(stdev,2))
print(round(variance,2))
print(float(stats.mode(arr)[0]))
arr.sort()
qa_third,qa_first = np.percentile(arr,[75,25])
iqr = qa_third - qa_first
print(round(iqr,2))

if __name__ == "__main__":
array_num=[]
n=int(input())
for i in range(n):
    a=input()
    af=float(a)
    array_num.append(af)
arr=np.array(array_num)
stats_values(arr)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。