2
私は次の形式の2次元配列を持っています:np.zeros((m,n))
。 私の目的は、最初の2列を見て、最初の列の要素が最も発生している(最初の列のモード)ので、2番目の列同じです。配列内の条件付き出現回数をカウントする
5×3例:
[[1 2 x], [1 2 y], [1 3 z], [5 3 w], [5 6 v], [9 2 x], [9 2 y],]
所望の出力の発生回数、すなわち:それはカウンタ機能である方法でそう
[1]: 2
[5]: 2
[9]: 1
が、二番目の配列(列2)を条件。
私は比較的新しいPythonですが、これを直接的かつ多少効率的に実行できる機能はありますか?私は非常に大きな行列でそれを実行する必要がありますが、そのような関数を見つけることができませんでした。
は、だから、最初の2つの列で検索し、それらだけをカウントしますそれらが一意ならば。私の頭の上から外してください:最初の列で配列を並べ替えてから、1番目と2番目の項目が前の項目と同じかどうかを調べることができます。見つけた数 –
問題は、最初の列をソートし、最初の列の同じ値に対応する2番目の列のセグメントをソートし、最後に2番目の列に繰り返しループする必要があることです。 –
はい、間違いです。最初の2つの列を1つの列で並べ替えることができると思います。あなたは '[1 2 x]'を '12'として扱わなければならないので、 '[1 0 z]'の後に来るようになります。その後、あなたは数えます。 –