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 ...
随机推荐
- 9.2.1 hadoop mapreduce任务输出的默认排序
任务的默认排序 MapTask和ReduceTask都会默认对数据按照key进行排序,不管逻辑上是否需要.默认是按照字典顺序排序,且实现该排序的方法是快速排序.但是map和reduce任务只能保证单个 ...
- 注意重写类的equals()方法
注意在java中在比较引用类型时==和原生的equals()方法比较的都是看它们否是同一个对象(说的更直白一点就是他们在内存的位置是否是一样的),但我们在真实世界中关注的往往只是其中的某个属性是否相等 ...
- Day3-M-Cable master POJ1064
Inhabitants of the Wonderland have decided to hold a regional programming contest. The Judging Commi ...
- Codeforces Round #199 (Div. 2) D. Xenia and Dominoes
把 'O' 看成 'X',然后枚举它的四个方向看看是否能放,然后枚举 $2^4$ 种可能表示每种方向是否放了,放了的话就标成 'X',就相当于容斥,对于新的图去dp. dp就是铺地砖,行用二进制来表示 ...
- JAVA(windows)安装教程
JAVA(windows)安装教程 一.下载: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133 ...
- 蓝牙 BLE 协议学习: 000-有关概念介绍
背景 在学校内就用过蓝牙技术参加过比赛(并拿了奖):而蓝牙作为物联网中比较常见的协议,有必要进行深入的学习.此后的文章会以 ble(v4.0) 进行学习. 介绍 蓝牙技术最初由电信巨头爱立信公司于 1 ...
- 使用six库将Python2的项目完全转移到python3
SIX是用于python2与python3兼容的库. 它存在的目的是为了拥有无需修改即可在Python 2和Python 3上同时工作的代码.话虽这么说,但是这并不代表在Python 3中引用该库就可 ...
- zabbix 监控linux tcp连接数
zabbix 监控linux tcp连接数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.TCP的状态概述 1>.端口状态转换 2>.TCP 三次握手 3>. ...
- OS、浏览器排名:Win10狂飙、Chrome逆天
根据 Netmarketshare公布的最新数据,2019年7月,Windows 10系统市场份额获得显著增长,市场份额创下新高:Windows 7则进一步衰退,份额下滑高达3.6%,这也是其历史上最 ...
- solus linux 中文输入法
默认用ibus输入框架,安装ibus-libpinyin sudo eopkg install ibus-libpinyin ibus 安装好后重启 在系统设置 -区域和语言中添加中文,(记得自己设置 ...