如何將python中np array 2D陣列 取最高 設為 1
可以使用 NumPy 的 argmax 函數來找到每組數值中的最大值位置,並將其轉換成最大值為 1 的數組。以下是一個示例代碼:
import numpy as np # 假设有五组数值的列表 data = [ [10, 20, 30, 40, 50], # 第一组数值最大值位置为4 [5, 15, 25, 35, 45], # 第二组数值最大值位置为4 [60, 70, 80, 90, 100], # 第三组数值最大值位置为4 [70, 60, 50, 40, 30], # 第四组数值最大值位置为0 [25, 20, 15, 10, 5] # 第五组数值最大值位置为0 ] # 将每组数值中最大值位置转换成最大值为1的数组 result = [np.eye(data.shape[1])[np.argmax(arr)] for arr in data] print(result)
在上述代碼中,我們使用列表推導式遍歷每一組數值,然後利用 np.argmax(arr) 找到最大值所在的位置索引,再利用 np.eye(data.shape[1]) 生成大小為動態的單位矩陣,最後將找到的最大值位置設為 1,其餘位置為 0。最終得到一個包含五個最大值位置為 1 的數組列表 result。 輸出將打印這五個數組,每個數組都代表對應組數值的最大值位置為 1 的情況。
留言板
歡迎留下建議與分享!希望一起交流!感恩!