如何使用numpy数组的循环?

Vic*_*zon 1 python arrays for-loop numpy scikit-learn

我有一部分像这样的代码

#predicitng values one by one 
regr = linear_model.LinearRegression()
predicted_value = np.array([ 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32])
predicted_value =  predicted_value.reshape(-1,1)


#mt
regr.fit(x, y)
predicted_values = regr.predict(predicted_value)
predict_outcome = regr.predict(predicted_value)
predictions = {'predicted_value': predict_outcome}
mmt = np.mean(predict_outcome)

#ht
regr.fit(x, ht)
predicted_values = regr.predict(predicted_value)
predict_outcome = regr.predict(predicted_value)
predictions = {'predicted_value': predict_outcome}
mht = np.mean(predict_outcome)
Run Code Online (Sandbox Code Playgroud)

而不是这个:

predicted_value = np.array([ 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32])
Run Code Online (Sandbox Code Playgroud)

如何设置范围从9到32(或x到y),以便我可以避免键入所有数字.如果使用for循环完成如何在此上下文中应用它

kaz*_*ase 7

不需要使用循环.您可以使用它numpy.arange([start, ]stop, [step, ])来生成一系列数字.

在你的情况下:

predicted_value = np.arange(9, 33)  # Note the 33 if you want 9..32
Run Code Online (Sandbox Code Playgroud)

如果您真的想使用循环,可以选择使用列表解析:

predicted_value = np.array([i for i in range(9, 33)])
Run Code Online (Sandbox Code Playgroud)

或者是一个显性循环,这将是最可怕的:

predicted_value = np.empty(33 - 9)
for k, i in enumerate(range(9, 33)):
    predicted_value[k] = i
Run Code Online (Sandbox Code Playgroud)