К моему удивлению, первый, кажется, работает немного лучше:
a = np.random.random_integers(100, size=(1000,1))
import timeit
repeat = 3
numbers = 1000
def time(statement, _setup=None):
print(min(
timeit.Timer(statement, setup=_setup or setup).repeat(repeat, numbers)))
setup = """from __main__ import np, a"""
time('a[np.where(a[:,0]==99)]')
time('a[(a[:,0]==99)]')
отпечатков (например):
0.017856399000000023
0.019185326999999974
Увеличение размера массива приводит к еще большему различию чисел