返回顶部
首页 > 资讯 > 后端开发 > Python >【知识点】np.where()用法
  • 727
分享到

【知识点】np.where()用法

numpypython开发语言 2023-09-14 18:09:03 727人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录 一、基本知识 二、具体实例 1.np.where(condition,x,y) (1)示例1: (2)示例2: (3)示例3: 2. np.where(condition) 总结 一、基本知识 np.wher&

目录

一、基本知识

二、具体实例

1.np.where(condition,x,y)

(1)示例1:

(2)示例2:

(3)示例3:

2. np.where(condition)

总结


一、基本知识

np.where 函数是三元表达式 x if condition else y 的向量化版本,它有两种用法:

np.where(condition,x,y) 当where内有三个参数时,第一个参数表示条件,当条件成立时where方法返回x,当条件不成立时where返回y

np.where(condition) 当where内只有一个参数时,那个参数表示条件,当条件成立时,where返回的是每个符合condition条件元素的坐标,返回的是以元组的形式


二、具体实例

1.np.where(condition,x,y)

(1)示例1:

有两个数值数组和一个布尔数组。当布尔数组为True 时,输出 xarr 的值,否则输出 yarr 的值

代码:

import numpy as npxarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])carr = np.array([True, False, True, True, False])result = np.where(carr, xarr, yarr)print(result)

结果:

[1.1 2.2 1.3 1.4 2.5]

(2)示例2:

np.where的第二个和第三个参数不需要是数组,也可以是标量。where在数据分析中的一个典型用法是根据一个数组来生成一个新的数组。

假设有一个随机生成的矩阵数据,并且想将其中的正值都替换为2,负值都替换为-2

代码:

import numpy as nparr = np.random.randn(4, 4)print(f'arr is {arr}')brr = np.where(arr > 0, 2, -2)print(f'brr is {brr}')

结果:

arr is [[ 0.25269699  0.65883562 -0.25147374 -1.39408775] [-0.53498966 -0.97424514 -1.13900344  0.53646289] [ 1.51928884  0.80805854 -0.82968494  0.82861136] [ 0.09549692  0.59623201  0.50521756  1.648034  ]]brr is [[ 2  2 -2 -2] [-2 -2 -2  2] [ 2  2 -2  2] [ 2  2  2  2]]

(3)示例3:

也可以使用np.where 将标量和数组联合:

仅替换正值为2:

代码:

import numpy as nparr = np.random.randn(4, 4)print(f'arr is {arr}')brr = np.where(arr > 0, 2, arr)print(f'brr is {brr}')

结果:

arr is [[ 0.30064659 -0.5195743   0.05916467  0.58790562] [ 1.0921678  -0.30010407 -0.43318393  0.60455133] [-0.35091718  0.01738908 -0.3067928  -0.0439254 ] [ 0.59166385  1.04319898 -0.73044529  0.10357739]]brr is [[ 2.         -0.5195743   2.          2.        ] [ 2.         -0.30010407 -0.43318393  2.        ] [-0.35091718  2.         -0.3067928  -0.0439254 ] [ 2.          2.         -0.73044529  2.        ]]

2. np.where(condition)

返回的是坐标

示例:

import numpy as npa = np.array([2, 4, 6, 8, 10])#一维矩阵result_1 = np.where(a > 5)print(result_1)b = np.random.randn(4, 4)#二维矩阵print(b)result_2 = np.where(b > 0)print(result_2)

结果:

Output from spyder call 'get_namespace_view':(array([2, 3, 4], dtype=int64),)[[-0.83362412 -2.23605027  0.15374728  0.70877121] [-0.30212209  0.56606258  0.95593288  1.03250978] [-0.85764257  1.48541971  0.73199465  1.66331547] [-0.22020036  0.46416537 -0.75622715  0.32649036]](array([0, 0, 1, 1, 1, 2, 2, 2, 3, 3], dtype=int64), array([2, 3, 1, 2, 3, 1, 2, 3, 1, 3], dtype=int64))

总结

传递给np.where 的参数既可以是同等大小的数组,也可以是标量。当不传递参数,只传递条件时,输出的是满足条件的坐标。

来源地址:https://blog.csdn.net/mzy20010420/article/details/126994743

--结束END--

本文标题: 【知识点】np.where()用法

