Numpy 数组选择第二大数并将其分配给 python 中的列表
Numpy array chosing second largest number and assign it to a list in python
我有一个 array:probs=
[[0.01727184 0.62906768 0.35366048]
[0. 0.34376546 0.65623454]
[0. 0.37798286 0.62201714]
[0. 0.44000258 0.55999742]
[0. 0.44882893 0.55117107]
[0. 0.44350829 0.55649171]
[0. 0.53882745 0.46117255]
[0. 0.51644612 0.48355388]
[0. 0.61091 0.38909 ]
[0. 0.62865738 0.37134262]
[0. 0.71264312 0.28735688]
[0. 1. 0. ]]
我需要 select 最大的第二个值并根据 INDEX.Like 第一行附加一个列表第二大数字是 0.3536 比列表第一个数字将 2 因为 index.Also如果没有第二大数字,列表将分配最大的数字,如最后一个 array.According 到这个数组,我们的列表将是:
List1=[2,1,1,1,1,1,2,2,2,2,2,1]
谢谢大家!
您可以使用 argsort
:
List1 = np.argsort(a)[:,-2].tolist()
我有一个 array:probs=
[[0.01727184 0.62906768 0.35366048]
[0. 0.34376546 0.65623454]
[0. 0.37798286 0.62201714]
[0. 0.44000258 0.55999742]
[0. 0.44882893 0.55117107]
[0. 0.44350829 0.55649171]
[0. 0.53882745 0.46117255]
[0. 0.51644612 0.48355388]
[0. 0.61091 0.38909 ]
[0. 0.62865738 0.37134262]
[0. 0.71264312 0.28735688]
[0. 1. 0. ]]
我需要 select 最大的第二个值并根据 INDEX.Like 第一行附加一个列表第二大数字是 0.3536 比列表第一个数字将 2 因为 index.Also如果没有第二大数字,列表将分配最大的数字,如最后一个 array.According 到这个数组,我们的列表将是:
List1=[2,1,1,1,1,1,2,2,2,2,2,1]
谢谢大家!
您可以使用 argsort
:
List1 = np.argsort(a)[:,-2].tolist()