NumPy 和 Pandas 哪个更快?
NumPy 和 Pandas 都是数据科学和机器学习技术必不可少的工具。我们知道,pandas 提供类似于 SQL 表的 DataFrames 允许您进行表格数据分析,而 NumPy 非常有效地运行向量和矩阵运算。
pandas 提供了一堆 C 或 Cython 优化的函数,它们可以比 NumPy 等效函数更快(例如从文本文件中读取文本)。
如果您想做点积、计算平均值等数学运算,pandas DataFrames 通常会比 NumPy 数组慢。因为熊猫正在做更多的事情,比如对齐标签、处理异构数据等等。
示例
import numpy as npimport pandas as pd
array = np.arange(100, 200)
s = pd.Series(array)
print('Series object time: ',end ='')
%timeit -n10 -r2 s.mean()
print('Numpy array time: ',end ='')
%timeit -n10 -r2 np.mean(array)
解释
在这里,我们创建了一个 NumPy 数组,其中包含 100 到 200 的 100 个值,还使用 NumPy 数组创建了一个 Pandas Series 对象。
我们使用内置的 IPython 魔术函数 %timeit 来查找每个函数消耗的平均时间。计算每个对象数据的平均值。
-n10 用于设置循环次数,-r2 用于设置运行次数。
输出结果
Series object: 225 µs ± 83 µs per loop (mean ± std. dev. of 2 runs, 10 loops each)Numpy array: 33.1 µs ± 10.8 µs per loop (mean ± std. dev. of 2 runs, 10 loops each)
我们可以看到 NumPy 数组和 Series 对象计算均值所用的时间。
示例
import numpy as npimport pandas as pd
array = np.arange(100, 200)
s = pd.Series(array)
print('Series object time: ',end ='')
%timeit -n10 -r2 s.std()
print('Numpy array time: ',end ='')
%timeit -n10 -r2 np.std(array)
解释
这里我们验证了 NumPy 数组和 pandas Series 对象计算标准差所用的时间。我们可以在下面的输出块中看到时间戳。
输出结果
Series object time: 443 µs ± 26.6 µs per loop (mean ± std. dev. of 2 runs, 10 loops each)Numpy array time: 104 µs ± 12.1 µs per loop (mean ± std. dev. of 2 runs, 10 loops each)
正如我们在上面两个例子中看到的,与 NumPy 对象相比,pandas 消耗的平均时间更多。
与创建 NumPy 数组相比,创建 Pandas DataFrame 花费的时间大约长 6000 倍。Pandas 需要额外的时间来设置索引标签。
以上是 NumPy 和 Pandas 哪个更快? 的全部内容, 来源链接: utcz.com/z/356012.html