对numpy中向量式三目运算符详解
作者:grey_csdn 发布时间:2023-06-28 02:14:55
标签:numpy,三目运算符
如果用到数据筛选功能,可以使用x if condition else y的逻辑实现。如果使用的是纯Python,可以使用不断迭代的方式对每一组元素组合进行相应的判断筛选。不过,如果使用numpy中的向量化计可以大大加速运算的过程。
在numpy中有一个这个三目运算的向量版本numpy.where。where方法可以接收三个参数,第一个参数为条件向量,而第二、第三个参数可以是矩阵也可以是标量。接下来做一下相应功能的纯Python功能实现以及向量方式实现。
记录如下:
In [76]: xarr = np.array([1.1,1.2,1.3,1.4,1.5])
In [77]: yarr = xarr + 1
In [78]: xarr
Out[78]: array([ 1.1, 1.2, 1.3, 1.4, 1.5])
In [79]: yarr
Out[79]: array([ 2.1, 2.2, 2.3, 2.4, 2.5])
In [80]: cond = np.array([True,False,True,True,False])
In [81]: cond
Out[81]: array([ True, False, True, True, False], dtype=bool)
In [82]: result1 = [(x if c else y) for x,y,c in zip(xarr,yarr,cond)]
In [83]: result1
Out[83]: [1.1000000000000001, 2.2000000000000002, 1.3, 1.3999999999999999, 2.5]
In [84]: result2 = np.where(cond,xarr,yarr)
In [85]: result2
Out[85]: array([ 1.1, 2.2, 1.3, 1.4, 2.5])
从浮点表示上,两者有一点点小小的差异,在小数点后多位,通常在数值表示上可以忽略。不过,这里还是要进行一下两个结果的一致性判断,因为之前也看到过Python在浮点表达上因为机器而产生的差异。
测试的结果如下:
In [87]: result1 == result2
Out[87]: array([ True, True, True, True, True], dtype=bool)
从上面的结果可以看出,两个计算结果是一致的。
来源:https://blog.csdn.net/grey_csdn/article/details/69663588


猜你喜欢
- Opera所属:挪威Opera Software ASA公司渲染引擎:自家的PrestoOpera起初是一款挪威Oper
- 对表误删或执行缺少条件的修改 SQL 导致修改了表内其他数据时,我们需要想办法将数据恢复回来。先创建两个测试表 table_1CREATE
- 出现这个问题的原因不是'/xxx.frm'这个文件不见了,而是这些文件的权限(应该要是mysql)不知道为什么变成了root
- 1.原始查询表结果 2.理想查询表结果 一很牛的朋友写的sql语句大笑,学习啦偷笑: select userpwd,
- 本文实例讲述了Python打开文件、文件读写操作、with方式、文件常用函数。分享给大家供大家参考,具体如下:打开文件:在python3中,
- 现有两个元组(('a'),('b')),(('c'),('d')),请使用p
- 代码如下:登陆时记录cookies页面代码 <!--#include file="md5.asp"--&
- IN为什么慢?在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕。例如:SELECT driver_id FROM driver w
- Mac安装软件时提示已损坏的解决方法从网上下载的SecureCRT、Principle等设计软件,以及输入法等常用软件,安装时可能会提示&a
- 本人刚开始学习python,看了一段时间视频教程之后,决定做一个小游戏来巩固一下知识点,就做了一个文字版飞行棋,暂不具备图形界面。把代码贴出
- Chrome的CSS支持程度 :Green / √ means current support.Orange / Δ means that
- 基本操作图片的基本读取与保存。读取图片读取和文件读取类似,需要先获取流:注册图片的解码器(如:jpg则import _ "imag
- declare @tt varchar(20) set @tt = 'monisubbouns' declare @int
- 很多时候关心的是优化SELECT 查询,因为它们是最常用的查询,而且确定怎样优化它们并不总是直截了当。相对来说,将数据装入数据库是直截了当的
- 这篇文章主要介绍了python几种常用功能实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 看代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional
- 第一招、mysql服务的启动和停止net stop mysqlnet start mysql第二招、登陆mysql语法如下: mysql -
- 在Python数据可视化中,seaborn较好的提供了图形的一些可视化功效。seaborn官方文档见链接:http://seaborn.py
- 随着当今世界的发展,计算机视觉技术的应用越来越广泛。伴随着硬件设备的不断升级,构造复杂的计算机视觉应用变得越来越容易了。OpenCV像是一个
- 本文为大家分享了pygame游戏之旅的第6篇,供大家参考,具体内容如下定义一个障碍模型函数:def things(thingx, thing