前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python扩展库numpy中的布尔运算

Python扩展库numpy中的布尔运算

作者头像
Python小屋屋主
发布2018-04-16 12:20:44
1.6K0
发布2018-04-16 12:20:44
举报
文章被收录于专栏:Python小屋Python小屋

首先解答上一篇文章Win10系统配置Python3.6+OpenGL环境详细步骤中的问题。该问题的答案为[2, 2],要点在于列表对象的方法index()默认是返回指定元素在列表中首次出现的下标,元组和字符串的index()方法也具有相同的用法。

在该文问题中,如果想要获取列表中3的所有位置,列表推导式应写为[i for i,v in enumerate(x) if v==3]。

----------分割线---------

numpy支持一个数组与一个标量之间(或两个等长数组)之间的关系运算,得到一个新数组,新数组中每个元素为True或False,表示原数组中所有元素与该标量(或原来两个数组中对应元素)进行关系运算的结果。当使用仅含有True或False的numpy数组作为下标访问数组元素时,可以将False对应的元素过滤掉,只保留True对应的。

# 包含10个随机数的数组

>>> import numpy as np

>>> x = np.random.rand(10)

>>> x

array([ 0.56707504, 0.07527513, 0.0149213 , 0.49157657, 0.75404095,

0.40330683, 0.90158037, 0.36465894, 0.37620859, 0.62250594])

# 比较数组中每个元素值是否大于0.5

>>> x > 0.5

array([ True, False, False, False, True, False, True, False, False, True], dtype=bool)

# 获取数组中大于0.5的元素,可用于检测和过滤异常值

>>> x[x>0.5]

array([ 0.56707504, 0.75404095, 0.90158037, 0.62250594])

>>> x < 0.5

array([False, True, True, True, False, True, False, True, True, False], dtype=bool)

# 测试是否全部元素都小于1

>>> np.all(x<1)

True

# 是否存在等价于True的元素

>>> np.any([1,2,3,4])

True

>>> np.any([0])

False

>>> a = np.array([1, 2, 3])

>>> b = np.array([3, 2, 1])

# 两个数组中对应位置上的元素比较

>>> a > b

array([False, False, True], dtype=bool)

>>> a[a>b]

array([3])

>>> a == b

array([False, True, False], dtype=bool)

>>> a[a==b]

array([2])

-----------分割线------------

今日习题:表达式sorted([111, 2, 33], key=lambda x: -len(str(x)))的值是什么?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档