python 找到两个numpy数组的交点

2024-01-08

我有两个描述空间曲线的 numpy 数组,它们在一个点上相交,我想在两个数组中找到该交点的最近值,我有这段代码可以正常工作,但对于大量点来说它会变慢。

from scipy import spatial
def nearest(arr0, arr1):
    ptos = []
    j = 0
    for i in arr0:
        distance, index = spatial.KDTree(arr1).query(i)
        ptos.append([distance, index, j])
        j += 1
    ptos.sort()
    return (arr1[ptos[0][1]].tolist(), ptos[0][1], ptos[0][2])

结果将是(<point coordinates>,<position in arr1>,<position in arr0>)


你的代码做了很多你不需要的事情。首先,你在每个循环上重建 KDtree,这是一种浪费。还query需要一个点数组,所以不需要编写自己的循环。 Ptos 是一种奇怪的数据结构,您不需要它(也不需要对其进行排序)。尝试这样的事情。

from scipy import spatial

def nearest(arr0, arr1):
    tree = spatial.KDTree(arr1)
    distance, arr1_index = tree.query(arr0)
    best_arr0 = distance.argmin()
    best_arr1 = arr1_index[best_arr0]
    two_closest_points = (arr0[best_arr0], arr1[best_arr1])
    return two_closest_points, best_arr1, best_arr0

如果这仍然不够快,您需要更详细地描述您的问题,并确定其他搜索算法是否更适合您的问题。

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

python 找到两个numpy数组的交点 的相关文章

随机推荐

  • Ionic:更改 ion-navicon 颜色

    我有一个导航栏
  • 在 Three.js 中将点放置在 3D 对象模型上的坐标上

    我正在构建一个 Three js 应用程序 React 模板 如果它很重要的话 我有这个 3D 对象模型 它应该像应用程序中的行星地球一样 我有这个空间站模型 我想通过每隔一秒给出一些特定的坐标来旋转空间站到世界各地 我的问题是 例如 如果
  • NPM 警告:“引擎不受支持”

    我输入了命令npm install D tailwind css postcss autoprefixer vite在 VS 代码中 我的环境是 NPM版本 8 1 2 Node js 版本 16 13 1 这导致了以下警告 npm WAR
  • Oracle数据库的默认用户名和密码

    我在安装 Oracle DB 时忘记输入 sys system 和 hr 密码并点击 确定 但现在对于 SQ Plus 它需要这些凭据才能在命令提示符下登录 如何获取默认用户名和密码 您只需登录 sqlplus as sysdba 然后为各
  • 命令中的 CQRS 代码重复

    我有一个关于 CQRS 原则的命令端代码重复的问题 一直在关注以下文章 https www cuttingedge it blogs steven pivot entry php id 91 https www cuttingedge it
  • C#中如何获取对象的地址

    在c 中如何获取对象的地址 我搜索并发现 GCHandle handle GCHandle Alloc obj GCHandleType WeakTrackResurrection int address GCHandle ToIntPtr
  • 从二进制文件存储/加载 numpy 数组

    我想从二进制文件存储和加载 numpy 数组 为此 我创建了两个小函数 每个二进制文件应包含给定矩阵的维数 def saveArrayToFile data fileName with open fileName w as file a a
  • 我们可以从函数中按值返回具有已删除/私有复制/移动构造函数的对象吗?

    在 C 03 中 不可能按值返回具有私有非定义复制构造函数的类的对象 struct A A int x private A A const A f return A 10 error return 10 error too 我想知道 C 1
  • 使用 jsoncpp 迭代 JSON 对象数组

    我有一个 JSON 对象数组 例如 jsonArr 如下所示 attr1 somevalue attr2 someothervalue attr1 yetanothervalue attr2 andsoon 使用 jsoncpp 我尝试迭代
  • TWRequest 泄露?

    我在 ios5 中使用 Request 但 Leaks 报告 Request 内存泄漏 我正在做这样的事情 我是不是哪里出错了 TWRequest postRequest TWRequest alloc initWithURL NSURL
  • 无法将类型“float”隐式转换为“int”

    当我尝试运行以下代码时 出现错误 无法将类型 float 隐式转换为 int 我做了很多搜索 遗憾的是我无法找到针对此类错误的任何帮助 int sum1 cols rows float h twoEnds x sum1 h cols x t
  • android System.loadLibrary 加载文件的位置

    网上的一些文章告诉我System loadLibrary 将加载文件 data data app package 目录 我想知道这是否因每个供应商的实施而异或固定 最终由供应商来定义文件系统 文件系统布局 所以它可能在不同的地方 如果没有自
  • Html-loader + file-loader 未捆绑正确的图像源

    我计划在一个项目中使用 Webpack 并使用 Html loader file loader 设置我的工作流程 以获取带有图像动态 src 的生产 html 文件 正如 Colt Steele 所教的那样 这是我的 src 文件 索引 h
  • 如果程序的一部分表现出未定义的行为,它会影响程序的其余部分吗?

    假设程序员忘记初始化他的一个自动变量 并且他使用了它的值 从而调用了未定义的行为 int i 0 j printf value of j d n j char buf 256 fputs Enter query stdout fgets b
  • nvlink、可重定位设备代码和静态设备库

    在调查可重定位设备代码的一些问题时 我偶然发现了一些我不太理解的东西 这是如图所示的用例slide 6 http on demand gputechconf com gtc express 2012 presentations gpu ob
  • 无法使用 rarfile 模块提取 RAR 存档

    我一直在尝试制作一个提取 rar 文件的脚本 但收到错误 我一直在努力理解该模块的文档 但无济于事 我是编程新手 所以有时会迷失在所有文档中 这是我的代码的相关部分以及收到的错误 我的代码片段 import rarfile rarpath
  • 我可以在 Flutter 中使用自定义环境变量吗?

    我想以与我的同事不同的方式配置我们的日志库 并且我不想冒险检查我的本地配置 即 void main LOG minLevel Logger VERBOSE LOG showSymbols false runApp RestartWidget
  • 如何检测文本中的源代码?

    是否可以检测文本中的编程语言源代码 主要是 Java 和 C 例如我想知道本文中是否有源代码部分 text text text text text text text text text text text text text text t
  • 理解Java中的继承和抽象类

    好吧 我通过谷歌搜索寻找文档 但是我没有找到任何真正描述我想要回答的内容 所以我在这里问你们 所以我得到了继承 以及它是如何工作的 我遇到的问题是有时我看到一个对象最初定义为一种类型 然后设置为不同的类型 但我不明白到底发生了什么 这是一个
  • python 找到两个numpy数组的交点

    我有两个描述空间曲线的 numpy 数组 它们在一个点上相交 我想在两个数组中找到该交点的最近值 我有这段代码可以正常工作 但对于大量点来说它会变慢 from scipy import spatial def nearest arr0 ar