私のプログラムは、array.fromfile() を使用してバイナリ ファイルから 420 万個の符号なし整数を配列 (パルス) に読み込みます。次に、これらの整数を繰り返し処理し、剰余演算に基づいて適切なリスト位置 (ゾーン) に追加します。現在、以下のループには約 2 秒かかりますが、もっと速くできることを願っています。私は何時間もかけてさまざまな numpy アプローチを試しましたが、そのうちのいくつかは遅くなりました。さまざまな機能をクロックしましたが、これが間違いなくボトルネックです。何か案は?
for idx,val in enumerate(pulses):
if (idx + 1)%nZones == 0 and idx != 0:
zones[zone].append(val)
zone = 0
else:
zones[zone].append(val)
zone += 1
例: 200 のゾーンがあり、パルス 1 がゾーン 1 に移動し、パルス 2 がゾーン 2 に移動し、200 番目のパルスに到達するまでパルス 201 がゾーン 1 に移動します。