我偶然發現了一個簡單的問題,它阻礙了我的進一步發展。我想在一個回圈中計算兩個專案的除法日志,然后將每個結果保存到一個新陣列中。
所以我的資料集已經用 Sklearn MinMaxScaler 進行了縮放,我想要執行的精確計算如下:
logs = np.empty(12530)
for i in data_prepared - 1:
logs[i] = np.log10(data_prepared[i 1] / data_prepared[i])
但兩者都math.log10()回傳np.log10索引錯誤:
IndexError: arrays used as indices must be of integer (or boolean) type
如何執行我需要的計算?
編輯:data_prepared dtype 是 float32
uj5u.com熱心網友回復:
如果data_prepared是 a numpy.array(),您的回圈將回傳此串列的值,而不是索引。您的錯誤暗示這是正在發生的事情,因為 from 的值data_prepared不一定是整數或布林值。
for i in data_prepared - 1:
是相同的
for j in range(len(data_prepared)):
i = data_prepared[j] - 1
所以你應該做
logs = np.empty(12530)
for i in range(len(data_prepared) - 1):
logs[i] = np.log10(data_prepared[i 1] / data_prepared[i])
或使用評論中指出的點積。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/419287.html
標籤:
上一篇:CRC不回傳預期值
下一篇:如何在Python中計算平方根?
