2D
NumPy
行列の行を異なる列条件 (例: 列 2 の値でグループ化) でグループ化し、それらの各グループで実行f1()
する効率的な (時間と簡単な) 方法は何でしょうf2()
か?
ありがとう
コンパクトな解決策は、numpy_indexed (免責事項: 私はその作成者です) を使用することです。これは、このタイプの問題に対して完全にベクトル化された解決策を実装します。
それを使用する最も簡単な方法は次のとおりです。
import numpy_indexed as npi
npi.group_by(arr[:, col1]).mean(arr)
しかし、これも機能します:
# run function f1 on each group, formed by keys which are the rows of arr[:, [col1, col2]
npi.group_by(arr[:, [col1, col2]], arr, f1)