当前位置:网站首页>Numpy -- epidemic data analysis case

Numpy -- epidemic data analysis case

2022-07-07 15:50:00 madkeyboard

Preparation

Download data files , Read data packets from data files for storage .

Data file address :https://mofanpy.com/static/files/covid19_day_wise.csv

with open("covid19_day_wise.csv", "r", encoding="utf-8") as f:
    data = f.readlines() #  Open the file and read the data 

covid = {
     #  Define an object storage date 、 Data and title 
    "date": [], #  date 
    "data": [], #  data 
    "header": [h for h in data[0].strip().split(",") [1:]] #  title 
}
for row in data[1:]: #  Store data in groups 
    split_row = row.strip().split(",")
    covid["date"].append(split_row[0])
    covid["data"].append([float(n) for n in split_row[1:]])

Data analysis

obtain 2020 year 2 month 3 All the data of the day

target = covid["date"].index("2020-02-03") #  Find the subscript of the target date 
data = np.array(covid["data"])
for header, number in zip(covid["header"],data[target]): 
  print(header," : ",number)

image-20220703211345297

2020 year 1 month 24 How many cumulative confirmed cases were there before September ?

target = covid["date"].index("2020-01-24") #  Find the subscript of the target date 
confirm_idx = covid["header"].index("Confirmed") #  Get the subscript of the diagnosis Title 
data = np.array(covid["data"])
print("2020  year  1  month  24  The cumulative confirmed cases before September were  %d  individual " % data[target,confirm_idx]) #  Note here that the statistical data does not include 1 month 14

# 2020  year  1  month  24  The cumulative confirmed cases before September were  941  individual 

from 1 month 25 The day is coming 7 month 22 Japan , How many confirmed cases have increased in total ?

target_idx1 = covid["date"].index("2020-01-25")
target_idx2 = covid["date"].index("2020-07-22")
new_cases_idx = covid['header'].index("New cases")

data = np.array(covid["data"])
new_cases = data[target_idx1 + 1: target_idx2 + 1,new_cases_idx]

print(" Total growth :",new_cases.sum())

#  Total growth : 15247309.0

The ratio of newly diagnosed number to newly recovered number every day ? The average ratio , What are the standard deviations ?

new_cases_idx = covid['header'].index("New cases")
new_recovered_idx = covid['header'].index("New recovered")

data = np.array(covid["data"])

not_zero_mask = data[:, new_recovered_idx] != 0 #  The divisor filtered out is 0, return false
ratio = data[not_zero_mask,new_cases_idx] / data[not_zero_mask,new_recovered_idx] #  Get the new confirmation number and the new recovery number respectively , Then divide them in turn 

print(" The proportion :",ratio[:5]) #  front 5 Group proportion 
print(" The average ratio :",ratio.mean(),"\n Standard deviation :",ratio.std())

'''  The proportion : [ 49.5 47.83333333 164.33333333 52.61538462 89.88888889]  The average ratio : 7.049556348053241  Standard deviation : 19.094025710450307 '''
原网站

版权声明
本文为[madkeyboard]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207071326433714.html

随机推荐