Python 获取数组中等于给定值大小的值

Python 获取数组中等于给定值大小的值

  • 引言
  • 正文
    • 基础方法
      • 方法1
      • 方法2------使用 np.where() 函数
      • 方法3------数组操作
    • 示例1
    • 示例 2

引言

可能很多小伙伴看到这个标题会觉得很绕口,甚至可能会觉得这属于脱裤子放屁,多此一举,但是这里请大家耐心往下看,这篇文章将介绍一个在实际应用中比较常见的数据处理的示例。

正文

基础方法

比如,这里我们有一个 numpy 数组。

[1 2 3 4 5 6 7 8 9 0]

我们想要获取到它中间等于 5 的值。那么该怎么操作呢?

方法1

遍历整个数组进行查找并打印

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
num = 5
for element in arr:if element == num:print(element)
"""
result:
5
"""

当然,如果加上 enumerate 我们也可以顺带得到其对应的索引值。如下:

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
num = 5
for index, element in enumerate(arr):if element == num:print(index, element)
"""
result:
4 5
"""

虽然我们得到了结果,但是显然这并不 Pythonic。

方法2------使用 np.where() 函数

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
num = 5
result = arr[np.where(arr == num)]
print(result)
"""
result:
[5]
"""

相比于之前,我们得到的是一个数组,而不再是一个数罢了。至于获取对应的索引值,只需要打印 np.where(arr == num) 即可,如下:

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
num = 5
index = np.where(arr == num)
print(index)
"""
result:
(array([4], dtype=int64),)
"""

但是,这仍旧不是最简单的方式

方法3------数组操作

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
num = 5
result = arr[arr == num]
print(result)
"""
result:
[5]
"""

可以看到,我们也得到了想要的结果,看到这里,感觉还是在扯,别着急,看一个下面的例子。

示例1

在现实的例子中,往往我们的数组元素本身并不是一些整数,而是小数,比如:

[1.4465446, 2.5445116, 3.654451, 4.156154964, 5.516515, 6.1264847, 
7.126448, 8.1264984, 9.16154654, 0.54881651]

这时,我们想要获取到它们谁更加近似等于我们给定的数据 5 该怎么办呢?

import numpy as nparr = np.array([1.4465446, 2.5445116, 3.654451, 4.156154964, 5.416515, 6.1264847, 7.126448, 8.1264984, 9.16154654, 0.54881651])
num = 5
result = arr[np.round(arr, 0) == num]
print(result)
"""
result:
[5.416515]
"""

到这里,是不是体会到了标题真正的含义了?有人也许会说,你这里如果是 5.5 几几几就找不到值了,然而这种担心是多余的,因为实际中,往往会存在很多个接近 5 的小数,总会有值的,如果没有,那说明确实也没有数字接近 5。

示例 2

更经典的一个示例是,如果我们有两组一一对应的数据,比如:

1 1.4465446
2 2.5445116
3 3.654451
4 4.156154964
5 5.416515
6 5.123546
7 5.461682
8 5.1565446
9 5.364588979
10 5.7845151

我们想要获取后面一列数字中接近 5 的值所对应的第一列数字的值,但是我们发现后面一列数字中有很多值满足条件,那么如何找出前一列中唯一对应的数字呢?

import numpy as npindex = np.arange(1, 11)
arr = np.array([1.4465446, 2.5445116, 3.654451, 4.156154964, 5.416515, 5.123546, 5.461682, 5.1565446, 5.364588979, 5.7845151])
num = 5
result = index[int(np.round(np.mean(arr[np.round(arr, 0) == num]), 0))]
print(result)
"""
result:
6
"""

至此,我们完全说清楚了这个问题。

如果大家觉得有用,就请点个赞吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/624296.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于位的权限系统

基于位的权限系统是一种利用二进制位运算进行权限管理的技术。在这种系统中,不同的权限被编码为2的幂次方 (例如1、2、4、8等),每个权限对应一个独立的二进制位(可想而知运算速度是非常快的)。通过将这些权限值组合在一起形成一个…

力扣198. 打家劫舍(java 动态规划)

Problem: 198. 打家劫舍 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 1.构建多阶段决策模型:n个房屋对应n个阶段,每一个阶段决定一个房间是偷还是不偷,两种决策:偷、不偷 2.定义状态:不能记录每个阶段决策…

笔记系统的部署架构

前天给笔记系统打了0.0.3的tag,一个简单的全栈功能闭环基本完成。既然是开源,因此,这里有必要分享一下部署结构,希望能够获得小伙伴们的反馈。 目前整个系统采用docker容器来部署。应用介绍 auth_app: 登录/注册的前端应用 web_ap…

手动数据分页

public static PageInfo<Long> cutPage(SegmentVo vo, List<Long> segmentIds) {PageInfo<Long> result new PageInfo<>();// 总条数int total segmentIds.size();int currentPage vo.getPageNo();int pageSize vo.getPageSize();List<Long>…

西贝柳斯音乐记谱软件Avid Sibelius Ultimate 2023中文激活版

Avid Sibelius(西贝柳斯终极解锁版) 是一款记谱软件&#xff0c;从有抱负的作曲家和词曲作者到教师和学生&#xff0c;任何人都可以快速轻松地开始创作和分享音乐。对于那些还不熟悉使用符号软件的人来说&#xff0c;直观的界面将引导您完成整个过程。磁性布局可防止对象相互碰…

GBASE南大通用GBase Command Builder 构造函数

初始化GBASE南大通用CommandBuilder 类的一个对象。  重载列表 1) 初始化 GBaseCommandBuilder 类的一个对象。 GBaseCommandBuilder() 2) 使用 GBaseDataAdapter 对象初始化 GBaseCommandBuilder 类的一个 对象。 GBaseCommandBuilder(GBaseDataAdapter) GBaseCommand…

