как я могу извлечь числа из массива 1D numpy по условию?

#python #numpy

Вопрос:

 my_array = np.logspace(-1, 2, num=500)
num = 0.9
 

Я хочу извлечь (например) 30 элементов из массива вокруг num
Ожидаемый результат:

 [0.73405984,   0.74429223,   0.75466726,   0.76518692,
 0.77585321,   0.78666818,   0.79763391,   0.80875249,
 0.82002606,   0.83145678,   0.84304684,   0.85479845,
 0.86671388,   0.8787954 ,   0.89104533,   0.90346602,
 0.91605985,   0.92882923,   0.9417766 ,   0.95490446,
 0.96821531,   0.9817117 ,   0.99539623,   1.00927151,
 1.02334021,   1.03760502,   1.05206867,   1.06673394,
 1.08160363,   1.0966806]
 

Я понимаю, что могу использовать цикл с условием (для…).
Есть ли какая-либо встроенная функция?

Комментарии:

1. np.isclose установите свой допуск и теперь используйте выходные данные в логическом индексировании.

2. Спасибо! для 15 значений это будет: dot_range = my_array[np.isclose(my_array, 0.9, rtol=0.05, atol=0.05)] есть ли какая-либо логика для правильного вычисления rtol и atol ? Например, если массив будет состоять из 100000 чисел, и мне нужно извлечь 855 значений? Здесь я сделал это с помощью ручного поиска…