我有一个查找问题,归结为以下情况。三列正整数。对于某个值i
,哪些值'column_3'
在'column_1'
下面i
和'column_2'
上面的值i
?
import numpy as np
rows = 1e6
i = 5e8
ts = np.zeros((rows,), dtype=[('column_1','int64'),('column_2','int64'),('column_3','int64')])
ts['column_1'] = np.random.randint(low=0,high=1e9,size=rows)
ts['column_2'] = np.random.randint(low=0,high=1e9,size=rows)
ts['column_3'] = np.random.randint(low=0,high=1e9,size=rows)
这是我要优化的操作:
%%timeit
a = ts[(ts['column_1'] < i)&(ts['column_2'] > i)]['column_3']
有什么我忽略的东西可以使这更快吗?将不胜感激任何建议!