day01-切片和索引

news2024/11/18 23:37:22

day01-切片和索引

ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中list 的切片操作一样。

ndarray数组可以基于0-n的下标进行索引

在这里插入图片描述

  • 注意,数组切片并不像列表切片会重新开辟一片空间,而是地址引用,需要使用.copy()进行复制。
array = np.array([0,1,2,3,4,5,6,7,8,9])
ar1 = array[2:7:2]
#ar1为array([2,4,6])

在这里插入图片描述

特点:左闭右开【 } 用法同列表切片

多维切片

ar4 = array([[0,1,2,3],
      [4,5,6,7],
      [8,9,10,11],
      [12,13,14,15]])

ar4.ndim
#返回ar4的秩(几维)输出2

ar4[2]
#切片为下一维度的一个元素,所以是一维数组
#输出array([8,9,10,11])

ar4[2][2]
#输出10

ar4[2:]
#输出第2行以后的
array([[8,9,10,11],
	   [12,13,14,15]])
  • 切片还可以用省略号表示"…",如果在行位置使用省略号,那么返回值将包含所有行元素,反之,则包含所有列元素
ar4[...,1]
#取第一列1,5,9,13

ar4[...,1:]
#返回第二列后的所有项
"""
1,2,3
5,6,7
9,10,11
13,14,15
"""

#注意
ar4[1,2] 
ar4[1][2]
#一个是切片一个是取索引

ar4[...][1]
#取了所有行再取第二行
#区别于
ar4[...,1]

获取四个脚上的元素组成2*2

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

a = b[[0,0,3,3],[0,2,0,2]]  #取b[0][0],b[0][2],b[3][0],b[3][2]组成数列即b【【行号集】【列号集】】

r = np.array([[0,0],[3,3]]).reshape(4)
l =  np.array([[0,2],[0,2]]).reshape(4)
s = b[r,l].reshape((2,2))

s
a = np.array([
    [1,2,3],
    [4,5,6],
    [7,8,9],
])
#行取得2行和3行,列取得2列和3列
b = a[1:3,1:3]  #等价于b = a[[1,2],[1,2]]
#1:3 == [1,2]

c = a[1:3,[1,2]]
#...表示所有行,1:表示从第二列开始的所有列
d = a[...,1:]

print(b)
print(c)
print(d)

创建一个下图的数列

在这里插入图片描述

z = np.zero((8,8),dtype = int)
z[1::2,::2] = 1
z[::2,1::2] = 1
z

2.布尔数组索引

当输出的结果需要经过布尔运算(如比较运算)时,此时回事用到另一种高级索引方式,即布尔数组索引

返回数组中大于6的所有元素

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

联系

1.提取所有奇数

2.将奇数值修改为-1

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

x[x%2==1]

x[x%2==1] = -1

筛选出指定区间的数据

  • & 和
  • | 或
x = np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])
#以上x中大于4并且大于9的所有元素
x[(x<4)&(x<9)]
#以上x中大于4或者大于9的所有元素
x[(x<4)|(x<9)]

True和False的形式表示需要和不需要的数据

a = np.array(12).reshape((3,4))
array([		  [0,1,2,3],
              [4,5,6,7],
              [8,9,10,11]        
			])
row1 = np.array([False,True,True])  
a[row1]		#第一行不要,第二行要,第三行要
#相当于 a[[1,2],:]

得到:

array([       [4,5,6,7],
              [8,9,10,11]        
			])
column = np.array([True,False,True,False])
a[:,column]
#相当于 a[:,[0,2]]

得到:

array([       [0,4,8],
              [2,6,10]        
			])
a[row1,column]
#a[[False,True,True],[True,False,True,False]]
#注意前后的帧需要一样,True的个数需要保持一致,不一致会报错
#等价于:
a[[1,2],[0,1]]

当需要选择的行数和列数不一致时,如选择第一行和最后一行的1,3,4列

a[[0,-1],[0,2,3]]

上述方法错误!形状不一样

