求大家帮我分析一下这个程序

a = input("请输入十个数字:").split()
n = a[::-1]
print(' '.join(n))

a = input("请输入十个数字:").split() #把input进来的字符串按空格分割,变成一个str数组
n = a[::-1] #切片操作,数组取反
print(' '.join(n)) #把取反后的数组重新按空格合并为一个str

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7562843
  • 这篇博客也不错, 你可以看下第一个爬虫小程序
  • 除此之外, 这篇博客: 预测疫情新增确诊数,我是这么做的中的 模型 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 首先构建两个线性回归模型:

    • 输入今日医学观察数,预测明日新增确诊数

    • 输入明日医学观察数,输出明日新增确诊数

    from sklearn.linear_model import LinearRegression
    
    # 第一个线性回归模型
    X_train = clean_df["watch"].values.reshape(-1,1)
    y_train = clean_df["new"].to_list()
    
    lin_reg01 = LinearRegression()
    lin_reg01.fit(X_train, y_train)
    
    # 第二个线性回归模型 new_df指的是上述重新排列后的数据集
    X_log_train = np.log(new_df["watch"].values.reshape(-1,1))
    y_log_train = np.log(new_df["new"].to_list())
    
    lin_reg02 = LinearRegression()
    lin_reg02.fit(X_log_train, y_log_train)
    

    其中第二个模型可以直接进行预测了:

    # 0202的医学观察数为152700,输入
    res = lin_reg02.predict(np.log([[152700]]))[0]
    # 得出结果为2931
    print(np.exp(res))
    

    这里可以看到我们已经得出第一个结果了2931,我还是想试试第二个方案的结果,2931可以作为一个参考,后面可以将两个结果平均一下。

    第二个方案,线性回归模型我们已经构建好了,接下来弄个时间序列模型来预测后面一天的医学观察数。

    from statsmodels.tsa.arima_model import ARIMA
    
    order = sm.tsa.arma_order_select_ic(log_watch_df, max_ar=7, max_ma=7, ic=['aic', 'bic', 'hqic'])
    # 给出最优p q值
    p, q =order.bic_min_order
    
    train_X = log_watch_df[:]
    arima_model = ARIMA(train_X, (p, 0, q)).fit()
    # 预测未来两天数据
    # 2020-02-03    11.974123
    # 2020-02-04    11.945058
    predict_data_02 = arima_model.predict(start=len(train_X), end=len(train_X) + 1, dynamic = False)
    # 预测历史数据
    # 2020-01-28    10.853324
    # 2020-01-29    10.997501
    # 2020-01-30    11.591271
    # 2020-01-31    11.714462
    # 2020-02-01    11.775772
    # 2020-02-02    11.920444
    predict_data = arima_model.predict(dynamic = False)
    

    看看预测值和实际值:

    comp = pd.DataFrame()
    comp['original'] = train_X[:]
    comp['predict'] = predict_data[:]
    comp.plot(figsize=(12,6))
    

    08

    此时我们已经知道2020-02-03 11.974123是模型预测的明天的值,我们转换一下再将前面的误差综合一下,2020-02-03的预测医学观察数是:163739,根据第一个模型,输入明日医学观察数,得出明日新增确诊人数:

    lin_reg01.predict([[163739]])
    # 输出
    array([3063.42234138])
    

    目前可以得出以下结果:

    • 对于第一个方案,预测2020-02-03新增确诊人数是:3063

    • 对于第二个方案:预测2020-02-03新增确诊人数是:2931

    我来取个中间值吧:2997

    于是,我预测2020-02-03新增确诊人数是:2997,此结论仅仅作为参考,也肯定会在一定范围内波动,不要当真哈。

     

    欢迎关注公众号【老胡的储物柜】

    历史推文: