2011-09-06 15 views
9

से पंक्तियों का चयन करें मेरे पास एक नम्पी रिक एरे है जिसमें से मैं SQL: SELECT * where array['phase'] == "P" के समान कुछ त्वरित प्रश्न करना चाहता हूं। मैं क्वेरी मानदंडों को पूरा करने वाले मूल सरणी से पंक्ति के अनुरूप प्रत्येक पंक्ति के साथ आउटपुट के रूप में एक रिकॉर्ड ऐरे प्राप्त करना चाहता हूं। कोई विचार? मुझे पूरा यकीन है कि मैंने पहले यह किया है, लेकिन बस समारोह को याद नहीं कर सकता।Numpy Rec Array

धन्यवाद

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'), ('eventlon', '<f8'), ('eventdepth', '<f8'), ('eventtime', '<f8'), ('stationid', '<i4'), ('stationlat', '<f8'), ('stationlon', '<f8'), ('stationelv', '<f8'), ('phase', '|S7'), ('timeresidual', '<f8')]) 

उत्तर

7

प्रयास करें:

array[array['phase']=='P'] 

array['phase']=='P' रिटर्न एक बूलियन numpy सरणी। जब idx एक बूलियन सरणी है, array[idx] उन पंक्तियों से बना एक सरणी देता है जहां idxTrue है।

+1

यह प्रतिभा है! लेकिन बस अन्य पीपीएल के लिए स्पष्टीकरण के लिए: array यहां numpy.array का संदर्भ नहीं देता है, यह आपके रिकॉर्ड सरणी के नाम को संदर्भित करता है। उदाहरण के लिए, यदि मेरे पास डेटा नामक एक पुनरावृत्ति थी, तो मैं करना चाहता हूं: डेटा [डेटा ['चरण'] == 'पी']] – Rishi

0

इस कोड का प्रयास करें:

array[array.phase=='P']