网络编程
位置:首页>> 网络编程>> Python编程>> NumPy索引与切片的用法示例总结

NumPy索引与切片的用法示例总结

作者:zhenguo  发布时间:2022-05-13 19:33:38 

标签:numpy,索引,切片

前言

索引和切片是NumPy中最重要最常用的操作。熟练使用NumPy切片操作是数据处理和机器学习的前提,所以一定要掌握好。

参考NumPy官方文档,总结NumPy索引和切片,可以看到它们相比Python更加方便、简介和强大。

索引和切片

您可以使用与切片 Python列表相同的方法,对NumPy数组进行索引和切片。


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

>>> data[1]
2
>>> data[0:2]
array([1, 2])
>>> data[1:]
array([2, 3])
>>> data[-2:]
array([2, 3])

你可以这样想象:

NumPy索引与切片的用法示例总结

您可能需要获取数组的一部分或特定数组元素,以便在进一步分析或其他操作中使用。为此,需要对数组进行子集、切片和/或索引。

如果您想从数组中选择满足特定条件的值,那么NumPy很简单。

例如,如果从这个数组开始:


>>> a = np.array([[1 , 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

可以轻松打印数组中小于5的所有值。


>>> print(a[a < 5])
[1 2 3 4]

例如,还可以选择等于或大于5的数字,并使用该条件对数组进行索引。


>>> five_up = (a >= 5)
>>> print(a[five_up])
[ 5  6  7  8  9 10 11 12]

可以选择可被2整除的元素:


>>> divisible_by_2 = a[a%2==0]
>>> print(divisible_by_2)
[ 2  4  6  8 10 12]

或者可以使用&和|运算符选择满足两个条件的元素:


>>> c = a[(a > 2) & (a < 11)]
>>> print(c)
[ 3  4  5  6  7  8  9 10]

还可以使用逻辑运算符&和 |返回布尔值,指定数组中的值是否满足特定条件。这对于包含名称或其他分类值的数组很有用。


>>> five_up = (a > 5) | (a == 5)
>>> print(five_up)
[[False False False False]
[ True  True  True  True]
[ True  True  True True]]

还可以使用np.nonzero()从数组中选择元素或索引。

从这个数组开始:


>>> a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

可以使用np.nonzero()打印元素的索引,例如,小于5:


>>> b = np.nonzero(a < 5)
>>> print(b)
(array([0, 0, 0, 0]), array([0, 1, 2, 3]))

在本例中,返回了一个数组元组:每个维度一个。第一个数组表示找到这些值的行索引,第二个数组表示找到这些值的列索引。

如果要生成元素所在的坐标列表,可以压缩数组,遍历坐标列表,然后打印它们。例如:


>>> list_of_coordinates= list(zip(b[0], b[1]))

>>> for coord in list_of_coordinates:
...     print(coord)
(0, 0)
(0, 1)
(0, 2)
(0, 3)

还可以使用np.nonzero()打印数组中小于5的元素,并使用:


>>> print(a[b])
[1 2 3 4]

如果要查找的元素在数组中不存在,则返回的索引数组将为空。例如:


>>> not_there = np.nonzero(a == 42)
>>> print(not_there)
(array([], dtype=int64), array([], dtype=int64))

总结

来源:https://mp.weixin.qq.com/s/QBDDxPVzBQalPJKH7oNiow

0
投稿

猜你喜欢

  • 初步介绍 当然,我知道现在有成千上万个关于 用CSS处理圆角 的教程,但不管怎么说,我仍然想把这篇文章展示给您。也希望您会发现这篇文章会非常
  • MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MYSQL连接数的方法有两
  • 1、先介绍如何用PHP连上数据库(数据库用户名“root”,密码“sun”,有库“myguestbook”) 图62、PHP和My
  •  可用下面提供的强制登录的程序,它也可以用来做会员注册的。security.asp<%bLoggedIn =&nb
  • 不论你做什么样的设计,色彩都是一个不容忽视的问题。色彩以一种“隐蔽”的方式传达的各种信息,这些信息会影响观看者的心理和感受,左右他们的判断和
  • 上文:成为一个顶级设计师的第二准则英文原文成为一个顶级设计师的第三准则:对比,对比,对比在设计里面,好的对比和你对颜色选择是密切相关的。对比
  • file_get_contents的超时处理话说,从PHP5开始,file_get_content已经支持context了(手册上写着:5.
  • 一、读者指引 读者指引帮助你掌握本文的梗概。以免你看了大半才明白这编文章不适合你,给你造成视觉污染。如果你正在用ASP+XML写一些程序,或
  • if rs.bof then 表示:当前指针的位置是在第一行记录之前 if rs.eof then 表示:当前指针的位置是在最后一行记录之后
  • 两年前在 B 站上看到了一个宝藏 up 主,名叫 "Jannchie见齐",专门做动态条形图样式的数据可视化。做出的效果
  • 简介:numba是Anaconda公司开发的针对Python的开源JIT编译器,用于提供Python版CPU和GPU编程,速度比原生Pyth
  • 前言 日益增长的分布式应用需求要求实现更好分布式的软件环境,不断推动着分布式技术的进步。Oracle数据复制是实现分布式数据环境的一种技术,
  • 当代码已经写得差不多,发现某个变量名需要修改,但代码中很多地方都有该变量,一一修改太麻烦了,在不同的情景下,可以采取更加简便的方法,如下介绍
  • 字典简介Python 中字典和集合也是非常相近的概念,而且从外观看上去,也有那么一丝丝的相似,Python 语言中字典类型是非常灵活的,在实
  • 在python中,通常通过dict和zip组合来构建键值对。比如:aid = [i for i in range(10)]name = [[
  • 常见到网上博文有错误理论,包括身边很多朋友都曾认同“可访问性(Accessibility)是为残障人士准备”的观点。其实在互联网技术领域远不
  • 实例如下:/**    * 将数值四舍五入后格式化.    *    * @pa
  • 下面这些命令可以在命令行下用isql执行,isql -E -Q "命令",isql.exe
  • 本文实例为大家分享了JS实现拖动模糊框特效的具体代码,供大家参考,具体内容如下需求:在图片上拖动按钮,图片蒙层慢慢覆盖,当蒙层边缘碰到左右下
  • 一、INSERT和REPLACEINSERT和REPLACE语句的功能都是向表中插入新的数据。这两条语句的语法类似。它们的主要区别是如何处理
手机版 网络编程 asp之家 www.aspxhome.com