如何使用向量化从数组中选择最接近数组中值的值?

2024-01-06

我有一个值数组,我想根据线性最接近的选择从一系列选择中替换这些值。

问题是选择的大小是在运行时定义的。

import numpy as np
a = np.array([[0, 0, 0], [4, 4, 4], [9, 9, 9]])
choices = np.array([1, 5, 10])

如果选择的大小是静态的,我会简单地使用 np.where

d = np.where(np.abs(a - choices[0]) > np.abs(a - choices[1]), 
      np.where(np.abs(a - choices[0]) > np.abs(a - choices[2]), choices[0], choices[2]),
         np.where(np.abs(a - choices[1]) > np.abs(a - choices[2]), choices[1], choices[2]))

获取输出:

>>d
>>[[1, 1, 1], [5, 5, 5], [10, 10, 10]]

有没有一种方法可以更动态地执行此操作,同时仍然保留矢量化。


从中减去选择a,找到结果最小值的索引,代入。

a = np.array([[0, 0, 0], [4, 4, 4], [9, 9, 9]])
choices = np.array([1, 5, 10])
b = a[:,:,None] - choices
np.absolute(b,b)
i = np.argmin(b, axis = -1)
a = choices[i]
print a

>>> 
[[ 1  1  1]
 [ 5  5  5]
 [10 10 10]]

a = np.array([[0, 3, 0], [4, 8, 4], [9, 1, 9]])
choices = np.array([1, 5, 10])
b = a[:,:,None] - choices
np.absolute(b,b)
i = np.argmin(b, axis = -1)
a = choices[i]
print a

>>>    
[[ 1  1  1]
 [ 5 10  5]
 [10  1 10]]
>>> 

额外的维度被添加到a使得每个元素choices将从每个元素中减去a. choices was 播送 https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html反对a在三维空间中,这个链接有一个不错的图形 http://www.scipy-lectures.org/intro/numpy/operations.html#broadcasting. b.shape是 (3,3,3)。Erics广播文档 https://scipy.github.io/old-wiki/pages/EricsBroadcastingDoc是一个很好的解释,最后有一个图形 3D 示例。

对于第二个例子:

>>> print b
[[[ 1  5 10]
  [ 2  2  7]
  [ 1  5 10]]

 [[ 3  1  6]
  [ 7  3  2]
  [ 3  1  6]]

 [[ 8  4  1]
  [ 0  4  9]
  [ 8  4  1]]]
>>> print i
[[0 0 0]
 [1 2 1]
 [2 0 2]]
>>> 

最终作业使用索引数组 https://docs.scipy.org/doc/numpy/user/basics.indexing.html#index-arrays or 整数数组索引 https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html.

