numpy使用技巧之数组过滤实例代码

作者:linzch3 时间:2021-07-13 14:55:52 

本文研究的主要是numpy使用技巧之数组过滤的相关内容,具体如下。

当使用布尔数组b作为下标存取数组x中的元素时,将收集数组x中所有在数组b中对应下标为True的元素。使用布尔数组作为下标获得的数组不和原始数组共享数据空间,注意这种方式只对应于布尔数组(array),不能使用布尔列表(list)。


>>> x = np.arange(5,0,-1)
>>> x
array([5, 4, 3, 2, 1])
>>> x[np.array([True, False, True, False, False])]
>>> # 下标为True的取出来,布尔数组中下标为0,2的元素为True,因此获取x中下标为0,2的元素
array([5, 3])
>>> x[[True, False, True, False, False]]#Error,这不是我们想要的结果
>>> # 如果是布尔列表,则把True当作1, False当作0,按照整数序列方式获取x中的元素
array([4, 5, 4, 5, 5])
>>> x[np.array([True, False, True, True])]
>>> # 布尔数组的长度不够时,不够的部分都当作False
array([5, 3, 2])
>>> x[np.array([True, False, True, True])] = -1, -2, -3#只修改下标为True的元素
>>> # 布尔数组下标也可以用来修改元素
>>> x
array([-1, 4, -2, -3, 1])

注意:布尔数组一般不是手工产生的,通常我们使用一条布尔表达式来得到,如:


>>> x = np.random.rand(10) # 产生一个长度为10,元素值为0-1的随机数的数组
>>> x
array([ 0.72223939, 0.921226 , 0.7770805 , 0.2055047 , 0.17567449,
   0.95799412, 0.12015178, 0.7627083 , 0.43260184, 0.91379859])
>>> x>0.5
>>> # 数组x中的每个元素和0.5进行大小比较,得到一个布尔数组,True表示x中对应的值大于0.5
array([ True, True, True, False, False, True, False, True, False, True], dtype=bool)
>>> x[x>0.5]# x>0.5是一个布尔数组
>>> # 使用x>0.5返回的布尔数组收集x中的元素,因此得到的结果是x中所有大于0.5的元素的数组
array([ 0.72223939, 0.921226 , 0.7770805 , 0.95799412, 0.7627083 ,
   0.91379859])

来源:http://blog.csdn.net/linzch3/article/details/58584865

标签:python,numpy,数组
0
投稿

猜你喜欢

  • 关于networkx返回图的邻接矩阵问题

    2021-04-09 13:10:35
  • Python-OpenCV实现图像缺陷检测的实例

    2023-02-16 19:38:46
  • python安装sklearn模块的方法详解

    2023-08-01 17:23:48
  • Omi v1.0.2发布正式支持传递javascript表达式

    2024-04-19 11:03:04
  • Pyecharts可视化图片渲染的方法详解

    2021-02-02 22:39:30
  • python读取视频流提取视频帧的两种方法

    2023-04-04 15:10:22
  • JavaScript下利用fso判断文件是否存在的代码

    2024-05-02 17:25:30
  • SQL Server 2019完整安装教程(最新最详细!)

    2024-01-23 13:33:12
  • python 输入字符串生成所有有效的IP地址(LeetCode 93号题)

    2022-09-06 00:16:57
  • 解析Python中while true的使用

    2022-07-23 21:19:53
  • PHP的mysqli_sqlstate()函数讲解

    2023-06-08 14:30:30
  • MySQL中的日期时间类型与格式化方式

    2024-01-22 00:10:23
  • Python利用xlrd 与 xlwt 模块操作 Excel

    2022-07-19 20:57:13
  • ASP内置对象Request和Response用法详解

    2007-09-14 10:35:00
  • 浅析Python打包时包含静态文件处理方法

    2023-05-29 01:12:10
  • 轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器

    2024-05-03 15:31:44
  • ASP.NET中使用SQL存储过程的方法

    2007-08-24 09:31:00
  • MySQL Workbench下载与使用教程详解

    2024-01-13 18:50:26
  • Python 中的range(),以及列表切片方法

    2022-04-22 16:22:53
  • 重写django的model下的objects模型管理器方式

    2023-04-24 15:10:14
  • asp之家 网络编程 m.aspxhome.com