numpy的索引与切片
2019-08-20 18:39
846 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Sahar_/article/details/99871110
3、索引与切片
3.1 一维数组
import numpy as np arr1 = np.arange(10) print('原始数组',arr1) print('取单独的一个数据') print(arr1[0]) print(arr1[-1]) print('取多个数据') print(arr1[0:-1]) print(arr1[0:3:2]) 注意点: 1、取单个数据,取下标,下标从0开始 2、取多个数据,:隔开,左闭右开 3、参考列表【起始位置:终点位置:步长】左闭右开
3.2 多维数组
arr1 = np.random.randint(0,99,(3,4)) print('原始数组',arr1) print('###取单独的一行####') print(arr1[0]) print('####取单个元素####') print(arr1[0][-1]) print(arr1[0,-1]) 展示: 原始数组 [[28 91 89 45] [35 18 53 96] [80 41 18 10]] ###取单独的一行#### [28 91 89 45] ####取单个元素#### 45 45 arr1 = np.random.randint(0,99,(3,4)) print('原始数组',arr1) print('####取单独的一列#####') print(arr1[:,2]) 展示: 原始数组 [[89 40 82 68] [54 2 89 14] [ 1 25 45 18]] ####取单独的一列##### [82 89 45] arr1 = np.random.randint(0,99,(3,4)) print('原始数组',arr1) print('####取连续多行#######') print(arr1[0:2]) print('####取连续多行指定多列#######') print(arr1[0:2,0:2]) print('####取不连续多行######') print(arr1[[0,2]]) print(arr1[[0,-1]]) 展示: 原始数组 [[76 15 19 11] [98 62 0 48] [32 77 36 61]] ####取连续多行####### [[76 15 19 11] [98 62 0 48]] ####取连续多行指定连续多列####### [[76 15] [98 62]] ####取不连续多行###### [[76 15 19 11] [32 77 36 61]]
arr1 = np.random.randint(0,99,(3,4)) print('原始数组',arr1) print('####取连续多行,不连续多列#######') print(arr1[0:2,[0,2]]) print('####取不连续多行,不连续多列#######') print(arr1[[0,2]][:,[0,2]]) print('###取第一行的第一列数字与第三行的第三列数字#########') print(arr1[[0,2],[0,2]]) 展示: 原始数组 [[49 96 45 75] [ 9 63 90 9] [45 87 34 21]] ####取连续多行,不连续多列####### [[49 45] [ 9 90]] ####取不连续多行,不连续多列####### [[49 45] [45 34]] ###取第一行的第一列数字与第三行的第三列数字######### [49 34]
3.3 条件索引
arr1 = np.array([ [2010,2011,2012], [2013,2014,2015], [2017,2018,2019] ]) print('原始数组',arr1) print('#########') print(arr1>2013) print(arr1[arr1>2013]) 展示: 原始数组 [[2010 2011 2012] [2013 2014 2015] [2017 2018 2019]] ######### [[False False False] [False True True] [ True True True]] [2014 2015 2017 2018 2019] 注意点: 返回所有条件为真的数据,组合成了一个一维数组
arr1 = np.array([ [2010, 2011, 2012], [2013, 2014, 2016], [2017, 2018, 2019] ]) print('原始数组', arr1) print('#########') print(arr1 > 2013) print(arr1[arr1 > 2013]) print(arr1[(2013 < arr1) & (arr1 < 2016)]) print(arr1[(2013 > arr1) | (arr1 > 2016)]) print('###取闰年#########') print(arr1[(arr1%400==0) | ((arr1%4==0) & (arr1%100!=100))]) print(arr1[~(2013 > arr1)]) 展示: 原始数组 [[2010 2011 2012] [2013 2014 2016] [2017 2018 2019]] ######### [[False False False] [False True True] [ True True True]] [2014 2016 2017 2018 2019] [2014] [2010 2011 2012 2017 2018 2019] ###取闰年######### [2012 2016] [2013 2014 2016 2017 2018 2019]
相关文章推荐
- Numpy矩阵的切片(slicing)和索引(indexing)
- 索引,切片和迭代 NumPy
- Numpy 笔记(二): 多维数组的切片(slicing)和索引(indexing)
- python numpy数值基础 切片和索引
- python学习笔记(1):numpy库索引切片 形状变化
- Numpy学习笔记2——索引与切片
- numpy 切片和索引
- 【NumPy学习指南】day4 多维数组的切片和索引
- Numpy学习笔记之ndarray的索引和切片
- python数据分析:numpy数组的索引与切片
- Numpy的基础索引与切片
- Pyhton科学计算工具Numpy(二)之数组索引切片,numpy随机数及文件生成读取
- Numpy的理解与应用(结构、索引、切片、迭代)
- Python之numpy教程(二):运算、索引、切片
- NumPy数组基本的索引和切片
- NumPy学习(索引和切片,合并,分割,copy与deep copy)
- Numpy中的不同方式的切片索引
- python numpy数组的索引和切片的操作方法
- numpy之索引和切片
- Numpy 索引切片及reshape方法小结