1.一维数组的索引及切片

  1. ar = np.arange(20)
  2. print(ar)
  3. print(ar[4])
  4. print(ar[3:6])
  5. print(ar[:4:2]) #索引到4 按2的步长
  6. print('-----')

输出结果:

  1. [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
  2. 4
  3. [3 4 5]
  4. [0 2]
  5. -----

2. 二维数组的索引及切片

  1. ar = np.arange(16).reshape(4,4)
  2. print(ar, '数组轴数为%i' %ar.ndim) # 4*4的数组
  3. print(ar[2], '数组轴数为%i' %ar[2].ndim) # 切片为下一维度的一个元素,所以是一维数组
  4. print(ar[2][1]) # 二次索引,得到一维数组中的一个值
  5. print(ar[1:3], '数组轴数为%i' %ar[1:3].ndim) # 切片为两个一维数组组成的二维数组
  6. print(ar[2,2]) # 切片数组中的第三行第三列 → 10
  7. print(ar[:2,1:]) # 切片数组中的1,2行、2,3,4列 → 二维数组
  8. print('-----')

输出结果:

  1. [[ 0 1 2 3]
  2. [ 4 5 6 7]
  3. [ 8 9 10 11]
  4. [12 13 14 15]] 数组轴数为2
  5. [ 8 9 10 11] 数组轴数为1
  6. 9
  7. [[ 4 5 6 7]
  8. [ 8 9 10 11]] 数组轴数为2
  9. 10
  10. [[1 2 3]
  11. [5 6 7]]
  12. -----

3.三维数组的索引及切片

  1. ar = np.arange(8).reshape(2,2,2)
  2. print(ar, '数组轴数为%i' %ar.ndim) # 2*2*2的数组
  3. print('\n')
  4. print(ar[0], '数组轴数为%i' %ar[0].ndim) # 三维数组的下一个维度的第一个元素 → 一个二维数组
  5. print(ar[0][0], '数组轴数为%i' %ar[0][0].ndim) # 三维数组的下一个维度的第一个元素下的第一个元素 → 一个一维数组
  6. print(ar[0][0][1], '数组轴数为%i' %ar[0][0][1].ndim)

输出结果:

  1. [[[0 1]
  2. [2 3]]
  3.  
  4. [[4 5]
  5. [6 7]]] 数组轴数为3
  6.  
  7. [[0 1]
  8. [2 3]] 数组轴数为2
  9. [0 1] 数组轴数为1
  10. 1 数组轴数为0

4. 布尔型索引及切片

  1. # 布尔型索引及切片
  2.  
  3. ar = np.arange(12).reshape(3,4)
  4. i = np.array([True,False,True])
  5. j = np.array([True,True,False,False])
  6. print(ar)
  7. print(i)
  8. print(j)
  9. print(ar[i,:]) # 在第一维度做判断,只保留True,这里第一维度就是行,ar[i,:] = ar[i](简单书写格式)
  10. print(ar[:,j]) # 在第二维度做判断,这里如果ar[:,i]会有警告,因为i是3个元素,而ar在列上有4个
  11. # 布尔型索引:以布尔型的矩阵去做筛选
  12.  
  13. m = ar > 5
  14. print(m) # 这里m是一个判断矩阵
  15. print(ar[m]) # 用m判断矩阵去筛选ar数组中>5的元素 → 重点!后面的pandas判断方式原理就来自此处

输出结果:

  1. [[ 0 1 2 3]
  2. [ 4 5 6 7]
  3. [ 8 9 10 11]]
  4. [ True False True]
  5. [ True True False False]
  6. [[ 0 1 2 3]
  7. [ 8 9 10 11]]
  8. [[0 1]
  9. [4 5]
  10. [8 9]]
  11. [[False False False False]
  12. [False False True True]
  13. [ True True True True]]
  14. [ 6 7 8 9 10 11]

5.数组索引及切片的值更改、复制

  1. ar = np.arange(10)
  2. print(ar)
  3. ar[5] = 100
  4. ar[7:9] = 200
  5. print(ar)
  6. # 一个标量赋值给一个索引/切片时,会自动改变/传播原始数组
  7.  
  8. ar = np.arange(10)
  9. b = ar.copy()
  10. b[7:9] = 200
  11. print(ar)
  12. print(b)
  13. # 复制

输出结果:

  1. [0 1 2 3 4 5 6 7 8 9]
  2. [ 0 1 2 3 4 100 6 200 200 9]
  3. [0 1 2 3 4 5 6 7 8 9]
  4. [ 0 1 2 3 4 5 6 200 200 9]

Numpy 索引及切片的更多相关文章

  1. numpy 索引和切片

    一.取行 1.单行 数组[index, :] # 取第index+1行 例子 import numpy as np arr1 = np.arange(0, 24).reshape(4, 6) # 取第 ...

  2. numpy之索引和切片

    索引和切片 一维数组 一维数组很简单,基本和列表一致. 它们的区别在于数组切片是原始数组视图(这就意味着,如果做任何修改,原始都会跟着更改). 这也意味着,如果不想更改原始数组,我们需要进行显式的复制 ...

  3. Numpy系列(四)- 索引和切片

    Python 中原生的数组就支持使用方括号([])进行索引和切片操作,Numpy 自然不会放过这个强大的特性.  单个元素索引 1-D数组的单元素索引是人们期望的.它的工作原理与其他标准Python序 ...

  4. NumPy学习(索引和切片,合并,分割,copy与deep copy)

    NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...

  5. Numpy:索引与切片

    numpy基本的索引和切片 import numpy as np arr = np.array([1,2,3,555,666,888,10]) arr array([ 1, 2, 3, 555, 66 ...

  6. NumPy 学习 第二篇:索引和切片

    数组索引是指使用中括号 [] 来定位数据元素,不仅可以定位到单个元素,也可以定位到多个元素.索引基于0,并接受从数组末尾开始索引的负索引. 举个例子,正向索引从0开始,从数组开始向末尾依次加1递增:负 ...

  7. numpy数组的索引和切片

    numpy数组的索引和切片 基本切片操作 >>> import numpy as np >>> arr=np.arange(10) >>> arr ...

  8. Numpy数组基本操作(数组索引,数组切片以及数组的形状,数组的拼接与分裂)

    一:数组的属性 每个数组都有它的属性,可分为:ndim(数组的维度),shape(数组每个维度的大小),size(数组的总大小),dtype(数组数据的类型) 二:数组索引 和python列表一样,N ...

  9. Numpy学习二:数组的索引与切片

    1.一维数组索引与切片#创建一维数组arr1d = np.arange(10)print(arr1d) 结果:[0 1 2 3 4 5 6 7 8 9] #数组的索引从0开始,通过索引获取第三个元素a ...

随机推荐

  1. Redis的原子自增性

    INCR key 将 key 中储存的数字值增一. 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作. 如果值包含错误的类型,或字符串类型的值不能表示为数字,那 ...

  2. jquery 根据日期计算年龄

    <script type="text/javascript"> //jquery页面加载完成后,根据后端的出生日期,计算年龄 $(function () { // 获得 ...

  3. 背景图片之background的用法

    常用的background背景属性有: background-color 设置颜色作为对象背景颜色background-image 设置图片作为背景图片background-repeat 设置背景平铺 ...

  4. html:<link> 标签中的 media 属性

    HTML <link> 标签的 media 属性 定义和用法 media 属性规定被链接文档将显示在什么设备上. media 属性用于为不同的媒介类型规定不同的样式. media属性值 ( ...

  5. ubuntu16.04安装中文输入法(转)

    转自: https://zhidao.baidu.com/question/619127469641961052.html ubuntu没有预装中文输入法,需要自己安装 sudo apt instal ...

  6. QT Creater 配色方案及下载

    打开QT Creater的工具--选项--文本编辑器--字体和颜色,复制一份配色方案:Vim (dark) ->Vim (dark) (copy) 更改想更改的任何内容的配色.其中,修改后的文件 ...

  7. robotframework实战三--自定义关键字

    在rf的实战1中,我的登录获取验证码就使用了自定义关键字,具体怎么做的,如下 1.新建文件夹 新建一个文件夹,我的MyLibrary,并且存放在site-packages下 2.编写代码 在pytho ...

  8. jquery插入第一个元素? [问题点数:20分,结帖人zsw19909001]

    jquery插入第一个元素? [问题点数:20分,结帖人zsw19909001] JavaScript code   ? 1 2 3 4 5 <div id="contain" ...

  9. POJ-1422 Air Raid---二分图匹配&最小路径覆盖

    题目链接: https://vjudge.net/problem/POJ-1422 题目大意: 有n个点和m条有向边,现在要在点上放一些伞兵,然后伞兵沿着图走,直到不能走为止 每条边只能是一个伞兵走过 ...

  10. 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 ...