numpy.argmin 用于大于阈值的元素

2024-02-12

我感兴趣的是获取满足特定条件(在我的例子中为中等阈值)的一维 NumPy 数组中最小值的位置。例如:

import numpy as np

limit = 3
a = np.array([1, 2, 4, 5, 2, 5, 3, 6, 7, 9, 10])

我想有效地屏蔽所有数字a低于限制,这样的结果np.argmin是 6。是否有一种计算成本低的方法来屏蔽不满足条件的值,然后应用np.argmin?


您可以存储有效索引并使用它们来从中选择有效元素a并索引到argmin()在选定的元素之间进行排序以获得最终的索引输出。因此,实现看起来像这样 -

valid_idx = np.where(a >= limit)[0]
out = valid_idx[a[valid_idx].argmin()]

样本运行 -

In [32]: limit = 3
    ...: a = np.array([1, 2, 4, 5, 2, 5, 3, 6, 7, 9, 10])
    ...: 

In [33]: valid_idx = np.where(a >= limit)[0]

In [34]: valid_idx[a[valid_idx].argmin()]
Out[34]: 6

运行时测试 -

对于性能基准测试,在本节中我将比较other solution based on masked array https://stackoverflow.com/a/37973394/3293881反对regular本文前面针对各种数据大小提出了基于数组的解决方案。

def masked_argmin(a,limit): # Defining func for regular array based soln
    valid_idx = np.where(a >= limit)[0]
    return valid_idx[a[valid_idx].argmin()]

In [52]: # Inputs
    ...: a = np.random.randint(0,1000,(10000))
    ...: limit = 500
    ...: 

In [53]: %timeit np.argmin(np.ma.MaskedArray(a, a<limit))
1000 loops, best of 3: 233 µs per loop

In [54]: %timeit masked_argmin(a,limit)
10000 loops, best of 3: 101 µs per loop

In [55]: # Inputs
    ...: a = np.random.randint(0,1000,(100000))
    ...: limit = 500
    ...: 

In [56]: %timeit np.argmin(np.ma.MaskedArray(a, a<limit))
1000 loops, best of 3: 1.73 ms per loop

In [57]: %timeit masked_argmin(a,limit)
1000 loops, best of 3: 1.03 ms per loop
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

