Error: index XXX is out of bounds for axis ~ with size ~
四分位範囲を用いてデータの外れ値をとるプログラムを書きたいのですが、上記のエラーが発生します。
データは添付画像の下の方にprintしてある形式で格納しています。
index 195 is out of bounds for axis 0 with size 6 と出ており、indexの大きさが合っていないという事なんでしょうが、bridgeとsampleというデータは長さ556の一次元配列で195というindexでなぜエラーが発生するのか分かりません。
どのように対処すればよろしいでしょうか。
プログラミング1週間目の初心者なのでお手柔らかにお願いします。
html
1def process() : 2 3 import numpy as np 4 import joblib 5 6 input = joblib.load('data1') 7 l1 = len(input) 8 9 for i in range(l1) : 10 data = input[i] 11 bridge = data[:,2] 12 sample = data[:,3] 13 14 Q3_b, Q1_b = np.percentile(bridge, [75, 25]) 15 IQR_b = Q3_b - Q1_b 16 17 Q3_s, Q1_s = np.percentile(sample, [75, 25]) 18 IQR_s = Q3_s - Q1_s 19 20 outlier1_b = Q3_b + 1.5*IQR_b 21 outlier2_b = Q1_b - 1.5*IQR_b 22 23 outlier1_s = Q3_s + 1.5*IQR_s 24 outlier2_s = Q1_b - 1.5*IQR_s 25 26 l2 = len(sample) 27 for j in range(l2) : 28 if bridge[j] > outlier1_b or bridge[j] < outlier2_b or sample[j] > outlier1_s or sample[j] < outlier2_s : 29 data = np.delete(data[i],j,0) 30 print(i,j) 31 else : 32 pass 33 34 joblib.dump(data,'data_normalized')
回答1件
あなたの回答
tips
プレビュー