Как мне сделать поиск / замену массива на numpy? - PullRequest
5 голосов
/ 19 ноября 2011

У меня есть двумерный массив, A, содержащий индекс в другой массив, B. Какой хороший способ получить C из A и B, используя numpy?

A = array([[1, 1, 0, 2],
           [1, 0, 0, 2],
           [1, 1, 0, 2]])

B = array([0, 5, 3])

C = array([[5, 5, 0, 3],
           [5, 0, 0, 3],
           [5, 5, 0, 3]])

Ответы [ 2 ]

9 голосов
/ 19 ноября 2011

Как насчет этого C = B[A].В этом вся прелесть numpy:

In [1]: import numpy as np
In [2]: A = np.array([[1, 1, 0, 2],
   ...:            [1, 0, 0, 2],
   ...:            [1, 1, 0, 2]])

In [3]: B = np.array([0, 5, 3])

In [4]: B[A]
Out[4]: 
array([[5, 5, 0, 3],
       [5, 0, 0, 3],
       [5, 5, 0, 3]])
0 голосов
/ 19 ноября 2011
x,y = a.shape

for i in range(x):
  for j in range(y)
    c[i][j] = b[a[i][j]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...