本文链接: https://lsjlt.com/news/407613.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【知识点】np.where()用法
    目录 一、基本知识 二、具体实例 1.np.where(condition,x,y) (1)示例1: (2)示例2: (3)示例3: 2. np.where(condition) 总结 一、基本知识 np.wher&...
    99+
    2023-09-14
    numpy python 开发语言
  • 如何使用np.where()[0] 和 np.where()[1]
    如何使用np.where()[0] 和 np.where()[1]?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体如下:import numpy...
    99+
    2023-06-08
  • np.where()[0] 和 np.where()[1]的具体使用
    本文主要介绍了np.where()[0] 和 np.where()[1]的具体使用,以及np.where()的具体用法,废话不多说,具体如下: im...
    99+
    2024-04-02
  • python中np.where()的使用方法
    np.where有两种用法 np.where(condition, x, y) 当 where 内有三个参数时,第一个参数表示条件,当条件成立时 where...
    99+
    2023-09-09
    python numpy 机器学习
  • Python中np.where()的使用
    np.where的使用 np.where()是NumPy库中一个非常有用的函数,用于根据指定的条件返回一个向量或数组中满足条件的元素的位置。它的基本语法是: np.whe...
    99+
    2023-09-11
    python numpy 开发语言
  • Python np.where()的详解以及代码应用
    目录np.where共两种用法:附:np.where()多条件用法总结np.where共两种用法: 第一种np.where(condition...
    99+
    2024-04-02
  • 【MongoDB】常用知识点
    修改主分片db.runCommand({"movePrimary":"db", to:"分片id"});2. 合并数据块(数据块需要为空)db.runCommand({"mergeChu...
    99+
    2024-04-02
  • MySQL知识点
    比较符有:=、>、=、...
    99+
    2019-04-20
    MySQL知识点
  • Redis知识点
    1、关于配置文件redis启动如果不显式地指定配置文件,则默认不使用任何配置文件,而是使用它自己的默认配置。所以,如果修改了配置文件的内容,但若启动时没有显式地指定它,则对它的修改不会有任何效果。 ...
    99+
    2024-04-02
  • JavaScript 知识点
    立即执行函数 代码(function () {// ...})(); 创建函数的同时立即执行,没有绑定任何事件,也无需等待任何异步操作function () {} 是一个匿名函数,包围它的一对括号将其转换为一个表达式,紧跟其后的一对括号调用...
    99+
    2023-08-30
    javascript
  • ASP基础知识101:学习ASP的基本概念和用法
    ASP(Active Server Pages)是一种流行的服务器端脚本编程技术,可以帮助您创建交互式和动态的web页面。ASP.NET是ASP的升级版,它提供了更强大的功能和更丰富的开发环境。如果您想学习ASP,那么这篇基础知识介绍将为...
    99+
    2024-02-05
    ASP .NET web开发 服务器端编程 动态内容 交互式网页
  • python PaddleOCR库用法及知识点详解
    说明 PaddleOCR是基于深度学习的ocr识别库,中文识别精度相当还不错,能够应对大多数文字提取需求。 需要依次安装三个依赖库,shapely库可能会受到系统的影响,出现安装错误。 安装命令 pip inst...
    99+
    2022-06-02
    python PaddleOCR库
  • linux vi命令知识点用法总结
    linux vi命令详解 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里介绍一下它的用法和一部分指令。 由于 对Unix及Linux系统的任何版本,vi编辑器是完全相同...
    99+
    2022-06-04
    linux vi
  • js知识点总结之getComputedStyle的用法
    getComputedStyle()这个方法来获取元素当前的样式 这个方法是window的方法,可以直接使用 需要两个参数 第一个:要获取样式的元素第二个:可以传递一个伪元素,一般都...
    99+
    2022-11-13
    getcomputedStyle用法 window.getComputedStyle() 方法
  • 【字节面试】Fail-fast知识点相关知识点
    字节面试,问到的一个小知识点,这里做一下总结,其实小编之前有一篇文章,已经对此有过涉及,不过这里知识专项针对于问题,把这个知识点拎出来说一下。 1.问题 什么是Fail-fast机制? Hash...
    99+
    2023-08-31
    面试 java 字节 fail-fast Enumeration
  • C++语法知识点有哪些
    这篇文章主要讲解了“C++语法知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++语法知识点有哪些”吧!C++程序的组成 (1)预处理命令以#开头。三类预处理命令。A 宏定义命令...
    99+
    2023-06-17
  • Java IO知识点
    1:file:文件的创建和删除;File file=new File("D:word.txt");绝对路径 File file=new File("word.txt");相对路径 if(!file.exists()) { file.crea...
    99+
    2015-11-04
    java教程 Java
  • Flink知识散点
    1、KeyBy 操作后,只有当 Key 的数量大于算子的并发实例数才能获得较好的计算性能。 A.而若Key 的数量比实例数量少,就会导致部分实例收不到数据,这些实例就得不到执行,这些实例的计算能力得不到充分发挥。 B.当Key个数...
    99+
    2016-07-06
    Flink知识散点
  • Redis知识点(一)
    Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等 是一种 NoSQL(not-only sql,泛指非关系型数据库)的数据库。 Redis 作为...
    99+
    2015-03-28
    Redis知识点(一)
  • Redis知识点(二)
    首先 Redis 内部使用一个 redisObject 对象来表示所有的 key 和 value。 redisObject 最主要的信息如上图所示:type 表示一个 value 对象具体是何种数据类型,encoding 是不同数据类型在 ...
    99+
    2019-08-16
    Redis知识点(二)
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作