1.先选行再选列,即先读取数组a的第一列和最后一列,保存到temp中然后再筛选相应的列即可

#第一步:先选行
temp = a[[0,-1],:]

#第二部再选列
temp[:,[0,2,3]]

#合并一条
a[[0,-1],:][:,[0,2,3]]

一行和最后一行的1,3,4列

a[[0,-1],[0,2,3]]

上述方法错误!形状不一样

1.先选行再选列,即先读取数组a的第一列和最后一列,保存到temp中然后再筛选相应的列即可

#第一步:先选行
temp = a[[0,-1],:]

#第二部再选列
temp[:,[0,2,3]]

#合并一条
a[[0,-1],:][:,[0,2,3]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1890745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Threejs进阶教程-着色器篇】2. Uniform的基本用法与Uniform的调试

Uniform的基本用法与Uniform的调试 关于本Shader教程优化上一篇的效果优化光栅栏高度让透明度和颜色变的更平滑pow()函数借助数学工具更好的理解函数 Unifoms简介编写uniforms修改片元着色器代码借助lil.gui调试uniforms使用uniform控制颜色继续在uniforms添加颜色在着色器中接…

动态住宅代理IP的3个优点

在大数据时代的背景下&#xff0c;代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性&#xff0c;而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…

JavaScript中location对象的主要属性和方法

属性 href&#xff1a;获取或设置整个URL。protocol&#xff1a;获取URL的协议部分&#xff0c;如"http:"或"https:"。host&#xff1a;获取URL的主机名&#xff08;包括端口号&#xff0c;如果有的话&#xff09;。hostname&#xff1a;获取URL的主机名&…

Android studio 打包低版本的Android项目报错

一、报错内容 Execution failed for task :app:packageRelease. > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade> com.android.ide.common.signing.KeytoolException: Failed to read key key0 from store "…

【Portswigger 学院】路径遍历

路径遍历&#xff08;Path traversal&#xff09;又称目录遍历&#xff08;Directory traversal&#xff09;&#xff0c;允许攻击者通过应用程序读取或写入服务器上的任意文件&#xff0c;例如读取应用程序源代码和数据、凭证和操作系统文件&#xff0c;或写入应用程序所访问或…

10 Posix API与网络协议栈

POSIX概念 POSIX是由IEEE指定的一系列标准,用于澄清和统一Unix-y操作系统提供的应用程序编程接口(以及辅助问题,如命令行shell实用程序),当您编写程序以依赖POSIX标准时,您可以非常肯定能够轻松地将它们移植到大量的Unix衍生产品系列中(包括Linux,但不限于此!)。 如…

奇瑞被曝强制加班,“896”成常态且没有加班费

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 7 月 2 日消息&#xff0c;一位认证为“奇瑞员工”的网友近期发帖引发热议&#xff0c;奇瑞汽车内部存在强制加班行为&#xff0c;每周加班时长需大于 20 小时并且没有加班费&#xff0c;仅补贴 10 元…

人口萎缩,韩国釜山“进入消失阶段”

KlipC报道&#xff1a;调查显示&#xff0c;随着低生育率和人口老化&#xff0c;釜山人口逐渐萎缩&#xff0c;韩国第二大城市釜山显现出“进入消失阶段”的迹象。 据悉&#xff0c;“消失风险指数”是将20岁至39岁女性人口总数除以65岁及以上人口得到的数值。当该指数大于1.5…

第T3周:天气识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、前期工作 本文将采用CNN实现多云、下雨、晴、日出四种天气状态的识别。较上篇文章&#xff0c;本文为了增加模型的泛化能力&#xff0c;新增了Dropout层并…

【计算机体系结构】缓存的false sharing

在介绍缓存的false sharing之前&#xff0c;本文先介绍一下多核系统中缓存一致性是如何维护的。 目前主流的多核系统中的缓存一致性协议是MESI协议及其衍生协议。 MESI协议 MESI协议的4种状态 MESI协议有4种状态。MESI是4种状态的首字母缩写&#xff0c;缓存行的4种状态分别…

snap和apt的区别简单了解

Linux中没有tree命令的时候提示安装的时候出现了两个命令&#xff0c;简单看了看两者有何区别&#xff08;一般用apt就可以了&#xff09;&#xff1a; sudo snap install tree 和 sudo apt install tree 这两个命令都是用来安装 tree 命令行工具的&#xff0c;但它们使用的是不…

uniapp零基础入门Vue3组合式API语法版本开发咸虾米壁纸项目实战

嗨&#xff0c;大家好&#xff0c;我是爱搞知识的咸虾米。 今天给大家带来的是零基础入门uniapp&#xff0c;课程采用的是最新的Vue3组合式API版本&#xff0c;22年发布的uniappVue2版本获得了官方推荐&#xff0c;有很多同学等着我这个vue3版本的那&#xff0c;如果没有学过vu…

数字信号处理教程(2)——时域离散信号与时域离散系统

上回书说到数字信号处理中基本的一个通用模型框架图。今天咱们继续&#xff0c;可以说今天要讲的东西必须是学习数字信号处理必备的观念——模拟与数字&#xff0c;连续和离散。 时域离散序列 由于数字信号基本都来自模拟信号&#xff0c;所以先来谈谈模拟信号。模拟信号就是…

umi项目中的一些趣事

前言 出于某些安全问题&#xff0c;需要把HTML中框架注入的umi版本信息去掉&#xff0c;那要怎么搞呢~ 方案 查找官方文档&#xff0c;没发现可以去掉注入信息的方法&#xff0c;但在一番折腾后&#x1f609;终究还是解决了~ 发现 版本信息是从这里注入的~ Object.define…

企业短视频-直播运营团队打造课,手把手带你从0-1 搭建运营团队-15节

如何获取精准客户? 一套抖音营销系统打造课 能定位 懂运营 建团队 持续获客 课程目录 1-01、每个老板都应该学习博商团队的打造方法1.mp4 2-02、如何从0-1快速搭建运营团队1.mp4 3-03、怎么才能招聘到运营人才&#xff1f;1.mp4 4-04、怎么才能快速筛选简历招到符合要求…

程序烧录原理

程序烧录原理 ISP(In System Programming)&#xff0c;在系统编程&#xff0c;单片机不须脱离应用系统而直接在产品上烧写/升级程序。 条件&#xff1a;系统须引出单片机的串口引脚&#xff08;TXD、RXD&#xff09;ISP相对于传统的编程方式&#xff0c;在传统的编程方式中我们…

kvm虚拟机启用console登录

kvm虚拟机console登录&#xff0c;就是执行 virsh console 的时候&#xff0c;宿主机可以控制虚拟机。 一、centos7的kvm虚拟机开启console登录&#xff08;在虚拟中操作&#xff09; 1、备份文件 [roothadoop51 ~]# cp /etc/grub2.cfg /etc/grub2.cfg_back 2、用下面命令可…

2024 AIGC 技术创新应用研讨会暨数字造型设计师高级研修班通知

尊敬的老师、领导您好! 为深入响应国家关于教育综合改革的战略部署&#xff0c;深化职业教育、高等教育改革&#xff0c;发挥企业主体重要作用&#xff0c;促进人才培养供给侧和产业需求侧结构要素全方位融合&#xff0c;充分把握人工智能创意式生成(AIGC)技术在教育领域的发展…

强连通分量

强连通分量 强连通定义 有向图 G G G 的强连通是指 G G G 中任意两个节点都可以直接或间接到达。 下方两幅图都是强连通。一个特殊一点&#xff0c;任意两点都可以直接到达&#xff1b;一个则是最常见的强连通图。 特殊强连通图&#xff0c;任意两点都可以直接到达 常见的…

7.7、指针和函数

代码 #include <iostream> using namespace std;//实现两个数字进行交换 void swap01(int a, int b) {int temp a;a b;b temp;cout << "swap01a " << a << endl;cout << "swap01b " << b << endl; }void sw…