如何將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 的情況。

留言板
歡迎留下建議與分享!希望一起交流!感恩!