gpt4 book ai didi

python - 如何对包含 numpy 数组的元组列表进行排序?

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:57 25 4
gpt4 key购买 nike

首先,这是不起作用的代码:

ls = [(1.0,np.array([3.0, 4.0])), (1.0,np.array([3.0, 4.1])), (3.0,np.array([2.0, 1.0]))]
ls.sort()

如您所见,我有一个元组列表 (ls)。每个元组的第一个元素是一个 float 。我尝试通过 ls.sort() 对列表进行排序。在大多数情况下,它运作良好。但是,有时(如上例所示)我的元组的第一个元素具有相同的值。在这种情况下,python 尝试使用元组的第二个元素来整理元组,但它不起作用,因为在元组的第二个位置我有 numpy 数组。

如何通过忽略元组的第二个元素来对列表进行排序?如果第一个元素相同,我不关心顺序(可以是原始顺序,也可以是随机的)。

最佳答案

要么告诉python只对第一项排序

sorted(ls, key=lambda t: t[0])

或者将整个东西转换成一个结构化的numpy数组,然后让numpy对其进行排序

ls_arr = np.array(ls, dtype=[('my_val', float), ('my_arr', float, 2)])
ls_arr.sort()

第二个选项仅在数组长度始终相同的情况下才有效。

关于python - 如何对包含 numpy 数组的元组列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46558862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com