• 初探numpy——切片和索引


    切片

    import numpy as np
    
    # 使用切片参数start:stop:step来进行切片操作
    a_array=np.arange(10)
    print(a_array,'
    ')
    
    b_array=a_array[1:10:2]
    print(b_array,'
    ')
    
    c_array=a_array[2:]
    print(c_array,'
    ')
    
    d_array=a_array[:5]
    print(d_array)
    
    [0 1 2 3 4 5 6 7 8 9] 
    
    [1 3 5 7 9] 
    
    [2 3 4 5 6 7 8 9] 
    
    [0 1 2 3 4]
    
    # 多维数组切片操作
    
    a_array=np.array([[1,2,3],[4,5,6],[7,8,9]])
    print(a_array,'
    ')
    
    # 从a_array[n:]开始切割
    print(a_array[1:],'
    ')
    
    # 第n列元素
    print(a_array[...,0],'
    ')
    
    # 第n行元素
    print(a_array[1,...],'
    ')
    
    # 第n列及剩下的所有元素
    print(a_array[...,1:],'
    ')
    
    # 第n行及剩下的所有元素
    print(a_array[1:,...])
    
    [[1 2 3]
     [4 5 6]
     [7 8 9]] 
    
    [[4 5 6]
     [7 8 9]] 
    
    [1 4 7] 
    
    [4 5 6] 
    
    [[2 3]
     [5 6]
     [8 9]] 
    
    [[4 5 6]
     [7 8 9]]
    

    numpy高级索引

    # 整数数组索引
    
    array=np.array([[1,2,3],[4,5,6],[7,8,9]])
    print(array,'
    ')
    
    #获取(0,0),(1,1),(2,2)处的元素
    print(array[[0,1,2],[0,1,2]],'
    ')
    
    #获取(0,0),(0,2),(2,0),(2,2)处的元素
    print(array[np.array([[0,0],[2,2]]),np.array([[0,2],[0,2]])])
    
    [[1 2 3]
     [4 5 6]
     [7 8 9]] 
    
    [1 5 9] 
    
    [[1 3]
     [7 9]]
    
    # 切片
    
    array=np.array([[1,2,3],[4,5,6],[7,8,9]])
    print(array,'
    ')
    
    print(array[0:2,0:2],'
    ')
    
    print(array[...,0:2])
    
    [[1 2 3]
     [4 5 6]
     [7 8 9]] 
    
    [[1 2]
     [4 5]] 
    
    [[1 2]
     [4 5]
     [7 8]]
    
    # 布尔索引
    
    array=np.array([[1,2,3],[4,5,6],[7,8,9]])
    print(array,'
    ')
    
    #获取大于3的元素
    print(array[array>3])
    
    [[1 2 3]
     [4 5 6]
     [7 8 9]] 
    
    [4 5 6 7 8 9]
    
    # 花式索引
    
    array=np.arange(25).reshape(5,5)
    print(array,'
    ')
    
    #获取第1,2,3行元素
    print(array[[1,2,3]],'
    ')
    
    #获取后三行元素
    print(array[[-1,-2,-3]])
    
    [[ 0  1  2  3  4]
     [ 5  6  7  8  9]
     [10 11 12 13 14]
     [15 16 17 18 19]
     [20 21 22 23 24]] 
    
    [[ 5  6  7  8  9]
     [10 11 12 13 14]
     [15 16 17 18 19]] 
    
    [[20 21 22 23 24]
     [15 16 17 18 19]
     [10 11 12 13 14]] 
    
    # 还是花式索引
    
    array=np.arange(25).reshape(5,5)
    print(array,'
    ')
    
    # 先选取行,再将列排序
    print(array[[2,1,3]][:,[2,3,1,4,0]],'
    ')
    
    # 用numpy.ix_()函数,输入两个数组,产生笛卡尔积的映射关系
    print(array[np.ix_([2,1,3],[2,3,1,4,0])])
    
    [[ 0  1  2  3  4]
     [ 5  6  7  8  9]
     [10 11 12 13 14]
     [15 16 17 18 19]
     [20 21 22 23 24]] 
    
    [[12 13 11 14 10]
     [ 7  8  6  9  5]
     [17 18 16 19 15]] 
    
    [[12 13 11 14 10]
     [ 7  8  6  9  5]
     [17 18 16 19 15]]
  • 相关阅读:
    Gvim快捷键学习
    一步一步学习Vim 全图解释
    经典vim插件功能说明、安装方法和使用方法介绍
    中国数学数字图书馆
    RQNOJ第一题---PID1 / 明明的随机数
    gdb常用命令
    linux c下mysql编程样例
    linux c编程 -- 线程互斥
    linux c多线程编程范例
    数据结构 -- 可重用模块的接口设计模板
  • 原文地址:https://www.cnblogs.com/LRainner/p/13204308.html
Copyright © 2020-2023  润新知