chevron_left
Cookbooks
Accessing a value in a 2D arrayAccessing columns of a 2D arrayAccessing rows of a 2D arrayCalculating the determinant of a matrixChecking allowed values for a NumPy data typeChecking if a NumPy array is a view or copyChecking the version of NumPyChecking whether a NumPy array contains a given rowComputing Euclidean distance using NumpyConcatenating 1D arraysConverting array to lowercaseConverting type of NumPy array to stringCreating a copy of an arrayDifference between Python List and Numpy arrayDifference between the methods array_equal and array_equivDifference between the methods mod and fmodDifference between the methods power and float_powerFinding the closest value in an arrayFinding the Index of Largest Value in a Numpy ArrayFinding the Index of Smallest Value in a Numpy ArrayFinding the most frequent value in a NumPy arrayFlattening Numpy arraysGetting constant PiGetting elements from a two dimensional array using two dimensional array of indicesGetting indices of N maximum valuesGetting indices of N minimum valuesGetting the number of columns of a 2D arrayGetting the number of non-zero elements in a NumPy arrayGetting the number of rows of a 2D arrayInitializing an array of onesInitializing an array of zerosInitializing an identity matrixLimiting array values to a certain rangePerforming linear regressionPrinting full or truncated NumPy arrayPrinting large Numpy arrays without truncationRemoving rows containing NaN in a NumPy arrayReversing a NumPy arraySaving NumPy array to a fileShape of Numpy ArraysSorting value of one array according to anotherSuppressing scientific notation
0
0
0
new
Finding the closest value in a NumPy array
Programming
chevron_rightPython
chevron_rightNumPy
chevron_rightCookbooks
schedule Mar 9, 2022
Last updated Python●NumPy
Tags tocTable of Contents
expand_more To find the closest value in the Numpy array to a certain value, we use the following function:
def find_closest(arr, val): idx = np.abs(arr - val).argmin() return arr[idx]
We use this like follows:
arr = np.array([1,4,10])find_closest(arr, 6)
4
Explanation
The basic idea is that, the smaller the difference between the number in the array and your value, the closer they are:
np.array([1,4,10]) - 6
array([-5, -2, 4])
Since we do not care whether the number in the array is larger or smaller than our value, we take the absolute value:
np.abs(np.array([1,4,10]) - 6)
array([5, 2, 4])
Next, we want to extract the index of the smallest number in this array since it represents the number that is closest to our value:
idx = np.abs(arr - val).argmin()idx
1
Finally, we obtain the actual value that corresponds to this index:
return arr[idx]
Published by Isshin Inada
Edited by 0 others
Did you find this page useful?
Ask a question or leave a feedback...