Select Rows from Numpy Rec Array
I have a Numpy rec array from which I would like to do some quick queries similar to SQL: SELECT * where array['phase'] == "P"
. I would like to get a Record Array as output with each row corresponding to a row from the original array that met the query criteria. Any ideas? I am pretty sure I have done this before, but just cannot remember the function.
Thanks
rec.array([ (5295499, 2.8123965, 127.20443, 0.0, 1237680436.06, 908, -19.942589, 134.33951, 0.3888, 'P', 0.19513991),
(5295499, 2.8123965, 127.20443, 0.0, 1237680436.06, 1387, -18.102, 125.639, 0.11, 'P', 1.2515257),
(5447254, 39.025873, 143.31065, 0.0, 1245455521.85, 1512, 33.121667, 130.87833, 0.573, 'LR', 45.099504)],
dtype=[('eventid', '<i4'), ('eventlat', '<f8'), ('ev开发者_运维知识库entlon', '<f8'), ('eventdepth', '<f8'), ('eventtime', '<f8'), ('stationid', '<i4'), ('stationlat', '<f8'), ('stationlon', '<f8'), ('stationelv', '<f8'), ('phase', '|S7'), ('timeresidual', '<f8')])
Try:
array[array['phase']=='P']
array['phase']=='P'
returns a boolean numpy array. When idx
is a boolean array, array[idx]
returns an array composed of those rows where idx
is True
.
Try this code:
array[array.phase=='P']
精彩评论