Pythonic способ вычисления смещения массива

Я пытаюсь вычислить происхождение и смещение массивов переменного размера и сохранить их в словаре. Вот вероятный не -pythonic способ, которым я достиг этого. Я не уверен, стоит ли мне использовать карту, лямбда-функцию или списки, чтобы сделать код более питоническим.

По сути, мне нужно вырезать куски массива на основе общего размера и сохранить xstart, ystart, x _число _из _строк _до _чтение, y _число _из _столбцов с _по _считываются в словаре. Общий размер варьируется. Я не могу загрузить весь массив в память и использовать индексацию numpy, иначе я бы определенно это сделал. Происхождение и смещение используются для получения массива в numpy.

intervalx = xsize / xsegment #Get the size of the chunks
intervaly = ysize / ysegment #Get the size of the chunks

#Setup to segment the image storing the start values and key into a dictionary.
xstart = 0
ystart = 0
key = 0

d = defaultdict(list)

for y in xrange(0, ysize, intervaly):
    if y + (intervaly * 2) < ysize:
        numberofrows = intervaly
    else:
        numberofrows = ysize - y

    for x in xrange(0, xsize, intervalx):
        if x + (intervalx * 2) < xsize:
            numberofcolumns = intervalx

        else:
            numberofcolumns = xsize - x
        l = [x,y,numberofcolumns, numberofrows]
        d[key].append(l)
        key += 1
return d

Я понимаю, что xrange не идеален для порта на 3.

6
задан Jzl5325 18 July 2012 в 20:38
поделиться