numpy.argmin 用于大于阈值的元素 的相关文章

  • Python bash 管道

    我想将 python 脚本的输出通过管道传输到 bash 脚本 到目前为止我所做的是尝试使用os popen sys subprocess 并试图给出一个管道的例子 os popen echo P 1 1 591336 4927369 1
  • 为什么我的查询在参数化后会中断?

    我有 2 张桌子 Sales and Product Sales可以将产品存储为Idn or Name 传统设计 和Type列指定实际type与之相关 Product等是连接的子集表into这个表来获取真实的数据 在这个例子中 Produc
  • Python Ctypes:将返回的 C 数组转换为 python 列表,无需 numpy

    我正在使用 Python Ctypes 来访问一些 C 库 我连接到的函数之一返回const double 它实际上是一个双精度数组 当我在Python中得到结果时 如何将该数组转换为Python列表 C函数的签名 const double
  • 如何使用Python中的or-tools解决累积旅行商问题?

    累积旅行商问题 CTSP 的目标是最小化到达客户的时间总和 而不是总旅行时间 这与最小化总旅行时间不同 例如 如果一个人拥有无限的车辆 车辆与位置数量相同 并且目标是最大限度地减少到达位置的总时间 则可以为每个位置发送一辆车 因为这是满足所
  • 在 numpy/scipy 中查找 matlab 函数

    是否有一个等价的函数find A gt 9 1 来自 numpy scipy 的 matlab 我知道有nonzeronumpy 中的函数 但我需要的是第一个索引 以便我可以在另一个提取的列中使用第一个索引 Ex A 1 2 3 9 6 4
  • Python:并行修改数组的简单方法

    这个问题可能听起来很简单 但作为 Python 并行化的新手 我肯定会遇到困难 我处理了 OpenMP for C 中的并行化问题 这要容易得多 我需要做的是并行修改矩阵的条目 就是这样 问题是 我无法使用简单的 joblib 库来做到这一
  • Python NameError,变量“未定义”

    它返回的错误是 NameError name lives is not defined 我知道代码并不是尽可能高效 这是我的第一个项目 但是无论我尝试做什么 都会弹出这个错误 我尝试为其创建一个全局变量 但这没有帮助 我真的很感激一些帮助
  • ModuleNotFoundError:没有名为“pandas.io.formats.csvs”的模块

    我正在尝试创建一个简单的 csv dataframe to csv psv file name encoding utf 8 header True sep doublequote True quoting csv QUOTE ALL in
  • 在 NLTK Python 的朴素贝叶斯分类器中使用文档长度

    我正在使用 Python 中的 NLTK 构建垃圾邮件过滤器 现在 我检查单词的出现情况并使用 NaiveBayesClassifier 其准确度为 0 98 垃圾邮件的 F 测量值为 0 92 非垃圾邮件的 F 测量值为 0 98 然而
  • 如何使用 JQuery 提取嵌套 HTML 中的文本?

    我这里有 HTML 代码 div class actResult style border solid table tbody tr td Order Number td td 1 td tr tr td Customer Number t
  • MySQL 性能 DELETE 或 UPDATE?

    我有一个超过 10 7 行的 MyISAM 表 向其中添加数据时 我必须在最后更新 10 行 删除它们然后插入新行更快 还是更新这些行更快 应更新的数据不是索引的一部分 索引 数据碎片怎么样 UPDATE到目前为止要快得多 当你UPDATE
  • 替换 Python 列表/字典中的值?

    好的 我正在尝试过滤传递给我的列表 字典并稍微 清理 它 因为其中有某些值我需要删除 所以 如果它看起来像这样 records key1 AAA key2 BBB key3 CCC key4 AAA 我如何快速轻松地运行所有内容并将 AAA
  • 如何将当前登录的用户指定为模型字段的默认值?

    我想做这样的事情 class Task models Model created by models ForeignKey User default LoggedInUser blank True null True related nam
  • 无需递归即可展平多个嵌套数组的数组 - javascript

    也许这是一个愚蠢的问题 但我无法意识到是否可以在不使用递归的情况下展平多维数组 我用递归编写了一种解决方案 function transform arr var result arr forEach flatten function fla
  • 标记 pandas 系列中连续的 True 元素组

    我有一系列的 pandas 布尔值 我想标记连续的 True 值组 怎么可能做到这一点 是否可以以矢量化的方式做到这一点 任何帮助将不胜感激 Data A 0 False 1 True 2 True 3 True 4 False 5 Fal
  • pytest 看不到正在测试的函数的日志

    我有一个像这样的烧瓶应用程序 from flask import Flask import logging app Flask name app route def catch all logging warning I m a warni
  • 将所有构造函数参数作为实例属性添加到 PyCharm 中的类中

    我正在使用 PyCharm 我开始定义一个类 class A def init self a b c 我希望它看起来像这样 class A def init self a b c self a a self b b self c c 使用
  • 虎鲸失踪

    使用plotly 导出静态图表时遇到小问题 Plotly 无法正确识别我已安装 orca 并且仍然存在与缺少 orca 相关的错误 我尝试更改 orca 目录 但它仍然无法正常工作 谁知道出了什么问题吗 My code import plo
  • openpyxl:为一系列 Excel 单元格分配值或应用格式而不进行迭代

    我想应用特定格式或为一系列 Excel 单元格分配一个值 而不需要迭代每个单元格 我目前正在使用这个脚本 from openpyxl import Workbook from openpyxl styles import Font wb W
  • numpy.nan_to_num - 'nan' 关键字无法识别

    当您尝试使用以下代码将 nan 值替换为自定义数值时 np nan to num exp allowance nan 9999 99 它产生以下错误 typeerror nan to num got an unexpected keywor

