質問: 以下のnumpy配列を並び替えしたいのですが、上手く行きません。 知恵をお貸しください。 宜しくお願いします。 ### 発生している問題・エラーメッセージ ``` エラーメッセージ ``` ### 該当のソースコード import numpy as np np.array =([[7,2],[10,1],[3,1],[2,1],[4,1],[8,1]]) 最初の配列です。 ### 試したこと 普通のソートで出来そうなメソッドを探しましたが、見つかりませんでした。 やりたいことは先ず先頭の要素でソートして、 np.array =([[2,1],[3,1],[4,1],[7,2],[8,1],[10,1]]) を得る その後[xx,0]を指定場所にインサートし、最終的に np.array =([[0,0],[1,0],[2,1],[3,1],[4,1],[5,0],[6,0],[7,2],[8,1],[9,0],[10,1]]) としたいです。 [0,0]は0番地、[1,0]は1番地、[5,0]は5番地、[6,0]は6番地、[9,0]は9番地にインサートし、最終的に11個の配列にします。 ※ 先頭の要素がインデックスを兼ねており、np.arrayは固定値ではありません。 ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報
回答: 辞書にしてから処理すれば良いと考えました。 もちろん他にも方法はあるのでしょうね。 ``` >>> a array([[ 7, 2], [10, 1], [ 3, 1], [ 2, 1], [ 4, 1], [ 8, 1]]) >>> d = {} >>> for idx, val in a: ... d[idx] = val ... >>> d {2: 1, 3: 1, 4: 1, 7: 2, 8: 1, 10: 1} b = [] for i in range(11): ... if i not in d: ... b.append([i, 0]) ... else: ... b.append([i, d[i]]) >>> np.array(b) array([[ 0, 0], [ 1, 0], [ 2, 1], [ 3, 1], [ 4, 1], [ 5, 0], [ 6, 0], [ 7, 2], [ 8, 1], [ 9, 0], [10, 1]]) ```