这可能看起来像是Pandas中检查非索引列是否排序的重复问题。
我阅读了那篇文章和所有答案。除了一个答案之外,没有人涉及使用numpy。它全部都集中在Python列表上。通过使用
考虑两个数组
我已经编写了这个函数来确定排序性。
我阅读了那篇文章和所有答案。除了一个答案之外,没有人涉及使用numpy。它全部都集中在Python列表上。通过使用
numpy
标签提出类似的问题,我相信我会得到不同类型的答案。话虽如此,接下来是问题。考虑两个数组
a
和b
。b
已排序,而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()
除此之外,我还能做些什么来改进这个想法?有没有最快的 pandas
或者 numpy
算法可以判断一个 pd.Series
或者 np.ndarray
是否已经排序?
is_sorted(a)
False
is_sorted(b)
True
pd.algos.is_lexsorted()
在这种情况下不会失败。 - John Zwinckpandas.algos.is_lexsorted
实际上假定输入为 64 位有符号整数。由于 IEEE 浮点数的工作方式,这意味着它恰好可以处理 64 位 NaN,但在负浮点数输入时会失败。这不是解决方案。 - user2357112