Numpy系统学习(四)数组元素操作

2025-12-13 0 213

主要涉及到数组元素的访问和修改
目录
1 切片索引
1.1 新生成索引数组切片
1.2 直接原数组上通过索引切片
1.2.1 一维数组的切片
1.2.2 多维数组的切片
2 高级索引
2.1 整形数组索引
2.2 布尔索引
1 切片索引
1.1 新生成索引数组切片
切片是通过内置的slice函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组,本质上是通过切片来实现索引。
如slice(2,8,2) 的含义是从2开始,到7,步长为2 因而也就得到2,4,6,我们通过slice得到需要的下标索引,进而通过索引得到对应的元素
例1:通过slice函数进行切片
a=np.array([1,3,5,7,9,11,13,15,17,18,19])
s=slice(2,8,2)
print(a[s])
输出
[ 5 9 13]
1.2 直接原数组上通过索引切片
通过冒号的形式进行分割,与之前类似,第一个数代表开始start,第二个数代表截止到哪里,end ,第三个数代表step步长
1.2.1 一维数组的切片
例2 通过冒号切片原Numpy数组
a=np.array([1,3,5,7,9,11,13,15,17,18,19])
b=a[2:8:2]
print(b)
输出
[ 5 9 13]
关于冒号的参数省略
如果只放置一个参数,如 [2],将返回与该索引相对应的单个元素。
如果只放置一个参数,如 [2],将返回与该索引相对应的单个元素。
如果只放置一个参数加冒号,如 [2:],表示从该索引开始以后,默认步长1,即该项以后的所有项都将被提取。
同理[:8] 表示从开始到7的所有项被提取
如果使用了两个参数,如 [2:7],那么则提取两个索引(不包括停止索引)之间的项。
例3 利用省略参数输出从开始到7号索引的所有项
import numpy as np
a = np.arange(10)
print(a[:7])
运行运行
输出
[0 1 2 3 4 5 6]
1.2.2 多维数组的切片
多维数组同样适用
例4 完成多维数组的切片
import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print(a)
# 从某个索引处开始切割
print(\’从数组索引 a[1:] 处开始切割\’)
print(a[1:])
输出
[[1 2 3]
[3 4 5]
[4 5 6]]
从数组索引 a[1:] 处开始切割
[[3 4 5]
[4 5 6]]
注意多维数组和一维数组的区别,这时候[1:] 代表[1,2,3] 整体的以后的所有数据
多维数组切片可以通过省略号…来进行 ,意味着所有的意思,通过这样的操作可以获得列
以2维数组为例,索引的第一个数字代表行,第二个数字代表列
则[…, 1],行索引由… 替代,即所有行的意思,而列是第2列元素,综合代表第2列的所有元素
同理 [2,…] 列索引由… 替代,即所有列的意思,而行是第3行元素,综合代表第3行的所有元素,下面通过一个例子来观察输出
例5 通过省略号来进行切片操作
import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print(\” 第2列元素\”)
print (a[…,1]) # 第2列元素
print(\” 第2行元素\”)
print (a[1,…]) # 第2行元素
print(\”第2列及右边的所有元素\”)
print (a[…,1:]) # 第2列及右边的所有元素
输出
第2列元素
[2 4 5]
第2行元素
[3 4 5]
第2列及右边的所有元素
[[2 3]
[4 5]
[5 6]]
2 高级索引
2.1 整形数组索引
索引一般包含两个列表,第一个列表代表行,第二个列表代表列,按下图箭头方式一一对应
例1 获取数组中 (0,0),(1,1) 和 (2,0) 位置处的元素。
import numpy as np
x = np.array([[1, 2], [3, 4], [5, 6]])
y = x[[0,1,2], [0,1,0]]
print (y)
倘若只有一个列表,则代表行
例2 获取数组中第2,3行的元素
import numpy as np
x = np.array([[1, 2], [3, 4], [5, 6]])
y = x[[1,2]]
print (y)
输出
[[3 4]
[5 6]]
例3 获取数组中0,1,2行的第2个元素
import numpy as np
x = np.array([[1, 2], [3, 4], [5, 6]])
y = x[[0,1,2], 1]
print (y)
输出
[2 4 6]
2.2 布尔索引
相当于我们可以加一个条件,筛选我们想要的元素
例2 筛选出数组中大于3的元素
x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]])
print (\’我们的数组是:\’)
print (x)
print (\’\\n\’)
# 现在我们会打印出大于3 的元素
print (\’大于 3 的元素是:\’)
print (x[x > 3])
输出
我们的数组是: [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]]
大于 3 的元素是: [ 4 5 6 7 8 9 10 11]
原文链接:https://blog.csdn.net/Q52099999/article/details/128978915

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 Numpy系统学习(四)数组元素操作 https://www.zuozi.net/36701.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务