在第二个示例中,请注意有一个tie对于元素a[0,1],可以替换一个或五个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用向量化从数组中选择最接近数组中值的值? 的相关文章

  • Tensorflow 可变图像输入大小(自动编码器、放大......)

    Edit WARNING不建议使用不同图像大小的图像 因为张量需要具有相同的大小才能实现并行化 我一直在寻找解决方案 了解如何使用不同大小的图像作为神经网络的输入 Numpy 第一个想法是使用numpy 然而 由于每个图像的大小不同 我无法
  • 从字符串到类型的词法转换

    最近 我尝试用Python存储和读取文件中的信息 遇到了一个小问题 我想从文本文件中读取类型信息 从 string 到 int 或 float 的类型转换非常有效 但从 string 到 type 的类型转换似乎是另一个问题 当然 我尝试了
  • 即使使用 .loc[row_indexer,col_indexer] = value 时也会设置 WithCopyWarning

    这是我的代码中得到的行之一SettingWithCopyWarning value1 Total Population value1 Total Population replace to replace value 4 然后我将其更改为
  • 非规范化如何提高数据库性能?

    我听说过很多关于非规范化的内容 它是为了提高某些应用程序的性能而进行的 但我从来没有尝试过做任何相关的事情 所以 我只是好奇 规范化数据库中的哪些地方会使性能变差 或者换句话说 非规范化原则是什么 如果我需要提高性能 如何使用此技术 非规范
  • 如何使用Python将WebP图像转换为Gif?

    我已经尝试过这个 from PIL import Image im Image open this webp im save that gif gif save all True 这给了我这个错误 类型错误 不支持的操作数类型 tuple
  • Paramiko - 使用私钥连接 - 不是有效的 OPENSSH 私钥/公钥文件

    我正在尝试找到解决方案 但无法理解我做错了什么 在我的 Linux 服务器上 我运行了以下命令 ssh keygen t rsa 这产生了一个id rsa and id rsa pub file 然后我将它们复制到本地并尝试运行以下代码 s
  • “char”/“character”类型的类型提示

    char 或 character 没有内置的原始类型 因此显然必须使用长度为 1 的字符串 但是为了暗示这一点并暗示它应该被视为一个字符 如何通过类型提示来实现这一点 grade chr A 一种方法可能是使用内置的 chr 函数来表示这一
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 创建一个类似于 Tkinter 的表

    我希望创建类似于 Tkinter 中的表格的东西 但它不一定是这样的 例如 我想创建标题 Name1 Name2 Value 并在每个标题下面有几个空白行 然后 我希望稍后用我计算的值或名称的字符串值填充这些行 因此是标签 对于 Name2
  • 如何在python中检索aws批处理参数值?

    流程 Dynamo DB gt Lambda gt 批处理 如果将角色 arn 插入动态数据库 它是从 lambda 事件中检索的 然后使用submit job角色 arn 的 API 被传递为 parameters role arn ar
  • 获取列表中倒数第二个元素[重复]

    这个问题在这里已经有答案了 我可以通过以下方式获取列表的倒数第二个元素 gt gt gt lst a b c d e f gt gt gt print lst len lst 2 e 有没有比使用更好的方法print lst len lst
  • 如何在Python和Selenium中通过标签名称或id获取元素[重复]

    这个问题在这里已经有答案了 我正在尝试使用 Python 和 Selenium 获取输入 但它向我显示错误 我该如何解决这个错误 inputElement send keys getStock getStocklFunc 0 Error i
  • 将一个列表的元素除以另一个列表的元素

    我有两个清单 比如说 a 10 20 30 40 50 60 b 30 70 110 正如你所看到的 列表 b 由一个列表的元素总和组成 其中 window 2 b 0 a 0 a 1 10 20 30 etc 如何获得另一个列表 该列表由
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • 如何通过字符串匹配加速 pandas 行过滤?

    我经常需要过滤 pandas 数据框df by df df col name string value 并且我想加快行选择操作 有没有快速的方法可以做到这一点 例如 In 1 df mul df 3000 2000 3 reset inde
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 检查字符串是否只有字母和空格 - Python

    试图让 python 返回一个字符串仅包含字母和空格 string input Enter a string if all x isalpha and x isspace for x in string print Only alphabe
  • 如何将列表字典写入字符串而不是 CSV 文件?

    This 堆栈溢出问题 https stackoverflow com questions 37997085 how to write a dictionary of lists to a csv file将列表字典写入 CSV 文件的答案
  • 在 Python 模块中使用 InstaLoader

    我正在尝试使用 Instaloader 下载与主题标签相关的照片以进行图像分析 我在GitHub存储库中找到了一个全面的方法 如何在终端中执行它 但是 我需要将脚本集成到Python笔记本中 这是脚本 instaloader no vide
  • 来自 django 教程 was_published_recently.admin_order_field = 'pub_date'

    From Django 教程 https www jetbrains com help pycharm 2017 1 creating and running your first django project html d28041e21

