python - 将给定向量(B)的每个值四舍五入到 A 中最接近的值
问题描述
给定一组数字:
A = np.array([12,10,7,4,2,0,-3])
和另一组值:
B = np.array([14,8.8,2.3,-4,5.5])
python中是否有一种方法可以将B四舍五入到A的最接近值?
解决方案
这是一个 O(n log n) 的解决方案:
>>> AS = np.sort(A)
>>> bnd = (AS[:-1] + AS[1:]) / 2
>>> nearest = AS[bnd.searchsorted(B)]
>>>
>>> nearest
array([12, 10, 2, -3, 4])
或者,如果您希望对领带进行四舍五入:
>>> nearest = AS[bnd.searchsorted(B, 'right')]
>>> nearest
array([12, 10, 2, -3, 7])
推荐阅读
- c# - WinForms如何将值存储在字符串数组中(Properties.Settings.Default)
- sql - 访问:如何从表中检索某个字段并返回?
- laravel - Backpack V4 店前修改字段
- c# - c# wpf中组合框的过滤
- json - 如何正确编写主题和订阅的 ARM 模板
- riscv - RISCV RV32IM:MULHSU - 哪个操作数是有符号的?
- javascript - ul li items shuffle 随机位置淡入淡出并一一
- html - 由于 CSS 的问题,没有出现弹出窗口
- windows - 有没有办法创建类似于 People App 的驻留在任务栏中的 Windows 10 应用程序?
- node.js - 当数据通过 websockets 不断更新时,我应该如何处理搜索?