Python NumPy numpy.sort() 函式

Minahil Noor 2023年1月30日 2020年11月7日
  1. numpy.sort() 語法
  2. 示例程式碼:numpy.sort()
  3. 示例程式碼:numpy.sort() 對一個多維陣列進行排序
  4. 示例程式碼: numpy.sort() 沿著指定的軸對多維陣列排序
  5. 示例程式碼:numpy.sort() 對不同型別的陣列進行排序
Python NumPy numpy.sort() 函式

Python NumPy numpy.sort() 函式對任意資料型別的 N 維陣列進行排序。預設情況下,該函式以升序對陣列進行排序。

numpy.sort() 語法

numpy.sort(a,
           axis= -1,
           kind= None,
           order= None) 

引數

a 它是一個類似陣列的結構。它是要排序的輸入陣列。
axis 它是一個整數。它代表函式對陣列進行排序的軸。它的預設值是-1,意味著函式將沿著最後一個軸,即升序對陣列進行排序。如果是 None,函式將在排序前把多維的陣列轉換為一維。如果是 0,函式將沿著第一個軸,即降序對陣列進行排序。
kind 它是一個字串。它代表排序演算法的名稱。這個函式接受的排序演算法名稱是 quicksortmergesortheapsortstable。要閱讀更多關於這些排序演算法的時間複雜性,請點選這裡
order 它是一個字串或一個字串列表。當定義了陣列的欄位時,這個引數用來指定要先比較的欄位。

返回值

它返回一個與輸入的陣列型別和形狀相同的排序陣列。

示例程式碼:numpy.sort()

引數 a 是必須的。如果我們在一維的陣列上執行這個函式,它將產生以下輸出。

import numpy as np 
   
a = np.array([89, 34, 56, 87, 90, 23, 45, 12, 65, 78, 9, 34, 12, 11, 2, 65, 78, 82, 28, 78]) 

sorted_array = np.sort(a) 
print('The sorted array is:')
print(sorted_array) 

輸出:

The sorted array is:
[2 9 11 12 12 23 28 34 34 45 56 65 65 78 78 78 82 87 89 90]

它返回了一個按升序排序的陣列。

示例程式碼:numpy.sort() 對一個多維陣列進行排序

現在我們將傳遞一個多維的陣列。

import numpy as np 
   
a = np.array([[11, 12, 5], [15, 6,10], [10, 8, 12], [12,15,8], [34, 78, 90]]) 

sorted_array = np.sort(a) 
print('The sorted array is:')
print(sorted_array) 

輸出:

The sorted array is:
[[ 5 11 12]
 [ 6 10 15]
 [ 8 10 12]
 [ 8 12 15]
 [34 78 90]]

函式對陣列進行了升序排序,即沿最後一個軸排序,因為 axis 的預設值為 -1。

示例程式碼: numpy.sort() 沿著指定的軸對多維陣列排序

我們將 axis 引數的值設定為 None

import numpy as np 
   
a = np.array([[11, 12, 5], [15, 6,10], [10, 8, 12], [12,15,8], [34, 78, 90]]) 

sorted_array = np.sort(a, axis= None) 
print('The sorted array is:')
print(sorted_array) 

輸出:

The sorted array is:
[5 6 8 8 10 10 11 12 12 12 15 15 34 78 90]

請注意,函式首先將陣列轉換為一維陣列,然後對其進行排序。

現在,我們將沿著第一個軸對陣列進行排序。

import numpy as np 
   
a = np.array([[11, 12, 5], [15, 6,10], [10, 8, 12], [12,15,8]]) 

sorted_array = np.sort(a, axis= 0) 
print('The sorted array is:')
print(sorted_array) 

輸出:

The sorted array is:
[[10  6  5]
 [11  8  8]
 [12 12 10]
 [15 15 12]]

函式沿第一軸對陣列進行了排序,即降序排序。

示例程式碼:numpy.sort() 對不同型別的陣列進行排序

我們可以使用這個函式對不同資料型別的陣列進行排序,比如一個字串陣列、一個布林值陣列等。

import numpy as np 
   
a = np.array([['z', 'x'], ['b', 'a'], ['g', 'l'], ['k', 'd']]) 

sorted_array = np.sort(a) 
print('The sorted array is:')
print(sorted_array) 

輸出:

The sorted array is:
[['x' 'z']
 ['a' 'b']
 ['g' 'l']
 ['d' 'k']]

注意,它已經按照字母順序遞增的方式對陣列進行了排序。現在,我們將傳遞一個布林值陣列。

import numpy as np 
   
a = np.array([[True, False, True], [False, False, True], [False, True, True]]) 

sorted_array = np.sort(a) 
print('The sorted array is:')
print(sorted_array) 

輸出:

The sorted array is:
[[False  True  True]
 [False False  True]
 [False  True  True]]