gpt4 book ai didi

python - 确定数组是否已排序的最快方法是什么?

转载 作者:行者123 更新时间:2023-11-28 17:21:33 24 4
gpt4 key购买 nike

这看起来像是 Check whether non-index column sorted in Pandas 的副本

我阅读了那篇文章和所有答案。没有人(保存一个答案)使用 numpy 寻址。这一切都集中在 python 列表上。通过使用 numpy 标签询问类似的问题,我相信我会得到不同类别的答案。也就是说,关于这个问题。


考虑两个数组 abb 已排序,而 a 未排序。

a = np.array([2, 1, 3, 0])

b = np.arange(4)

我写了这个函数来确定排序

def is_sorted(x):
return (np.arange(len(x)) == np.argsort(x)).all()

我还能做些什么来改进这个想法?确定 pd.Seriesnp.ndarray 是否已排序的最快的 pandasnumpy 算法是什么?


is_sorted(a)

False

is_sorted(b)

True

最佳答案

对一个数组进行排序是 O(nlogn),但是判断一个数组是否已经排序只需要 O(n)。

is_sorted = lambda x: (np.diff(x)>=0).all()

关于python - 确定数组是否已排序的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41309760/

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