バイナリ値配列の行を長い2進数であるかのように並べ替えるにはどうすればよいですか?

サージ

各行に512個の値を持つ約500000行の2Dnumpy配列があります。

[
  [1,0,1,...,0,0,1], # 512 1's or 0's
  [0,1,0,...,0,1,1],
  ...
  [0,0,1,...,1,0,1], # row number 500000
]

各行が512ビットの長整数であるかのように行を昇順で並べ替えるにはどうすればよいですか?

[
  [0,0,1,...,1,0,1],
  [0,1,0,...,0,1,1],
  [1,0,1,...,0,0,1],
  ...
]
ダニエルF

文字列に変換する代わりに、データのvoidビュー(ここでは@Jaimeから)を使用することもできますargsort

def sort_bin(b):
    b_view = np.ascontiguousarray(b).view(np.dtype((np.void, b.dtype.itemsize * b.shape[1])))
    return b[np.argsort(b_view.ravel())] #as per Divakar's suggestion

テスト

np.random.seed(0)

b = np.random.randint(0, 2, (10,5))
print(b)
print(sort_bin(b))

[[0 1 1 0 1]
 [1 1 1 1 1]
 [1 0 0 1 0]
 ..., 
 [1 0 1 1 0]
 [0 1 0 1 1]
 [1 1 1 0 1]]
[[0 0 0 0 1]
 [0 1 0 1 1]
 [0 1 1 0 0]
 ..., 
 [1 1 1 0 1]
 [1 1 1 1 0]
 [1 1 1 1 1]]

b_viewは単なるビューであるため、はるかに高速でメモリ消費量が少ないはずですb

t = np.random.randint(0,2,(2000,512))

%timeit sort_bin(t)
100 loops, best of 3: 3.09 ms per loop

%timeit np.array([[int(i) for i in r] for r in np.sort(np.apply_along_axis(lambda r: ''.join([str(c) for c in r]), 0, t))])
1 loop, best of 3: 3.29 s per loop

実際には約1000倍速い

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

値の出現回数で配列を並べ替えるにはどうすればよいですか?

分類Dev

この配列をこの値で並べ替えるにはどうすればよいですか?

分類Dev

この配列を年齢値で並べ替えるにはどうすればよいですか?

分類Dev

別の配列の並べ替え順序に基づいて複数の配列を並べ替えるにはどうすればよいですか?

分類Dev

子配列jsの合計で配列を並べ替えるにはどうすればよいですか?

分類Dev

30文字のバイナリ文字列を並べ替えて「不正な文字列」を省略するにはどうすればよいですか

分類Dev

配列を並べ替えるにはどうすればよいですか?

分類Dev

文字列の最初の文字で配列を並べ替えるにはどうすればよいですか?

分類Dev

orderByの使用:数値の配列を並べ替えて、文字列値を一番下に配置するにはどうすればよいですか?

分類Dev

平日の文字列の配列を並べ替えるにはどうすればよいですか?

分類Dev

構造体の配列をすばやく並べ替えるにはどうすればよいですか

分類Dev

C ++で特定の列の値で2D文字列配列を並べ替えるにはどうすればよいですか?

分類Dev

2つの「長い」値型をバイナリ形式(バイト配列)で比較するにはどうすればよいですか?

分類Dev

cで構造体の配列を並べ替えるにはどうすればよいですか

分類Dev

PHPの配列でデータを並べ替えるにはどうすればよいですか?

分類Dev

VB.netでJObjectの配列を並べ替えるにはどうすればよいですか

分類Dev

名前のjavascript.map配列をABCで並べ替えるにはどうすればよいですか?

分類Dev

EKEventの配列を日付で並べ替えるにはどうすればよいですか?

分類Dev

数値文字列のリストを並べ替えるにはどうすればよいですか?できればLINQを使用する

分類Dev

位置1で特定の値を取得するように配列を並べ替えるにはどうすればよいですか?

分類Dev

QTreeWidgetまたはQTableWidgetを複数の列で並べ替えるにはどうすればよいですか(これらの列を数値として並べ替えるにはどうすればよいですか)。