随机推荐

  • 索引有重新记录吗?

    我手头没有具体的问题 但我在过去遇到过一些情况 我不小心炸毁了我的索引 并希望我可以返回给定文件的先前状态 该文件在某个时刻被索引 一些示例案例是 git add
  • 禁用单个 git 命令的钩子

    鉴于我需要在我的钩子脚本中使用 git 我希望我的钩子脚本本身不触发钩子 所以我想在每个命令的基础上跳过钩子 即我正在寻找如下选项 git no hooks some git command 您可以使用 git c core hooksPa
  • 面向对象编程中的抽象数据类型是什么?

    面向对象编程中的抽象数据类型是什么 我已经浏览过这个主题的维基百科 但我仍然不清楚 有人可以澄清一下吗 An 抽象类是一个概括的概念 它是您发明的类 仅用作继承的基类 但不能从中实例化对象 And 抽象数据类型 ADT https en w
  • 带 PDF 的 UIWebView

    我正在使用显示 PDF 文件UIWebView 我想做两件事 我想让页面适合手机屏幕 而用户无需双击即可做到这一点 我想删除显示的 PDF 周围带有灰色阴影的边距 感谢您的帮助 我认为这不会有太大帮助 但我认为最好的选择是将 PDF 渲染为
  • Laravel:它如何注册配置服务?

    Laravel 如何注册配置服务 处理Config立面和config 帮手 我在任何地方都找不到它config app php providers并且文件中没有提及其注册 所有配置方法 get set has 都位于Illuminate C
  • 将 XSSFWorkbook 写入 zip 文件

    我现在有这个问题 我想将此 XSSFWorkbook 工作簿 obj 中的 excel 文件写入 zip 文件 例如 example zip 同时包含此 example xlsx 文件 到远程服务器 我尝试过以下操作但不起作用 它创建了一个
  • 我可以获得 BSON 的更多解释吗?

    我试图理解BSON via http bsonspec org 规格 http bsonspec org specification 但仍然存在一些问题 让我们以上面网站中的一个例子为例 hello world x16 x00 x00 x0
  • 所需接口 vs 接口实现 vs <> 依赖

    正如标题所示 三者之间有什么区别 什么时候应该使用三者之一而不是其他两者 互联网上充满了他们的定义 但我找不到任何关于何时何地使用所需界面或 lt
  • 自动采购 vimrc 破坏了电力线

    我正在使用 gVim 运行 Windowsversion 7 3 46 32bit 我已经设置 Vim 在保存后自动获取我的 vimrc if has autocmd autocmd bufwritepost vimrc win sourc
  • settings.gradle 出现颤动位置错误

    我是颤振的新手 正在尝试构建一个跟踪位置应用程序 我的扑动版本是Flutter 1 18 0 7 0 pre 21 channel master https github com flutter flutter git and flutte
  • 如何签署以编程方式生成的 iOS 配置文件?

    Context 我有一个 web 应用程序 前端 JS 后端 PHP 它生成一些MDM iOS 配置文件 https developer apple com enterprise documentation Configuration Pr
  • 关于 iPhone 应用程序包对于 App Store 的合理大小的问题。存储内存!

    我计划将我的新应用程序提交到 App Store App包含大量图像资源 动画 超过40M App Store 对应用程序包大小有正式限制吗 我从来没有见过这样的情况 认为应该没问题 这样对吗 我的主要问题是 如果应用程序很大 可用性是否会
  • Vector 是一个过时的集合

    检查报告 java util Vector 或 java util hashtable 的任何使用 虽然仍然受支持 但这些类已被 JDK 1 2 Collection 类废弃 并且可能不应该在新的开发中使用 我有一个 Java 项目 它使用
  • 如何将缺失的行插入到该数据集中?

    我想做的是每当缺少一行时将记录插入到数据集中 如果您查看上面的数据集 它包含 3 列属性 然后是 2 个数值 第三列 TTF 是增量的 不应跳过任何值 在此示例中 缺少显示在底部的 2 行 因此 我希望我的代码执行的操作是将这两行插入到结果
  • 如果长度 > 5 如何修剪数组

    如果长度 gt 5 如何修剪数组 我的 JSON 是 name aaa files name A link string com name Q link string com name M link string com
  • 如何删除 Github 网络视图中显示的 git 中的未命名分支

    在我的 git 存储库的 Github 网络视图中 有一个没有名称的 幻影 分支 请看下图 为了简单起见 我想删除黑色分支 只留下蓝色分支 如何才能做到这一点 一些带有哈希值的标签 假设黑色分支从提交 A 开始 到提交 Z 结束 A 和 Z
  • 请帮助我完成康威生命游戏的基本 java 实现

    我花了很长时间试图编写一个程序来实现康威的生命游戏 链接更多信息 http en wikipedia org wiki Conway 27s Game of Life 我正在遵循一些在线指南 并获得了大部分功能 我编写了如下所示的 next
  • Xamarin 表单向左滑动/向右滑动手势

    我想先说一下 我对移动开发 Xamarin C Net 完全陌生 我正在使用 Xamarin Forms 创建移动应用程序 但遇到了无法使用滑动手势的问题 至少根据我看到的文档是这样 我找到了这个网站 http arteksoftware
  • 如何使用CSS替换PNG图像的颜色? [复制]

    这个问题在这里已经有答案了 我在网页中有一个图标 div class icon container img src img gavel3 png class gavel icon style width 80px div 我正在尝试用颜色替
  • 如何使用向量化从数组中选择最接近数组中值的值?

    我有一个值数组 我想根据线性最接近的选择从一系列选择中替换这些值 问题是选择的大小是在运行时定义的 import numpy as np a np array 0 0 0 4 4 4 9 9 9 choices np array 1 5 1