NumPy 数组切片
章节
要访问或修改ndarray数组中的元素,可以使用数组切片/索引。
如前所述,ndarray数组索引从0开始。
使用切片访问数组,首先通过内置slice
函数创建一个切片对象,该对象存储了创建时传入的start
、stop
和step
参数,把这个切片对象传给数组,我们就可以提取数组的一部分(切片)返回。
一维数组
示例
import numpy as np
a = np.arange(10)
s = slice(2,7,2)
print(a[s])
输出
[2 4 6]
上面的例子中,首先使用arange()
函数创建ndarray数组,然后定义一个切片对象,它的start
、stop
和step
值分别是2、7和2。当把这个切片对象传递给ndarray数组时,会从数组中提取一部分返回,返回部分的索引从2到7,步长2。
可以直接向ndarray数组传入start:stop:step
格式的切片参数,效果相同。
示例
import numpy as np
a = np.arange(10)
b = a[2:7:2]
print(b)
输出
[2 4 6]
[i]
如果只放一个参数,则返回与索引对应的单个项。[:i]
如果在前面插入:
,则从该索引之前的所有项都将被提取。[start:stop]
如果使用了两个参数,中间用:
分隔,则使用默认步骤1,提取两个索引(不包括stop)之间的项。
示例
单项切片
import numpy as np
a = np.arange(10)
b = a[5]
print(b)
输出
5
示例
从索引之后切片
import numpy as np
a = np.arange(10)
print(a[2:])
输出
[2 3 4 5 6 7 8 9]
示例
从索引之前切片
import numpy as np
a = np.arange(10)
print(a[:2])
输出
[0 1]
示例
在索引之间切片
import numpy as np
a = np.arange(10)
print(a[2:5])
输出
[2 3 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]]
切片还可以包括省略号(…),表示在该维度上选择全部。
示例
# 演示数组
import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print ('数组:')
print (a)
print ('\n')
# 返回一个数组,由第二列中的项目组成
print ('第二列中的项目是:')
print (a[...,1])
print ('\n')
# 返回第二行
print ('第二行中的项目是:')
print (a[1,...])
print ('\n')
# 返回第一列之后的项目
print ('第一列之后的项目:')
print (a[...,1:])
输出
数组:
[[1 2 3]
[3 4 5]
[4 5 6]]
第二列中的项目是:
[2 4 5]
第二行中的项目是:
[3 4 5]
第一列之后的项目:
[[2 3]
[4 5]
[5 6]]
NumPy 数组切片的更多相关文章
- Numpy数组对象的操作-索引机制、切片和迭代方法
前几篇博文我写了数组创建和数据运算,现在我们就来看一下数组对象的操作方法.使用索引和切片的方法选择元素,还有如何数组的迭代方法. 一.索引机制 1.一维数组 In [1]: a = np.arange ...
- Numpy数组基本操作(数组索引,数组切片以及数组的形状,数组的拼接与分裂)
一:数组的属性 每个数组都有它的属性,可分为:ndim(数组的维度),shape(数组每个维度的大小),size(数组的总大小),dtype(数组数据的类型) 二:数组索引 和python列表一样,N ...
- numpy数组之读写文件
目录 通过 numpy 读写 txt 或 csv 文件 通过 numpy 读写 npy 或 npz 文件 读写 npy 文件 读写 npz 文件 通过 h5py 读写 hdf5 文件 简单读取 通过切 ...
- NumPy 数组迭代
章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...
- NumPy 数组创建
章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...
- numpy数组的索引和切片
numpy数组的索引和切片 基本切片操作 >>> import numpy as np >>> arr=np.arange(10) >>> arr ...
- Numpy入门(二):Numpy数组索引切片和运算
在Numpy中建立了数组或者矩阵后,需要访问数组里的成员,改变元素,并对数组进行切分和计算. 索引和切片 Numpy数组的访问模式和python中的list相似,在多维的数组中使用, 进行区分: 在p ...
- 在python&numpy中切片(slice)
在python&numpy中切片(slice) 上文说到了,词频的统计在数据挖掘中使用的频率很高,而切片的操作同样是如此.在从文本文件或数据库中读取数据后,需要对数据进行预处理的操作.此时就 ...
- numpy数组、向量、矩阵运算
可以来我的Github看原文,欢迎交流. https://github.com/AsuraDong/Blog/blob/master/Articles/%E6%9C%BA%E5%99%A8%E5%AD ...
随机推荐
- Vue下URL地址栏参数改变却不能刷新界面
在完成毕业设计(基于Vue的信息资讯展示与管理平台)的过程中,处理如下图所示的 点击左侧栏目列表跳转到对应文章列表 的问题时,初次点击可以跳转到对应的页面,但是当第二次点击时,虽然地址栏的参数改变了, ...
- 【剑指Offer面试编程题】题目1370:数组中出现次数超过一半的数字--九度OJ
题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2 ...
- 腾讯2019秋招--小q爬塔(dp)
小Q爬塔 题目描述: 小Q 正在攀登一座宝塔,这些宝塔很特别.塔总共有 n 层,但是每两层之间的净高却不相同,所以造成了小Q 爬过每层的时间也不同.如果某一层的高度为 x,那么爬过这一层所需的时间也是 ...
- Day10 - 灾难 HYSBZ - 2815
Description 阿米巴是小强的好朋友. 阿米巴和小强在草原上捉蚂蚱.小强突然想,果蚂蚱被他们捉灭绝了,那么吃蚂蚱的小鸟就会饿死,而捕食小鸟的猛禽也会跟着灭绝,从而引发一系列的生态灾难. 学过生 ...
- C# 篇基础知识11——泛型和集合
.NET提供了一级功能强大的集合类,实现了多种不同类型的集合,可以根据实际用途选择恰当的集合类型. 除了数组 Array 类定义在System 命名空间中外,其他的集合类都定义在System.Coll ...
- 用python写测试数据文件
f是指向文件的指针,r是转义字符,可以让字符串中的\保持不被转义.路径点属性查然后加上当前文件. 'w'表示只写,‘r’表示只读. import random 导入random数 s = []开一个空 ...
- GNS3 模拟icmp重定向
网关实质上是一个网络通向其他网络的IP地址.比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0:网络B的IP地址 ...
- SqlServer查看锁表与解锁
某些情况下,sqlserver的表会被锁住,比如某个会话窗口有数据一直没提交,窗口又没关闭,这时表就会被锁住 其他任何连接查询表数据时都不会返回 这时需要手工杀掉产生死锁的会话ID,才能恢复正常 查看 ...
- EXTjs开发————优雅的用extjs写一个柱状图
简单的写法,extjs可以直接引用插件来写,这里将我发表在百度文库的文档简述下来,有兴趣也可以关注我的百度文库,ID:该用户已失踪. 主要部分的代码: $(document).ready(functi ...
- IDE及PHP基础——注释、变量、数据、运算符、输出等
IDE(Integrated Development Environment ),集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器.编译器.调试器和图形用户界面等工具.集成了代码编写 ...