Python 为什么pd.unique()比np.unique()快?

Python 为什么pd.unique()比np.unique()快?,python,pandas,numpy,data-science,data-analysis,Python,Pandas,Numpy,Data Science,Data Analysis,我试着比较两个,一个是pandas.unique(),另一个是numpy.unique(),我发现后者实际上超过了第一个。 我不确定阁下是否是线性的 有人能告诉我为什么在代码实现方面存在这样的差异吗?在什么情况下我应该使用哪个 提前谢谢。我是Stackoverflow的新手,如果我问得太多,很抱歉。np.unique()将数据视为一个数组,因此它逐个遍历每个值,然后标识唯一字段 然而,pandas有包含此信息的预构建元数据,pd.unique()只需调用包含“unique”信息的元数据,因此它不

我试着比较两个,一个是pandas.unique(),另一个是numpy.unique(),我发现后者实际上超过了第一个。
我不确定阁下是否是线性的

有人能告诉我为什么在代码实现方面存在这样的差异吗?在什么情况下我应该使用哪个

提前谢谢。我是Stackoverflow的新手,如果我问得太多,很抱歉。

np.unique()将数据视为一个数组,因此它逐个遍历每个值,然后标识唯一字段


然而,pandas有包含此信息的预构建元数据,pd.unique()只需调用包含“unique”信息的元数据,因此它不必再次计算

没有一个直接的答案——永远不要挖得太深,但在文档本身中,它的
.unique()
的速度很快
unique
没有特别使用numpy多维性。这是一种与求和和和乘法截然不同的运算。它对一维数组进行排序,然后查找相邻的重复项。np.lib.arraysetops.\u unique1另外,np.unique启用了比pandas unique更多的功能。与返回找到它们的索引一样,重建原始数组的能力以及找到的唯一值的计数。@hpaulj-根据@dozyaustin指出的文档,
pandas
unique()
的速度与排序无关(这将需要大量额外的内存和时间;在访问第一个唯一元素时)。相反,该操作使用hashmap跟踪迭代器在数据帧中已经访问过的元素。