跨国企业如何高效又安全的传输视频大文件?

在视频传输需求日益增长的今天&#xff0c;如何高效、安全地传输视频大文件成为跨国企业面临的重要问题。传统的文件传输方式存在诸多弊端&#xff0c;无法满足跨国企业对于传输效率、文件安全以及合规性的需求。那么跨国企业如何在市场是找到一种文件传输工具能在安全性、稳定…

构建基于RHEL9系列(CentOS9,AlmaLinux9,RockyLinux9等)的MySQL8.0.32的RPM包

本文适用&#xff1a;rhel9系列&#xff0c;或同类系统(CentOS9,AlmaLinux9,RockyLinux9等) 文档形成时期&#xff1a;2023年 因系统版本不同&#xff0c;构建部署应略有差异&#xff0c;但本文未做细分&#xff0c;对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人能力…

Elastic Search的RestFul API入门:DSL查询

在我们之前的基础篇中,我们已经初步了解了DSL的架构与基础结构。现在,我们将进一步学习DSL的查询语句,这些查询语句对于我们的工作和学习而言至关重要。 DSL(Domain Specific Language)是一种专门用于特定领域的编程语言。在Elasticsearch(ES)中,DSL被广泛用于构建灵活…

debug之pycharm调试:出现Collecting data......

pycharm调试时&#xff0c;出现Collecting data… 一直在这个界面很久&#xff0c;这是新版本的Pycharm的bug&#xff0c;通常在多线程的情况下发生。 解决方法&#xff1a; File->Setting->Build,Execution,Deployment->Python Debugger。把Gevent compatible勾选…

Postgresql 12.2 + PostGIS 3.0.1 安装部署

参考文档&#xff1a; 按照该文档安装即可&#xff0c;如果遇到报错&#xff0c;可以参考下文&#xff1a; https://blog.csdn.net/weixin_41166785/article/details/127674169 所需的安装包 在资源里面&#xff08;我看下怎么可以不用积分下载&#xff09; 1、no acceptable…

代码随想录算法训练营第六天 |242.有效的字母异位词,349.两个数组的交集,202.快乐数,1.两数只和

哈希表理论基础 1、哈希表定义&#xff1a; 哈希表是根据关键码的值而直接进行访问的数据结构。 这么这官方的解释可能有点懵&#xff0c;其实直白来讲其实数组就是一张哈希表。 哈希表中关键码就是数组的索引下标&#xff0c;然后通过下标直接访问数组中的元素&#xff0c…

花几分钟整点jmeter花活,轻松超越90%软件测试

jmeter 可以做性能测试&#xff0c;这个很多人都知道&#xff0c;那你知道&#xff0c;jmeter 可以在启动运行时&#xff0c;指定线程数和运行时间&#xff0c;自定义性能场景吗&#xff1f; jmeter 性能测试&#xff0c;动态设定性能场景 平时&#xff0c;我们使用 jmeter 进…

天津大数据分析培训班 常见的大数据培训课程

大数据现在属于热门职业技能之一&#xff0c;不管是大学毕业生&#xff0c;计算机和数据相关专业青年&#xff0c;已经工作一阵的开发人员&#xff0c;运营小白&#xff0c;还是其他想进入这个行当的&#xff0c;可能还没有编程基础的转行人&#xff0c;都想尝试大数据行业&…

【正点原子STM32连载】第三十二章 DMA实验 摘自【正点原子】APM32E103最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子APM32E103最小系统板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第三…

LLM论文:ALCE (Enabling Large Language Models to Generate Text with Citations)

这是一篇RAG领域的文章&#xff0c;原文在这&#xff1a;https://aclanthology.org/2023.emnlp-main.398.pdf 时间[Submitted on 24 May 2023 (v1), last revised 31 Oct 2023 (this version, v2)]背景LLM在信息搜索、生成带引用的文本时存在幻觉问题&#xff0c;即事实准确性…

【Axure高保真原型】树控制内联框架

今天和大家分享树控制内联框架的原型模板&#xff0c;点击树的箭头可以打开或者收起子节点&#xff0c;点击最后一级人物节点&#xff0c;可以切换右侧内联框到对应的页面&#xff0c;左侧的树是通过中继器制作的&#xff0c;使用简单&#xff0c;只需要按要求填写中继器表格即…

艾瑞报告:HR数字化需关注体系化能力,红海云等标杆厂商引领一体化趋势

新全球化时代背景下&#xff0c;企业经营所面临的国内外环境的不确定性增强&#xff0c;如何从不确定性中找到确定性成了大多数企业的关注要点。近日&#xff0c;艾瑞咨询发布《2023中国人力资源数字化研究报告》&#xff0c;从数字化转型的角度切入&#xff0c;探讨数字化如何…

基于传统机器学习模型算法的项目开发详细过程

1 场景分析 1.1 项目背景 描述开发项目模型的一系列情境和因素&#xff0c;包括问题、需求、机会、市场环境、竞争情况等 1.2. 解决问题 传统机器学习在解决实际问题中主要分为两类&#xff1a; 有监督学习&#xff1a;已知输入、输出之间的关系而进行的学习&#xff0c;从而…

导航相关知识梳理

接下来轮到了专业知识---》android知识--》通用的知识 导航相关的知识整理开始了&#xff0c;应该是要一个星期差不多的。每天加一点 百度地图&#xff0c;高德地图&#xff0c;百度地图相关的虽然比较全面&#xff0c;每个模块都有了解&#xff0c;毕竟自己带了多个相关项目…