#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 значений? Здесь я сделал это с помощью ручного поиска…