2つのnumpy.ndarrayのマッチング,インデックス操作

find indeces of grouped-item matches between two arrays – StackOverflow

欲しい形にしてマッチング(==),後はインデクサーを用意するだけ.

import numpy as np


a = np.array([5,8,3,4,2,5,7,8,1,9,1,3,4,7])
b = np.array ([3,4,7,8,1,3])
#[2,3,6,7,10,11], Target indices

a_ind = np.arange(a.size)
r_a = a.reshape(-1, 2)
r_b = b.reshape(-1, 2)


ind = np.all(r_a == r_b[0], axis=1)
for x in r_b[1:]:
    ind += np.all(r_a == x, axis=1)
r_a[ind]

array([[3, 4],
[7, 8],
[1, 3]])

これのインデックスは,

a_ind.reshape(-1, 2)[ind].ravel()

array([ 2, 3, 6, 7, 10, 11])

広告
カテゴリー: 未分類 パーマリンク

2つのnumpy.ndarrayのマッチング,インデックス操作 への3件のフィードバック

  1. ピンバック: 2つのnumpy.ndarrayのマッチング | 粉末@それは風のように (日記)

  2. ピンバック: numpy.ndarrayのパターンマッチング(要素のサーチ) | 粉末@それは風のように (日記)

  3. ピンバック: シーケンシャル・パターン・マイニング」 | 粉末@それは風のように (日記)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中