2013-05-12 9 views
10

पाइथन में एक सूची पृष्ठभूमि से आ रहा है और सी ++/जावा जैसी प्रोग्रामिंग भाषाओं की ओर से एक का उपयोग a[i][j] दृष्टिकोण का उपयोग कर तत्वों को निकालने की धारणा के लिए किया जाता है । लेकिन NumPy में, आमतौर पर a[i,j] होता है। ये दोनों एक ही परिणाम वापस कर देंगे।बेवकूफ: एक [i] [जे] और एक [i, j]

दोनों के बीच मौलिक अंतर क्या है और जिसे प्राथमिकता दी जानी चाहिए?

उत्तर

11

मुख्य अंतर यह है कि a[i][j] पहले a[i] पर एक दृश्य बनाता है और फिर उस दृश्य में अनुक्रमणित करता है। दूसरी ओर, सीधे a में a[i,j] अनुक्रमित, यह तेजी से बनाने: इस कारण से

In [9]: a = np.random.rand(1000,1000) 

In [10]: %timeit a[123][456] 
1000000 loops, best of 3: 586 ns per loop 

In [11]: %timeit a[123,456] 
1000000 loops, best of 3: 234 ns per loop 

, मैं उत्तरार्द्ध पसंद करेंगे।

संबंधित मुद्दे