2
배열을 취하고 그 배열의 데이터를 (quantile에 의해) 저장하고 사전을 채운 데이터로 채우려 고합니다. 생성 된 사전에서 나는 키가 bin 번호에 해당하고 값이 j 번째 및 (j + 1) 번째 bin 범위 내에있는 입력 배열의 데이터 목록이되도록합니다. 여기 사전 목록 채우기 - 중첩 루프는 한 번만 실행됩니까?
내 코드입니다 :output = []
def binning(array1):
d1 = {} # empty dictionary to fill with lists of values
bin_edges = sp.stats.mstats.mquantiles(array1, prob=[0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875,1.00])
j = 0
while j < len(bin_edges):
for i in range(0, len(array1)):
if float(array1[i]) > bin_edges[j] and float(array1[i]) <= bin_edges[j+1]:
output.append(array1[i])
d1["bin_number{0}".format(j)]= output
j+=1
return d1
문제는 내부 루프가 한 번만 실행되므로 내가보고 싶은 것은 내가
d1 = {'bin_number0': [value1, value2, etc.]}.
같은 출력을 얻고있다 :
d1 = {'bin_number0': [value1, value2, etc.],'bin_number1': [value3, value4, etc.],'bin_number2': [value5, value6, etc.]}
... 등등, 8 개의 값 목록에 해당하는 8 개의 키가 있습니다.
내부 루프가 한 번만 실행되는 이유는 누구에게 말해 줄 수 있습니까 (j = 0)? 나는 여러 번 눈을봤을 때 신선한 쌍안경이 필요합니다.