Предположим у меня есть n
Интервалы длины len
на оси. Каждому из них присваивается значение в ndarray
. Теперь я хотел бы посмотреть некоторые значения в позициях query_pos
, заданных как числа с плавающей запятой. В настоящее время я планирую сделать это следующим образом:Быстрый поиск по индексу с плавающей запятой в массив
n = 100
len = 0.39483
data = ... # creates ndarray with data of length n = 100
query_pos = ... # creates an ndarray with positions to query
values_at_query_pos = data[(query_pos/len).astype(int)] # questionable line
Это хороший способ сделать это, или есть более эффективные способы для преобразования позиции запроса с плавающей запятой в целочисленный индекс, а затем прочитать из массива ? Я особенно удивляюсь, что astype(int)
- дешевая или дорогая операция, по сравнению, например, с делением или памятью.
еще несколько замечаний:
Наконец, он будет использоваться в 2-х и 3-х измерениях. В настоящее время я планирую позиции уловов, которые приведут к незаконным индексам до, они идут на этап поиска.
Массив
data
будет иметь достаточно высокое разрешение, так что я не должен нуждаться в любой фильтрации или интерполяции. Это будет сделано в предыдущих этапах .