随机推荐

  • 如何在 Symfony 中将实体导出为 CSV?

    我使用以下代码输出 CSV 但运行时出现空白屏幕 基本上我的困惑在于 DoctrineORMQuerySourceIterator 因为我不明白如何正确使用它 我假设我必须列出属性名称 我正在使用索纳塔导出器 https github co
  • 在 Elastic Search 中模拟字段折叠/按字段分组

    Elastic Search 目前 自 0 18 4 起 不支持字段折叠 有没有一个好的方法来模拟这个 以避免N搜索查询 可能不是您正在寻找的答案 但是 据我所知 并且根据this https github com elasticsearc
  • 在 powerbi 中使用相同的过滤器过滤两个表

    我有两个表显示 PowerBI 中的国家 地区数据 一个表包含不同国家 地区的销售数据 另一个表显示每个国家 地区的统计数据 然后我有一个仪表板 其中包含每个表的图表 我想要一个过滤器来过滤两个表中的国家 地区列 即 如果我过滤美国 我将得
  • 编译 32 位二进制文​​件:'__int128' 之前应有非限定 ID

    我正在努力将我的代码移植到 Mac 它可以在我的 64 位 Windows 机器上正常编译 显然我正在使用的库之一 Awesomium 没有编译为 64 位代码 因此我必须将代码编译为 32 位二进制文 件 我在尝试使用 GCC 4 8 编
  • 嵌套组件内的 React.memo 从不调用 areEqual,总是重新渲染

    我突然好奇 React memo 今天的表现如何 看来 React memo 不能在嵌套函数组件中工作 但可以在组件主返回和返回 React memo 组件的嵌套函数中工作 这是预期的行为还是有其他方法使 React memo 与嵌套功能组
  • 用C画形状时用什么?

    我一直遇到一些问题 试图弄清楚 header 对于设法获取屏幕并使用 C 在其中绘制形状很有用 尝试使用 graphics h 但对我不起作用 我想 graphics h 可能应该在 C 中使用 而不是在 C 中使用 我真的不知道 如果有人
  • 接受vertx api中相同键的参数列表

    如何在路由器 GET 方法中接受同一键中的参数列表 例如 我的查询参数名称为 personId 但在 get 请求中 可能会出现多个 列表 personId 如何在 vertx 中处理这个问题 我在中找不到任何这样的方法HttpServer
  • PyQt 文件浏览 - 设置默认选项?

    我一直在尝试在我正在设计的 GUI 中实现一个文件浏览小部件 我正在使用 QFileDialog 模块 它工作得很好 我可以使用以下代码行浏览和保存文件 filenames QFileDialog getOpenFileName 我的小部件
  • 将所有“/”替换为 File.separator

    在Java中 当我这样做时 a b c d replaceAll 我回来了 a b c d 但是当我这样做时 a b c d replaceAll File separator 它抛出 StringIndexOutOfBoundsExcep
  • 从 mongodb 中删除重复的数组值

    在 mongodb 中 我有一个集合 其中数组具有重复的条目 例如 id ObjectId 57cf3cdd5f20a3b0ba009777 Chat 6 string 1348157031 Riyadh 548275320 Mohamma
  • 如何禁用 jqueryui datepicker 中的 Enter 键

    我正在使用 jQueryUI 日期选择器 当用户单击文本框并按 Enter 键时 将填充当前日期 我想避免这种情况 我已经尝试过这个 datepicker on keypress function e if e which 13 e pre
  • 有没有用Python编写的好的构建框架?

    我从 NAnt 切换到使用 Python 来编写构建自动化脚本 我很好奇是否有任何值得使用的构建框架类似于 Make Ant 和 NAnt 但它们是基于 Python 的 例如 Ruby 有 Rake 那么Python呢 Try SCons
  • 设备旋转时丢失“MediaPlayer”(及其他变量)

    我正在为 Android 创建一个音乐播放器 它基本上可以工作 问题是 当我水平转动设备时 我会丢失 Activity 中的所有变量 这是有道理的 因为它被销毁并重新创建 我尝试使用捆绑包通过 onSaveInstanceState 和 o
  • 在调用另一个 JSON 之前删除 Leaflet 地图中的所有数据/标记

    我正在检索不同的数据以使用不同的 JSON 文件标记传单地图 每个单选按钮都会检索不同的 JSON 文件 但是 当我选择不同的单选按钮时 我无法清除标记 所有标记只是从一个 JSON 文件添加到另一个 JSON 文件 当我选择不同的单选按钮
  • 无需事务日志即可恢复 SQL Server 数据库

    Given a SQL Server 2008 bak文件 有办法恢复吗仅数据文件来自 bak file 没有事务日志 我问的原因是该数据库的事务日志文件大小很大 超出了我可用的磁盘空间 我对交易日志不感兴趣 对任何未完成的交易也不感兴趣
  • 有 YAML 数据库吗?

    我非常喜欢 YAML 的数据模型 它保留了 JSON 的大部分简单性 并通过一些有时很重要的功能 例如自定义数据类型和引用 对其进行了扩展 那么有没有什么方法可以在 YAML 数据模型 或非常类似的东西 中存储大量数据并使用索引对其进行查询
  • D3:如何处理单个图表中的缩放和工具提示?

    我有一个可视化 本质上是一系列堆叠的条形图 每个条形图包含多个面板 例如 here https i stack imgur com IAX6o png是三个这样的条形图 每个都有四个面板 我已经成功实现了跨图表协调的平移 缩放功能 This
  • 获取 jinja2 模板中列表的长度

    如何获取 jinja2 模板中列表中的元素数量 例如 在Python中 print template render products 在jinja2中 span You have what goes here products span s
  • Django 可以在每个单元测试之间刷新其数据库吗?

    Django 1 2 beta 将在每个运行的测试之间重置数据库 这意味着每个测试都在空数据库上运行 然而 数据库并不flushed 刷新数据库的影响之一是auto increment计数器被重置 考虑一个通过主键从数据库中提取数据的测试
  • numpy.argmin 用于大于阈值的元素

    我感兴趣的是获取满足特定条件 在我的例子中为中等阈值 的一维 NumPy 数组中最小值的位置 例如 import numpy as np limit 3 a np array 1 2 4 5 2 5 3 6 7 9 10 我想有效地屏蔽所有