Numpy 索引及切片
1.一维数组的索引及切片
- ar = np.arange(20)
- print(ar)
- print(ar[4])
- print(ar[3:6])
- print(ar[:4:2]) #索引到4 按2的步长
- print('-----')
输出结果:
- [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
- 4
- [3 4 5]
- [0 2]
- -----
2. 二维数组的索引及切片
- ar = np.arange(16).reshape(4,4)
- print(ar, '数组轴数为%i' %ar.ndim) # 4*4的数组
- print(ar[2], '数组轴数为%i' %ar[2].ndim) # 切片为下一维度的一个元素,所以是一维数组
- print(ar[2][1]) # 二次索引,得到一维数组中的一个值
- print(ar[1:3], '数组轴数为%i' %ar[1:3].ndim) # 切片为两个一维数组组成的二维数组
- print(ar[2,2]) # 切片数组中的第三行第三列 → 10
- print(ar[:2,1:]) # 切片数组中的1,2行、2,3,4列 → 二维数组
- print('-----')
输出结果:
- [[ 0 1 2 3]
- [ 4 5 6 7]
- [ 8 9 10 11]
- [12 13 14 15]] 数组轴数为2
- [ 8 9 10 11] 数组轴数为1
- 9
- [[ 4 5 6 7]
- [ 8 9 10 11]] 数组轴数为2
- 10
- [[1 2 3]
- [5 6 7]]
- -----
3.三维数组的索引及切片
- ar = np.arange(8).reshape(2,2,2)
- print(ar, '数组轴数为%i' %ar.ndim) # 2*2*2的数组
- print('\n')
- print(ar[0], '数组轴数为%i' %ar[0].ndim) # 三维数组的下一个维度的第一个元素 → 一个二维数组
- print(ar[0][0], '数组轴数为%i' %ar[0][0].ndim) # 三维数组的下一个维度的第一个元素下的第一个元素 → 一个一维数组
- print(ar[0][0][1], '数组轴数为%i' %ar[0][0][1].ndim)
输出结果:
- [[[0 1]
- [2 3]]
- [[4 5]
- [6 7]]] 数组轴数为3
- [[0 1]
- [2 3]] 数组轴数为2
- [0 1] 数组轴数为1
- 1 数组轴数为0
4. 布尔型索引及切片
- # 布尔型索引及切片
- ar = np.arange(12).reshape(3,4)
- i = np.array([True,False,True])
- j = np.array([True,True,False,False])
- print(ar)
- print(i)
- print(j)
- print(ar[i,:]) # 在第一维度做判断,只保留True,这里第一维度就是行,ar[i,:] = ar[i](简单书写格式)
- print(ar[:,j]) # 在第二维度做判断,这里如果ar[:,i]会有警告,因为i是3个元素,而ar在列上有4个
- # 布尔型索引:以布尔型的矩阵去做筛选
- m = ar > 5
- print(m) # 这里m是一个判断矩阵
- print(ar[m]) # 用m判断矩阵去筛选ar数组中>5的元素 → 重点!后面的pandas判断方式原理就来自此处
输出结果:
- [[ 0 1 2 3]
- [ 4 5 6 7]
- [ 8 9 10 11]]
- [ True False True]
- [ True True False False]
- [[ 0 1 2 3]
- [ 8 9 10 11]]
- [[0 1]
- [4 5]
- [8 9]]
- [[False False False False]
- [False False True True]
- [ True True True True]]
- [ 6 7 8 9 10 11]
5.数组索引及切片的值更改、复制
- ar = np.arange(10)
- print(ar)
- ar[5] = 100
- ar[7:9] = 200
- print(ar)
- # 一个标量赋值给一个索引/切片时,会自动改变/传播原始数组
- ar = np.arange(10)
- b = ar.copy()
- b[7:9] = 200
- print(ar)
- print(b)
- # 复制
输出结果:
- [0 1 2 3 4 5 6 7 8 9]
- [ 0 1 2 3 4 100 6 200 200 9]
- [0 1 2 3 4 5 6 7 8 9]
- [ 0 1 2 3 4 5 6 200 200 9]
Numpy 索引及切片的更多相关文章
- numpy 索引和切片
一.取行 1.单行 数组[index, :] # 取第index+1行 例子 import numpy as np arr1 = np.arange(0, 24).reshape(4, 6) # 取第 ...
- numpy之索引和切片
索引和切片 一维数组 一维数组很简单,基本和列表一致. 它们的区别在于数组切片是原始数组视图(这就意味着,如果做任何修改,原始都会跟着更改). 这也意味着,如果不想更改原始数组,我们需要进行显式的复制 ...
- Numpy系列(四)- 索引和切片
Python 中原生的数组就支持使用方括号([])进行索引和切片操作,Numpy 自然不会放过这个强大的特性. 单个元素索引 1-D数组的单元素索引是人们期望的.它的工作原理与其他标准Python序 ...
- NumPy学习(索引和切片,合并,分割,copy与deep copy)
NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...
- Numpy:索引与切片
numpy基本的索引和切片 import numpy as np arr = np.array([1,2,3,555,666,888,10]) arr array([ 1, 2, 3, 555, 66 ...
- NumPy 学习 第二篇:索引和切片
数组索引是指使用中括号 [] 来定位数据元素,不仅可以定位到单个元素,也可以定位到多个元素.索引基于0,并接受从数组末尾开始索引的负索引. 举个例子,正向索引从0开始,从数组开始向末尾依次加1递增:负 ...
- numpy数组的索引和切片
numpy数组的索引和切片 基本切片操作 >>> import numpy as np >>> arr=np.arange(10) >>> arr ...
- Numpy数组基本操作(数组索引,数组切片以及数组的形状,数组的拼接与分裂)
一:数组的属性 每个数组都有它的属性,可分为:ndim(数组的维度),shape(数组每个维度的大小),size(数组的总大小),dtype(数组数据的类型) 二:数组索引 和python列表一样,N ...
- Numpy学习二:数组的索引与切片
1.一维数组索引与切片#创建一维数组arr1d = np.arange(10)print(arr1d) 结果:[0 1 2 3 4 5 6 7 8 9] #数组的索引从0开始,通过索引获取第三个元素a ...
随机推荐
- Redis的原子自增性
INCR key 将 key 中储存的数字值增一. 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作. 如果值包含错误的类型,或字符串类型的值不能表示为数字,那 ...
- jquery 根据日期计算年龄
<script type="text/javascript"> //jquery页面加载完成后,根据后端的出生日期,计算年龄 $(function () { // 获得 ...
- 背景图片之background的用法
常用的background背景属性有: background-color 设置颜色作为对象背景颜色background-image 设置图片作为背景图片background-repeat 设置背景平铺 ...
- html:<link> 标签中的 media 属性
HTML <link> 标签的 media 属性 定义和用法 media 属性规定被链接文档将显示在什么设备上. media 属性用于为不同的媒介类型规定不同的样式. media属性值 ( ...
- ubuntu16.04安装中文输入法(转)
转自: https://zhidao.baidu.com/question/619127469641961052.html ubuntu没有预装中文输入法,需要自己安装 sudo apt instal ...
- QT Creater 配色方案及下载
打开QT Creater的工具--选项--文本编辑器--字体和颜色,复制一份配色方案:Vim (dark) ->Vim (dark) (copy) 更改想更改的任何内容的配色.其中,修改后的文件 ...
- robotframework实战三--自定义关键字
在rf的实战1中,我的登录获取验证码就使用了自定义关键字,具体怎么做的,如下 1.新建文件夹 新建一个文件夹,我的MyLibrary,并且存放在site-packages下 2.编写代码 在pytho ...
- jquery插入第一个元素? [问题点数:20分,结帖人zsw19909001]
jquery插入第一个元素? [问题点数:20分,结帖人zsw19909001] JavaScript code ? 1 2 3 4 5 <div id="contain" ...
- POJ-1422 Air Raid---二分图匹配&最小路径覆盖
题目链接: https://vjudge.net/problem/POJ-1422 题目大意: 有n个点和m条有向边,现在要在点上放一些伞兵,然后伞兵沿着图走,直到不能走为止 每条边只能是一个伞兵走过 ...
- MySQL 数据库和一些常用命令的使用
常用命令总结: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 3 ...