I think that would lose information as to which value in B was at each position. I think you want:
On Sat, Nov 24, 2012 at 5:23 PM, Daπid <davidmen...@gmail.com> wrote: > A pure Python approach could be: > > for i, x in enumerate(a): > for j, y in enumerate(x): > if y in b: > idx.append((i,j)) > > Of course, it is slow if the arrays are large, but it is very > readable, and probably very fast if cythonised. > > > David. > > On Sat, Nov 24, 2012 at 10:19 PM, David Warde-Farley > <d.warde.far...@gmail.com> wrote: > > M = A[..., np.newaxis] == B > > > > will give you a 40x60x20 boolean 3d-array where M[..., i] gives you a > > boolean mask for all the occurrences of B[i] in A. > > > > If you wanted all the (i, j) pairs for each value in B, you could do > > something like > > > > import numpy as np > > from itertools import izip, groupby > > from operator import itemgetter > > > > id1, id2, id3 = np.where(A[..., np.newaxis] == B) > > order = np.argsort(id3) > > triples_iter = izip(id3[order], id1[order], id2[order]) > > grouped = groupby(triples_iter, itemgetter(0)) > > d = dict((b_value, [idx[1:] for idx in indices]) for b_value, indices in > > grouped) > > > > Then d[value] is a list of all the (i, j) pairs where A[i, j] == value, > and > > the keys of d are every value in B. > > > > > > > > On Sat, Nov 24, 2012 at 3:36 PM, Siegfried Gonzi < > sgo...@staffmail.ed.ac.uk> > > wrote: > >> > >> Hi all > >> > >> This must have been answered in the past but my google search > capabilities > >> are not the best. > >> > >> Given an array A say of dimension 40x60 and given another array/vector B > >> of dimension 20 (the values in B occur only once). > >> > >> What I would like to do is the following which of course does not work > (by > >> the way doesn't work in IDL either): > >> > >> indx=where(A == B) > >> > >> I understand A and B are both of different dimensions. So my question: > >> what would the fastest or proper way to accomplish this (I found a > solution > >> but think is rather awkward and not very scipy/numpy-tonic tough). > >> > >> Thanks > >> -- > >> The University of Edinburgh is a charitable body, registered in > >> Scotland, with registration number SC005336. > >> > >> _______________________________________________ > >> NumPy-Discussion mailing list > >> NumPy-Discussion@scipy.org > >> http://mail.scipy.org/mailman/listinfo/numpy-discussion > > > > > > > > _______________________________________________ > > NumPy-Discussion mailing list > > NumPy-Discussion@scipy.org > > http://mail.scipy.org/mailman/listinfo/numpy-discussion > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion