2 回答

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

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
可以使用模數(shù) (%)運(yùn)算符。當(dāng)您檢查一個(gè)數(shù)字并且如果為真時(shí),您希望按1遞增。這里有一個(gè)模式,你正在檢查的數(shù)字在除以3時(shí)得到2的余數(shù),下面是如何實(shí)現(xiàn)這個(gè)模式邏輯,使檢查更簡(jiǎ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])))
添加回答
舉報(bào)