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