用python找出输入数组中与输入给定值最接近的数(通用方法)。
时间: 2023-05-20 14:07:42 浏览: 68
可以通过下面的代码实现:
def find_closest(arr, val):
closest = arr[0]
diff = abs(val - arr[0])
for i in range(1, len(arr)):
if abs(val - arr[i]) < diff:
closest = arr[i]
diff = abs(val - arr[i])
return closest
# 举个例子
arr = [1, 5, 9, 13, 17]
val = 7
closest_num = find_closest(arr, val)
print(closest_num) # 输出 5
相关问题
找出数组中与给定值最接近的数。列及对角线和的最大值。python
找出数组中与给定值最接近的数:
```python
def closest_value(arr, target):
arr.sort()
left = 0
right = len(arr) - 1
while left + 1 < right:
mid = (left + right) // 2
if arr[mid] == target:
return arr[mid]
elif arr[mid] < target:
left = mid
else:
right = mid
if abs(arr[left] - target) <= abs(arr[right] - target):
return arr[left]
else:
return arr[right]
```
列及对角线和的最大值:
```python
def max_sum(matrix):
n = len(matrix)
col_sum = [sum([matrix[i][j] for i in range(n)]) for j in range(n)]
diagonal_sum = [sum([matrix[i][i] for i in range(n)]), sum([matrix[i][n-i-1] for i in range(n)])]
return max(max(col_sum), max(diagonal_sum))
```
其中,`matrix` 是一个二维数组,表示矩阵。`col_sum` 是每列的和组成的列表,`diagonal_sum` 是两个对角线的和组成的列表。最终返回三者的最大值即可。
python假设不清楚数组内的数据大小,从数组中找出与给定值5最接近的值 (提示:np.abs())
可以使用以下代码实现:
import numpy as np
def find_nearest(array, value):
idx = (np.abs(array - value)).argmin()
return array[idx]
# 示例
arr = np.array([1, 3, 5, 7, 9])
value = 5.2
result = find_nearest(arr, value)
print(result) # 输出 5