分類Dev

可能であれば、.mapメソッドを使用して配列内のアイテムを並べ替えるにはどうすればよいですか?

分類Dev

数値の配列を上から下に並べ替えるにはどうすればよいですか(逆/降順)?

分類Dev

最も効率的な実行時間で指定された値に等しい、並べ替えられた配列内の連続する要素の算術平均があるかどうかを確認するにはどうすればよいですか?

分類Dev

JSONで配列を並べ替えて、特定のインデックスの値を取得するにはどうすればよいですか?

分類Dev

コレクション内の配列を並べ替えるにはどうすればよいですか?

分類Dev

クラスの配列を並べ替えるにはどうすればよいですか?

分類Dev

PrimeFacesで動的列の並べ替えをリセットするにはどうすればよいですか?

分類Dev

Linq C#で可変数の列を並べ替えるにはどうすればよいですか?

Related 関連記事

  1. 1

    値の出現回数で配列を並べ替えるにはどうすればよいですか?

  2. 2

    この配列をこの値で並べ替えるにはどうすればよいですか?

  3. 3

    この配列を年齢値で並べ替えるにはどうすればよいですか?

  4. 4

    別の配列の並べ替え順序に基づいて複数の配列を並べ替えるにはどうすればよいですか?

  5. 5

    子配列jsの合計で配列を並べ替えるにはどうすればよいですか?

  6. 6

    30文字のバイナリ文字列を並べ替えて「不正な文字列」を省略するにはどうすればよいですか

  7. 7

    配列を並べ替えるにはどうすればよいですか?

  8. 8

    文字列の最初の文字で配列を並べ替えるにはどうすればよいですか?

  9. 9

    orderByの使用:数値の配列を並べ替えて、文字列値を一番下に配置するにはどうすればよいですか?

  10. 10

    平日の文字列の配列を並べ替えるにはどうすればよいですか?

  11. 11

    構造体の配列をすばやく並べ替えるにはどうすればよいですか

  12. 12

    C ++で特定の列の値で2D文字列配列を並べ替えるにはどうすればよいですか?

  13. 13

    2つの「長い」値型をバイナリ形式(バイト配列)で比較するにはどうすればよいですか?

  14. 14

    cで構造体の配列を並べ替えるにはどうすればよいですか

  15. 15

    PHPの配列でデータを並べ替えるにはどうすればよいですか?

  16. 16

    VB.netでJObjectの配列を並べ替えるにはどうすればよいですか

  17. 17

    名前のjavascript.map配列をABCで並べ替えるにはどうすればよいですか?

  18. 18

    EKEventの配列を日付で並べ替えるにはどうすればよいですか?

  19. 19

    数値文字列のリストを並べ替えるにはどうすればよいですか?できればLINQを使用する

  20. 20

    位置1で特定の値を取得するように配列を並べ替えるにはどうすればよいですか?

  21. 21

    QTreeWidgetまたはQTableWidgetを複数の列で並べ替えるにはどうすればよいですか(これらの列を数値として並べ替えるにはどうすればよいですか)。

  22. 22

    可能であれば、.mapメソッドを使用して配列内のアイテムを並べ替えるにはどうすればよいですか?

  23. 23

    数値の配列を上から下に並べ替えるにはどうすればよいですか(逆/降順)?

  24. 24

    最も効率的な実行時間で指定された値に等しい、並べ替えられた配列内の連続する要素の算術平均があるかどうかを確認するにはどうすればよいですか?

  25. 25

    JSONで配列を並べ替えて、特定のインデックスの値を取得するにはどうすればよいですか?

  26. 26

    コレクション内の配列を並べ替えるにはどうすればよいですか?

  27. 27

    クラスの配列を並べ替えるにはどうすればよいですか?

  28. 28

    PrimeFacesで動的列の並べ替えをリセットするにはどうすればよいですか?

  29. 29

    Linq C#で可変数の列を並べ替えるにはどうすればよいですか?

ホットタグ

アーカイブ