@steve का जवाब वास्तव में इसे करने का सबसे सुरुचिपूर्ण तरीका है।
"सही" तरीके के लिए numpy.ndarray.sort का ऑर्डर कीवर्ड तर्क देखें
हालाँकि, आपको अपने सरणी को फ़ील्ड (एक संरचित सरणी) के साथ एक सरणी के रूप में देखना होगा।
"सही" तरीका काफी बदसूरत है यदि आपने शुरू में फ़ील्ड के साथ अपनी सरणी को परिभाषित नहीं किया ...
एक त्वरित उदाहरण के रूप में, इसे क्रमबद्ध करने और प्रतिलिपि वापस करने के लिए:
In [1]: import numpy as np
In [2]: a = np.array([[1,2,3],[4,5,6],[0,0,1]])
In [3]: np.sort(a.view('i8,i8,i8'), order=['f1'], axis=0).view(np.int)
Out[3]:
array([[0, 0, 1],
[1, 2, 3],
[4, 5, 6]])
इसे क्रमबद्ध करने के लिए:
In [6]: a.view('i8,i8,i8').sort(order=['f1'], axis=0) #<-- returns None
In [7]: a
Out[7]:
array([[0, 0, 1],
[1, 2, 3],
[4, 5, 6]])
@ स्टीव वास्तव में इसे करने का सबसे सुंदर तरीका है, जहाँ तक मुझे पता है ...
इस पद्धति का एकमात्र लाभ यह है कि "ऑर्डर" तर्क खोज द्वारा ऑर्डर करने के लिए फ़ील्ड की एक सूची है। उदाहरण के लिए, आप दूसरे कॉलम, फिर तीसरे कॉलम, फिर ऑर्डर = ['f1', 'f2', 'f0'] की आपूर्ति करके पहला कॉलम सॉर्ट कर सकते हैं।
np.sort(a, axis=0)
दिए गए मैट्रिक्स के लिए एक संतोषजनक समाधान होगा। मैंने एक बेहतर उदाहरण के साथ एक संपादन का सुझाव दिया था, लेकिन खारिज कर दिया गया था, हालांकि वास्तव में प्रश्न बहुत अधिक स्पष्ट होगा। उदाहरणa = numpy.array([[1, 2, 3], [6, 5, 2], [3, 1, 1]])
वांछित आउटपुट के साथ कुछ होना चाहिएarray([[3, 1, 1], [1, 2, 3], [6, 5, 2]])