討論如何在Python的NumPy陣列中應用排序函式?


NumPy指的是“數值” “Python”。它是一個包含多維陣列物件和多種有助於處理陣列的方法的庫。NumPy可以用來對陣列執行各種各樣的操作。它與SciPy、Matplotlib等包結合使用。NumPy+Matplotlib可以理解為MatLab的替代品。它是一個開源包,這意味著任何人都可以使用它。

NumPy包中最重要的物件是n維陣列,稱為“ndarray”。它定義了相同型別專案的集合。可以使用索引(基於0的索引)訪問ndarray中的這些值。ndarray中的每個專案在記憶體空間中佔用相同大小的塊。可以使用“dtype”函式找到ndarray中每個元素的型別。

可以使用陣列切片提取ndarray中的專案。它表示為陣列標量型別的物件。NumPy中存在各種排序函式。它們可以在不同的方法中實現,並且這些函式中的每一個都基於它們的執行速度、最壞情況下的效能、所需的記憶體等等而有所不同。

NumPy中的“sort”函式返回作為輸入傳遞給它的陣列的已排序副本。

numpy.sort(arr, axis, kind, order)

這裡,“arr”是要排序的陣列。“axis”指的是要沿其排序陣列的軸。“kind”指的是排序型別,預設值為快速排序。如果陣列包含任何其他欄位,“order”指的是需要排序的這些欄位。

以下是將sort()應用於NumPy陣列的示例:

示例

 線上演示

import numpy as np
my_arr = np.array([[3,56],[19,100]])
print("Original array is :")
print(my_arr)
print("The sort() function called")
print(np.sort(my_arr))
print("Sorting array along axis 0")
print(np.sort(my_arr, axis = 0))
dt = np.dtype([('Name', 'S6'),('Age', int)])
my_arr = np.array([("Will",20),("Jack",19),("Bob", 23)], dtype = dt)
print("Original array is :")
print(my_arr)
print("Array sorted by name ")
print(np.sort(my_arr, order = 'Name'))

輸出

Original array is :
[[ 3 56]
[ 19 100]]
The sort() function called
[[ 3 56]
[ 19 100]]
Sorting array along axis 0
[[ 3 56]
[ 19 100]]
Original array is :
[(b'Will', 20) (b'Jack', 19) (b'Bob', 23)]
Array sorted by name
[(b'Bob', 23) (b'Jack', 19) (b'Will', 20)]

解釋

  • 將所需的庫匯入環境中。
  • 建立ndarray,並使用“sort”函式對其進行排序。
  • 顯示輸出。
  • 再次,它沿軸0排序,並在控制檯上顯示輸出。
  • 建立另一個包含姓名和年齡的陣列,並沿軸0對其進行排序。
  • 在控制檯上顯示輸出。

更新於:2020年12月10日

486 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.