面白いパズルがあります。数の多い2D配列があり、各行が測定イベントに対応し、各列が異なる測定変数に対応しているとします。この配列の1つの追加列は、測定が行われた日付を指定します。行はタイムスタンプに従ってソートされます。毎日いくつかの(または多くの)測定があります。目標は、新しい日に対応する行を識別し、その日の後続の行からそれぞれの値を減算することです。
私はこの問題に、何日にもわたってループするループでアプローチし、適切な行を選択するブールベクトルを作成してから、最初に選択した行を減算します。このアプローチは機能しますが、エレガントではないと感じます。これを行うためのより良い方法はありますか?
ほんの小さな例です。以下の線は、最初の列が日で、残りの2つが測定値である行列を定義します。
before = array([[ 1, 1, 2],
[ 1, 3, 4],
[ 1, 5, 6],
[ 2, 7, 8],
[ 3, 9, 10],
[ 3, 11, 12],
[ 3, 13, 14]])
プロセスの最後に、次の配列が表示されることを期待しています。
array([[1, 0, 0],
[1, 2, 2],
[1, 4, 4],
[2, 0, 0],
[3, 0, 0],
[3, 2, 2],
[3, 4, 4]])
PSこの投稿のより良い、より有益なタイトルを見つけるのを手伝ってください。アイデアが足りない