gpt4 book ai didi

Python numpy 参数排序

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:49 24 4
gpt4 key购买 nike

假设我有以下列表

['foo', '333', 32.3]
['bar', 4.0]
['baz', '555', '2232', -1.9]

我希望能够通过最后一个元素( float )对其进行排序

['baz', '555', '2232',  -1.9]
['bar', 4.0]
['foo', '333', 32.3]

升序

count_array = np.array([('foo', '333', 32.3),('bar', 4.0),('baz', '555', '2232', -1.9)], dtype = np.object)

idx = np.argsort(count_array[:, 1])

print(count_array[idx])

我希望能够通过比较最后一个元素来对二维列表进行排序。此代码仅在子列表长度相同时才有效。

我怎样才能让它适用于可变长度的子列表?

问题是这一行 idx = np.argsort(count_array[:, 1])

最佳答案

当你创建一个 numpy.array 时,我会在这里使用普通的 lists ,其中包含不同长度的子列表(或 array 中的不同数据类型) 你得到一个类型为 objectarray,它缺少许多有用的 numpy 特性并且很少是一个实现的好主意。

x = [['foo', '333', 32.3],
['bar', 4.0],
['baz', '555', '2232', -1.9]]

result = sorted(x, key=lambda k : k[-1], reverse=True)

结果:

>>> result
[['foo', '333', 32.3], ['bar', 4.0], ['baz', '555', '2232', -1.9]]

关于Python numpy 参数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19827706/

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