根据数组中给定的列对Python字典进行排序

10 浏览
0 Comments

根据数组中给定的列对Python字典进行排序

我有以下类型的字典

import operator
my_dict = {'a':np.array((1,2)),'b':np.array((3,4))}

我需要按照数组的第一列进行排序。我可以对这个其他字典进行排序

my_dict2 = {'a':np.array((1)),'b':np.array((3))}

使用

sorted(my_dict2.items(), key=operator.itemgetter(1),reverse=True)

但是尝试使用相同的方法处理我的字典,即

sorted(my_dict.items(), key=operator.itemgetter(1),reverse=True)

会抛出错误消息

The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我尝试更改itemgetter中的参数,但我不能对my_dict排序。

admin 更改状态以发布 2023年5月21日
0
0 Comments

我不太确定如何使用运算符获取下标值。所以我做的是这样的:

sorted(my_dict.items(), key=lambda x: x[1][0],reverse=True)

解释:
x[1][0] 表示你要从 (1,2) 和 (3,4) 中取出 1 和 3。
x[1][1] 表示你要从 (1,2) 和 (3,4) 中取出 2 和 4。
x[0] 就像是 itemgetter(0),会按照字典的键a和b进行排序。

0