非単調配列での効率的なNumpy検索

profj

と同様のことを実行しようとしていますsearchsortedが、配列が完全に単調ではない場合です。スカラーcと1D配列があるとすると、のようなすべての要素xのインデックスを見つけたいと思います重要なのは、完全に単調はないということです。ix[i] < c <= x[i + 1]x

次のコードは機能しますが、これがこれを行うための最も効率的な方法であるかどうか、またはより簡単な方法があるかどうかを知りたいだけです。

x = np.array([1,2,3,1,2,3,1,2,3])
c = 2.5
t = c > x[:-1]
u = c <= x[1:]
v = t*u
i = v.nonzero()[0]

または1行のコードで:

i = ( (c > x[:-1]) * (c <= x[1:] ).nonzero()[0]

これは、これらのインデックスを回復するための最も効率的な方法ですか?

2つの追加の質問。

  1. c1D配列で、xが2D配列で、のc「行」xと同じ数の要素がありc、の対応する「行」のの各要素に対してこの検索を実行する場合に、これを拡張する簡単な方法はありxますか?

  2. 私の最終的な目標は、3次元のケースでこれを行うことです。つまりcn要素含む1Dベクトルであるとします。さて、聞かせてx寸法の3次元配列、ことjによるnによりますkの各「部分行列」に対して上記の#1を実行する方法はありxますか?基本的に、上記の#1を実行しjます。

例えば:

x1 = np.array([1,2,3,1,2,3],[1,2,3,1,2,3],[1,2,3,1,2,3])
x2 = x1 + 1
x = np.array([x1,x2])
c = np.array([1.5,2.5,3.5])

上記の#1で、cとx1を比較すると、次のようになります。 [[0,4],[1,5],[]]

cとx2を比較すると、次のようになります。 [[],[0,4],[1,5]]

最後に、#2の下で、私は取得したいと思います:

[[[0,4],[1,5],[]],
 [[],[0,4],[1,5]]]
Divakar

一度比較してブールマスクを取得し、それを否定で再利用して他の比較配列を取得し、スライスを使用することもできます-

m = c > x
i = np.flatnonzero( m[:-1] & ~m[1:] )

我々はそれを拡張することができるxように2Dcのように1Dループを有する場合、そのようにように、ベクトル化方法でマスクの生成に事前計算することによって、それに最小の計算を行います-

m = c[:,None] > x
m2 = m[:,:-1] & ~m[:,1:]
i = [np.flatnonzero( mi ) for mi in m2]

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Cでの効率的な配列検索

分類Dev

配列リストの最も効率的で迅速な検索

分類Dev

複数の配列で単一のアイテムを検索するより効率的な方法は?

分類Dev

numpy配列での効率的な行操作

分類Dev

より効率的な配列検索

分類Dev

JavaScriptで配列のマップを検索する最も効率的な方法

分類Dev

特定の条件を持つnumpy配列の行を効率的に検索する

分類Dev

別の文字列で文字列の配列を検索する最も効率的な方法

分類Dev

SQLでの部分文字列の効率的な検索[Python / SQLite]

分類Dev

DynamoDBでの効率的な部分文字列検索

分類Dev

この配列をnumpyで構築する効率的な方法は?

分類Dev

numpyでの効率的な配列作成

分類Dev

バッシュ。最速かつ効率的な配列検索

分類Dev

VBA配列変数で効率的に検索/ vlookupする方法

分類Dev

部分文字列を含むNumPy配列内のすべての位置を検索します(最も効率的ですか?)

分類Dev

調整リスト、配列を分割し、cでこの配列内の単語を検索します

分類Dev

別の配列内の配列内のオブジェクトを検索するための最良/最も効率的な方法は何ですか?

分類Dev

Pythonでの効率的な配列操作

分類Dev

バイナリ検索の実装が非常に非効率的なのはなぜですか?

分類Dev

numpy配列の任意の列間の(メモリ)効率的な操作

分類Dev

多次元配列での簡単な検索

分類Dev

複数のセルにわたる数値の2D配列の最も効率的な検索

分類Dev

2次元のnumpy配列でネイバーを取得する効率的な方法

分類Dev

オブジェクト値の配列を検索する最も効率的な方法

分類Dev

Cythonは、Numpy配列をフラットであるかのように反復するための合理的に簡単で効率的な方法を提供しますか?

分類Dev

laravelで6000k +レコードDBから単一のレコードを検索する効率的な方法

分類Dev

ListViewUWPでの検索の効率的な実装

分類Dev

Pythonループなしでnumpy配列を単調にする

分類Dev

Rの2つの列で2つの文字列を検索するための効率的なバージョン

Related 関連記事

  1. 1

    Cでの効率的な配列検索

  2. 2

    配列リストの最も効率的で迅速な検索

  3. 3

    複数の配列で単一のアイテムを検索するより効率的な方法は?

  4. 4

    numpy配列での効率的な行操作

  5. 5

    より効率的な配列検索

  6. 6

    JavaScriptで配列のマップを検索する最も効率的な方法

  7. 7

    特定の条件を持つnumpy配列の行を効率的に検索する

  8. 8

    別の文字列で文字列の配列を検索する最も効率的な方法

  9. 9

    SQLでの部分文字列の効率的な検索[Python / SQLite]

  10. 10

    DynamoDBでの効率的な部分文字列検索

  11. 11

    この配列をnumpyで構築する効率的な方法は?

  12. 12

    numpyでの効率的な配列作成

  13. 13

    バッシュ。最速かつ効率的な配列検索

  14. 14

    VBA配列変数で効率的に検索/ vlookupする方法

  15. 15

    部分文字列を含むNumPy配列内のすべての位置を検索します(最も効率的ですか?)

  16. 16

    調整リスト、配列を分割し、cでこの配列内の単語を検索します

  17. 17

    別の配列内の配列内のオブジェクトを検索するための最良/最も効率的な方法は何ですか?

  18. 18

    Pythonでの効率的な配列操作

  19. 19

    バイナリ検索の実装が非常に非効率的なのはなぜですか?

  20. 20

    numpy配列の任意の列間の(メモリ)効率的な操作

  21. 21

    多次元配列での簡単な検索

  22. 22

    複数のセルにわたる数値の2D配列の最も効率的な検索

  23. 23

    2次元のnumpy配列でネイバーを取得する効率的な方法

  24. 24

    オブジェクト値の配列を検索する最も効率的な方法

  25. 25

    Cythonは、Numpy配列をフラットであるかのように反復するための合理的に簡単で効率的な方法を提供しますか?

  26. 26

    laravelで6000k +レコードDBから単一のレコードを検索する効率的な方法

  27. 27

    ListViewUWPでの検索の効率的な実装

  28. 28

    Pythonループなしでnumpy配列を単調にする

  29. 29

    Rの2つの列で2つの文字列を検索するための効率的なバージョン

ホットタグ

アーカイブ