zoukankan      html  css  js  c++  java
  • Numpy数组索引与切片

    Numpy数组索引与切片

    1. `ndarray`对象的内容可以通过`索引`或`切片`来获取和修改,就像 Python 的内置容器对象一样。
    2. `一维数组`:一维数组比较简单,看起来和python列表很类似。
    3. `二维数组`:每个索引值对应的元素不在是一个值,而是一个一维数组
    4. `多维数组
     
    import numpy as np
    a = np.arange(0,9)
    print('一维数组操作')
    print(a)
    print('索引:',a[2])
    print('切片:',a[2:5])
    a[2:5]=88
    print('赋值:',a)
    print('*'*30)
    
    print('二维数组操作')
    b = a.reshape(3,3)
    print(b)
    print('索引:获取的一维数组',b[2]) #获取的一个一维数组
    print('分割列表去获取的某一个值',b[2,2]) #获取的某一个值
    print('通过递归的方式获取的某一个值',b[2][2]) #获取的某一个值
    print('按列获取切片:',b[:,2])
    print('按行获取切片:',b[2,:])
    print('*'*30)
    
    print('多维数组操作')
    c = np.arange(1,19).reshape(3,3,2)
    print(c)
    print('索引:获得一个二维数组 获取第1层',c[2])
    print('索引:获得一个一维数组 获取第1层的第1行',c[2,2])
    print('索引:获得一个值',c[2,2,1])
    
     
    一维数组操作
    [0 1 2 3 4 5 6 7 8]
    索引: 2
    切片: [2 3 4]
    赋值: [ 0  1 88 88 88  5  6  7  8]
    ******************************
    二维数组操作
    [[ 0  1 88]
     [88 88  5]
     [ 6  7  8]]
    索引:获取的一维数组 [6 7 8]
    分割列表去获取的某一个值 8
    通过递归的方式获取的某一个值 8
    按列获取切片: [88  5  8]
    按行获取切片: [6 7 8]
    ******************************
    多维数组操作
    [[[ 1  2]
      [ 3  4]
      [ 5  6]]
    
     [[ 7  8]
      [ 9 10]
      [11 12]]
    
     [[13 14]
      [15 16]
      [17 18]]]
    索引:获得一个二维数组 获取第1层 [[13 14]
     [15 16]
     [17 18]]
    索引:获得一个一维数组 获取第1层的第1行 [17 18]
    索引:获得一个值 18
    ******************************
    
     

    Numpy布尔索引和花式索引

    1. **布尔索引**:指的是一个由布尔值组成的数组可以作为一个数组的索引,返回的数据为`True`值对应位置的值。**布尔值数组长度必须和数组轴索引长度一致**。
    2. **花式索引**:指的是用`整数数组`进行数据索引。根据索引数组的值作为目标数组的某个轴的下标来取值。对于使用一维整型数组作为索引,如果目标是一维数组,那么索引的结果就是对应位置的元素;如果目标是二维数组,那么就是对应下标的行
    `花式索引和切片不一样,它总是将数据复制到一个新的数组中。!!!`
     
    import numpy as np
    a = np.arange(1,10).reshape(3,3)
    np.random.shuffle(a)
    print(a)
    print('布尔索引先返回一个true、false类型数据',a>5)
    print('在根据结果返回元素值为True的元素',a[a>5],end='
    **************
    ')
    
    print('花式索引',end='
    **************
    ')
    print('花式索引',a[[0,2]])
    print('花式索引',a[[-1,-2]])
    print('花式索引:取出(0,2),(2,1),(1,2)----',a[[0,2,1],[2,1,2]])
    
     
    [[4 5 6]
     [7 8 9]
     [1 2 3]]
    布尔索引先返回一个true、false类型数据 [[False False  True]
     [ True  True  True]
     [False False False]]
    在根据结果返回元素值为True的元素 [6 7 8 9]
    **************
    花式索引
    **************
    花式索引 [[4 5 6]
     [1 2 3]]
    花式索引 [[1 2 3]
     [7 8 9]]
    花式索引:取出(0,2),(2,1),(1,2)---- [6 2 9]
    
    志同道合一起学习,欢迎加入QQ群:878749917
  • 相关阅读:
    Quartz.Net系列(二):介绍、简单使用、对比Windows计划任务
    Quartz.Net系列(一):Windows任务计划程序
    Linux下swap到底有没有必要使用
    Linux服务器有大量的TIME_WAIT状态
    HTTP请求头中的X-Forwarded-For介绍
    Keepalived实现服务高可用
    Gitlab常规操作
    Git 常用命令
    HTTP常见状态码
    《Docker从入门到跑路》之多阶段构建
  • 原文地址:https://www.cnblogs.com/gujianjian/p/15323449.html
Copyright © 2011-2022 走看看