【发布时间】:2015-09-15 05:20:30
【问题描述】:
是否可以一次性有效地选择 numpy 数组或 pandas 数据帧中的多个范围?
import pandas as pd
import numpy as np
from time import time
data = pd.DataFrame(np.random.sample((10000,10)))
%timeit -n 10000 result = pd.concat((data[100:150], data[200:300]))
10000 loops, best of 3: 1.47 ms per loop
在上面的例子中,如何在不使用 concat 的情况下选择 100 到 150 和 200:300?这甚至可能吗?
上述操作在使用 pd.concat 时存在瓶颈,最终可以使用 np.vstack 加速......但我仍然想一次选择两个范围,而不像 concat 那样复制底层数据做。
时间至关重要,因为如果您直接访问以下连续范围,我希望尽可能接近您将获得的时间:
%timeit -n 10000 result = data[100:150]
10000 loops, best of 3: 94 µs per loop
【问题讨论】: