2 回答

TA貢獻1815條經(jīng)驗 獲得超10個贊
第一個預處理是大小合理的稀疏數(shù)組。我假設它是字典或類似的映射:betas
betas_arr = np.array([betas[f'beta{j}'] for j in range(1, 10)])
接下來,請注意,每當 遞增。的數(shù)組化也會將索引更改為以 0 開頭。這意味著對于任何給定的 ,只是 。j
i + 1 % 3 == 0
betas
j
i
j
(i + 1) // 3
假設 和 是 numpy 數(shù)組,則可以在沒有循環(huán)的情況下進行計算:optionsActualise
esperances
OptVariableControle
OptVariableControle = optionsActualise + betas[np.arange(1, 28) // 3] * (optionsActualise - esperences)

TA貢獻1783條經(jīng)驗 獲得超4個贊
可以使用模數(shù) (%)運算符。當您檢查一個數(shù)字并且如果為真時,您希望按1遞增。這里有一個模式,你正在檢查的數(shù)字在除以3時得到2的余數(shù),下面是如何實現(xiàn)這個模式邏輯,使檢查更簡單,高效和緊湊:ij
OptVariableControle =np.array([])
j = 1
# Replaced 27 by 26 here, as you do not want j to change when i is 26
for i in range (0,26):
if i %3 == 2 :
j = j+1
OptVariableControle =np.append(OptVariableControle,
(optionsActualise[i] + betas["beta" + str(j)]* (optionsActualise[i]-esperences[i])))
添加回答
舉報