当前位置: 首页 > news >正文

11月13日numpy总结——花哨的索引

如果我们使用索引来取numpy对象里的数据时,通常是使用索引值或者切片:
aa = numpy.arange(16).reshape(4,4)
aa[2,3]
或者aa[:2,3:]

使用这些索引后的取值,通常是单个值,或者不能改变元素的相对位置,但是通过花哨的索引,我们可以按照我们指定的顺序进行取值。
aa = numpy.arange(10,20)
i = [2,5,3,1]
aa[i] 的结果为array([12, 15, 13, 11]),其是按照我们指定的索引顺序取出对应的元素。

利用花哨的索引,结果的形状与索引数组形状一致,而非与被索引数组形状一致。比如:
j = [[2,6],[4,9]]
aa[j]结果为:
array([[12, 16],
[14, 19]])

对于多维数组,也是一样的,比如:
import numpy as np
aa = np.arange(100).reshape(10,10)
j = [[2,6],[4,9]]

aa[j]结果为:
array([[[20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
[60, 61, 62, 63, 64, 65, 66, 67, 68, 69]],

   [[40, 41, 42, 43, 44, 45, 46, 47, 48, 49],[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]])

上述分别为第2行、第6行、第4行,第9行。

而如果,花哨索引是numpy对象,则会遵照numpy对象维度一一匹配的规则,。比如:
aa = np.arange(12).reshape(3,4)
row = np.array([0,1,2])
clo = np.array([1,2,3])
aa[row,clo]的结果为:array([ 1, 6, 11])
上述的三个值分别为aa[0,1]、aa[1,2]、aa[2,3]

如果维度不同,则会遵照广播规则,比如:
aa = np.arange(12).reshape(3,4)
row = np.array([0,1,2]).reshape(3,1)
clo = np.array([2,1,3])

aa[row,clo]的结果为:
array([[ 2, 1, 3],
[ 6, 5, 7],
[10, 9, 11]])
这是因为,按照广播规则,row会扩展为
[[0,0,0],
[1,1,1],
[2,2,2]]
clo会扩展为:
[[2,1,3],
[2,1,3],
[2,1,3]]
然后,row和clo一一匹配,就会成为
[[[0,2],[0,1],[0,3]],
[[1,2],[1,1],[1,3]],
[[2,2],[2,1],[2,3]]]
最后,按照花哨索引的形状,从aa中取对应的值。

http://www.dtcms.com/a/606043.html

相关文章:

  • 云望物联无人机图传系统与通信技术的全面解析
  • Google政策大更新:涉及金融(个人贷款),社交约会与游戏(未成年人相关),健康等所有类别App
  • 网站开发建设方案公司介绍网页模板
  • Linux内存管理深度剖析:从处理文件映射页面的缺页异常到页面缓存的完整架构
  • 湖北网站建设哪家有宜昌市住房和城乡建设厅官方网站
  • AK/SK 利用与云平台接管工具
  • ClickHouse CPU 排查快速参考指南
  • ClickHouse CPU 排查详细指南
  • 苍穹外卖 —— Spring Task和WebSocket的运用以及订单统一处理、订单的提醒和催单功能的实现
  • 专门做搞笑视频的网站泉州哪个公司网站做的好
  • 用DeepSeek 编写的BFS python求解程序测试出来的几个难解数独
  • 台州汇客网站建设wordpress 网址导航页面
  • leetcode 3228. 将 1 移动到末尾的最大操作次数 中等
  • 做设计那些网站可以卖设计图包装袋设计网站推荐
  • 做网站语言中国十大门户类网站
  • 广东省省考备考(第一百四十九天11.13)——言语、判断推理(强化训练)
  • 网站专题教程网站编辑做多久可以升职
  • ChatGPT无预告升级:GPT-5.1 来了,自适应推理、语气更自然、可语气设定
  • 网络文件系统(NFS)完全指南:从入门到实战
  • 婚恋APP小程序开发:Uniapp+SpringBoot全栈开发指南
  • Python进度条工具tqdm的安装与使用
  • 个人博客网站模板ui网页设计实习周报
  • 【计算机网络】[特殊字符] 408高频考点 | 数据链路层组帧:从字符计数到违规编码,一文学透四大实现方法
  • 第一次搭建个人主页+GitHub部署全记录:HTML/CSS/JS前端实现+留言板踩坑
  • 中山中小企业网站建设做电商运营需要具备什么能力
  • 音视频课程上传、加密与播放技术详解:知识付费系统源码开发实践
  • 专业做网站的域名官网
  • 网站响应式图片切换代码网站升级建设中
  • 理解 CSS 层叠上下文与 z-index — 从一个真实案例出发
  • 盘一盘Redis的底层数据结构