У меня есть словарь, T
, с ключами в форме k,i
со связанным значением, которое является реальным числом (поплавок). Давайте предположим, что я выбрал конкретный ключ a,b
из словаря T
с соответствующим значением V1
-что это наиболее эффективный способ найти наиболее близкое значение к V1
для ключа, который имеет форму a+1,i
, где i
представляет собой целое число, которое находится в диапазоне от 0 до п? (k
, a
и b
также целые числа.) Чтобы добавить одно условие от значений элементов в T
, так как i
увеличивается в ключе, значение, связанное с T[a+1,i]
строго возрастает (то есть T[a+1,i+1] > T[a+1,i]
).Найти ближайшую ценность в словаре
Я планировал просто запустить цикл while, который начинается с i = 0
и сравнивает значение T[a+1,i]
с V1
. Чтобы быть более понятным, цикл просто остановится в точке, где np.abs(T[a+1,i] - V1) < np.abs(T[a+1,i+1] - V1)
, так как я знаю, что элемент, связанный с T[a+1,i]
, находится ближе всего к T[a,b] = V1
. Но учитывая строго возрастающее условие, которое я наложил, существует ли более эффективный метод, чем запуск цикла while, который выполняет итерации над элементами словаря? i
будет идти от 0 до n, где n может быть целым числом в миллионах. Кроме того, этот процесс будет повторяться часто, поэтому эффективность является ключевой.
* ключи в форме k, i *, означает ли это, что словарь является своего рода двухмерным массивом? – Jeon
@Jeon Да, это похоже на 2D-массив (например, увеличение времени с увеличением i). Словарь был выбран для обеспечения неравномерного расстояния. Хотя одна из (второстепенных) проблем - это выяснить, как вещи устроены просто на основе ключей. – Mathews24
@MoinuddinQuadri Это не задание ... Это персональный проект с неравномерной сеткой. Я хотел бы найти хороший метод для вычисления пространственных производных. Я пытаюсь найти самое близкое значение для моей текущей точки (например, 'V1'), чтобы вычислить численный дифференциал. Я еще не реализовал конкретный метод, так как он должен быть добавлен в другой код для решения набора PDE. Хотя до изменения моего кода (только для того, чтобы снова изменить его в конце, если я узнаю о лучших методах), я подумал, что заранее спрошу, существуют ли более эффективные методы, о которых я просто не подозреваю. – Mathews24