C'è un modo per ottenere gli indici di più elementi in una matrice NumPy in una volta?Ottenere gli indici di più elementi in una matrice NumPy allo stesso tempo
E.g.
import numpy as np
a = np.array([1, 2, 4])
b = np.array([1, 2, 3, 10, 4])
vorrei trovare l'indice di ogni elemento di a
in b
, vale a dire: [0,1,4]
.
trovo la soluzione che sto usando un po 'prolisso:
import numpy as np
a = np.array([1, 2, 4])
b = np.array([1, 2, 3, 10, 4])
c = np.zeros_like(a)
for i, aa in np.ndenumerate(a):
c[i] = np.where(b==aa)[0]
print('c: {0}'.format(c))
uscita:
c: [0 1 4]
np.where (np.in1d (b, a)) restituisce (matrice ([0, 1, 4], dtype = int64),). Basato sull'ultimo esempio su http://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html. –