On Tue, Dec 14, 2010 at 12:20, Mark Janikas <mjani...@esri.com> wrote: > Hello All, > > I was wondering what the best way to trim an array based on some values I do > not want…. I could use NUM.where or NUM.take… but let me give you an > example: > > import numpy as NUM > > n = 100 (Length of my dataset) > data = NUM.empty((n,), float) > badRecords = [] > for ind, record in enumerate(records): > if record == someValueIDOntWant: > badRecords.append(ind) > else: > data[ind] = record > > Now, I want to “trim” my array using badRecords. I guess I want to avoid > copying. Any thoughts on the best way to do it? I do not want to use lists > and then subsequently array the result as it is nice to pre-allocate the > space.
Don't fear the copy. Use boolean indexing. http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#boolean -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion