查詢 NumPy 陣列中最小的 k 個值
查詢 NumPy 陣列中最小的 k 個值
安裝和語法
Pip,Python 的軟體包安裝程式,通常用於安裝NumPy。
pip install numpy
可以使用以下函式來識別具有最小值的k個 NumPy 陣列元素 -
np.sort(array)[:k]
這在按升序排序後返回排序陣列的前 k 個專案。陣列可以使用下面顯示的替代語法進行排序,這將檢索最後 k 個條目並按降序對陣列進行排序 -
np.sort(array)[::-1][:k]
演算法
查詢 NumPy 陣列中最小的 k 個值的演算法相對簡單 -
按升序對陣列進行排序
返回排序陣列的前 k 個元素
要發現最大的 k 個值,您也可以按降序對陣列進行排序並檢索最後 k 個條目。
示例
import numpy as np array = np.array([3, 7, 1, 4, 2, 8, 5, 9, 6]) k = 3 result = np.sort(array)[:k] print(result)
輸出
[1 2 3]
我們希望從數字陣列中識別三個最低的值。使用np.sort()方法按升序對陣列進行排序,然後使用[:k]擷取前三個條目。
示例
import numpy as np array = np.array([3.2, 7.8, 1.5, 4.6, 2.9, 8.1, 5.4, 9.3, 6.7]) k = 4 result = np.sort(array)[::-1][:k] print(result)
輸出
[9.3 8.1 7.8 6.7]
我們正在尋找浮點數字陣列中的四個最大值。在使用np.sort()方法使用[::-1]按降序對陣列進行排序後,我們使用[:k]切片前四個條目。
示例
import numpy as np array = np.array([[1, 2], [3, 4]]) k = 2 result = np.sort(array.flatten())[:k] print(result)
輸出
[1 2]
flatten()函式用於將二維陣列轉換為一維陣列,然後使用np.sort()和切片在陣列中找到兩個最低的值。
示例
import numpy as np
# Generate a random 2-dimensional array of size 5x5
array = np.random.randint(0, 10, size=(5, 5)).astype(float) # convert to float
# Print the original array
print("Original array:")
print(array)
# Flatten the array to make it 1-dimensional
flat_array = array.flatten()
# Find the 3 smallest values in the flattened array
k = 3
smallest_values = np.sort(flat_array)[:k]
# Create a mask for the smallest values
mask = np.isin(array, smallest_values)
# Replace the smallest values with NaNs
array[mask] = np.nan
# Print the modified array
print("Modified array:")
print(array)
輸出
Original array: [[5. 7. 7. 6. 4.] [6. 2. 5. 4. 3.] [5. 1. 2. 0. 9.] [7. 9. 7. 1. 5.] [3. 0. 2. 5. 2.]] Modified array: [[ 5. 7. 7. 6. 4.] [ 6. 2. 5. 4. 3.] [ 5. nan 2. nan 9.] [ 7. 9. 7. nan 5.] [ 3. nan 2. 5. 2.]]
使用`np.random.randint()`生成一個隨機的二維整數陣列。然後,我們使用`array.flatten()`展平陣列,並使用`np.sort()`找到 3 個最小值。我們使用`np.isin()`為最小值建立掩碼,並使用`np.nan`替換它們。最後,我們列印修改後的陣列以驗證最小值是否已替換為 NaN。
應用
識別資料集中異常值
根據專案的值進行排名
分析股市趨勢
機器學習和資料探勘演算法
結論
這篇博文中介紹了在 NumPy 陣列中查詢k 個最小值的挑戰。除了許多簡短的程式碼示例和一個帶有詳細解釋的大型示例之外,我們還包含了克服此問題的語法和技術,並討論了此問題在資料分析等領域中的一些應用方式。查詢 k 個最小值只是 NumPy 用於處理多維陣列和矩陣的強大工具包提供的眾多有用功能之一。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP