Como uma varredura pode ser computada com eficiência (em Python), considerando um conjunto que consiste em bilhões de caixas delimitadoras (lidas sequencialmente em um arquivo) e considerando que os valores da varredura para cada célula devem fornecer o número de caixas delimitadoras sobrepostas?
Para uma varredura de 4000 * 4000
Eu cronometrei a criação de matriz numpy:
$ python -m timeit 'import numpy' 'a = numpy.zeros(shape=(4000,4000))'
10 loops, best of 3: 51.7 msec per loop
Criação de matriz python padrão:
$ python -m timeit 'a = 4000*[0]' 'for i in range(4000):' ' a[i]=4000*[0]'
10 loops, best of 3: 218 msec per loop
Tão entorpecido é mais rápido, mas ainda assim 50 mseg por loop, com um bilhão de iterações, gera um tempo de execução igual a cerca de um ano (0,05 ms * 1000000000/60/60/24/365 = 1,5 anos)
Portanto, não é uma opção para provar cada polígono. Qual é uma abordagem típica para esse problema?