python中的用户输入给出了float,数组乘法问题

时间:2016-08-07 10:47:39

标签: python numpy

在控制台中给出的输入时,我有以下几行代码正常工作:

import numpy as np
def simple_exponential_smoothing(actuals, n_forecast_periods,alpha):
    return np.array([np.array([alpha*((1-alpha)**k)*actuals[len(actuals)-k-1] for k in range (len(actuals))]).sum()]*n_forecast_periods)
simple_exponential_smoothing(actuals, n_forecast_periods,alpha)

但是,当尝试在代码本身中获取相同的用户输入时,它不起作用:

import numpy as np
actuals = []
actuals = input("Input list:")
n_forecast_periods = int(input("Int:"))
alpha = float(input("float:"))
def simple_exponential_smoothing(actuals, n_forecast_periods,alpha):
    return np.array([np.array([alpha*((1-alpha)**k)*actuals[len(actuals)-k-1] for k in range (len(actuals))]).sum()]*n_forecast_periods)
simple_exponential_smoothing(actuals, n_forecast_periods,alpha)

道歉,如果这不是一个好问题。我是Python的新手。

我已经尝试过使用map函数进行乘法;我在以下设置中使用起来太复杂了。

1 个答案:

答案 0 :(得分:0)

首先,您需要将输入转换为整数(或浮点数)列表:

actuals = input("Input list:")
actuals = [int(i) for i in actuals.split(',')]

我假设输入用逗号分隔。

例如,

Input list:1, 2, 5, 7, 10
Int:2
float:0.3
[ 5.48283  5.48283]

您可能也想看看pandas.ewma