zoukankan      html  css  js  c++  java
  • numpy系列(5)-索引、切片、排序、搜索和计数

    1. 数组索引

    • 一维:假设有a=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
      • i. 获取索引值为 1 的数据:
    a[1] // 1
    
      • ii. 分别获取索引值为 1,2,3 的数据:
    a[[1, 2, 3]]  // array([1, 2, 3])
    
    • 二维:假设有a=
      array([[ 0, 1, 2, 3, 4],
      [ 5, 6, 7, 8, 9],
      [10, 11, 12, 13, 14],
      [15, 16, 17, 18, 19]])
      • i. 获取第 2 行,第 3 列的数据:
    a[1,2] 或者 a[1][2]  // 7
    
    # 注意:若是python的list类型正确语法只能是a[1][2]
    
      • ii. 索引多个元素值:
    a[[1, 2], [3, 4]]  // 获取a[1,3]和a[2,4]的值:array([ 8, 14])
    
    • 三维:假设有a=
      array([[[ 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, 25, 26],
      [27, 28, 29]]])
      • i. 索引多个元素值:
    a[[0, 1], [1, 2], [1, 2]]  // 获取a[0,1,1]和a[1,2,2]的值:array([ 4, 23])
    

    2. 数组切片:与python的list切片操作是一样的

    Ndarray[start:stop:step]:[start:stop:step] 分别代表 [起始索引:截至索引:步长]
    列如 a[:, ::2]:按步长为 2 取所有列和所有行的数据
    当超过 3 维或更多维时,用 2 维数据的切片方式类推即可。
    
    example:
            a=
                array([[ 0,  1,  2,  3,  4],
                [ 5,  6,  7,  8,  9],
                [10, 11, 12, 13, 14],
                [15, 16, 17, 18, 19]])
            a[0:3, 2:4]=
                array([[ 2,  3],
                [ 7,  8],
                [12, 13]])
    

    3. 排序

    numpy.sort(a, axis=-1, kind='quicksort', order=None)
    ○ axis:要排序的轴。如果为None,则在排序之前将数组铺平。默认值为 -1,沿最后一个轴排序。
    ○ kind:{'quicksort','mergesort','heapsort'},排序算法。默认值为 quicksort。
    numpy.lexsort(keys ,axis):使用多个键进行间接排序。
    numpy.argsort(a ,axis,kind,order):沿给定轴执行间接排序。
    numpy.msort(a):沿第 1 个轴排序。
    numpy.sort_complex(a):针对复数排序。
    

    4. 搜索和计数

    ○ argmax(a ,axis,out):返回数组中指定轴的最大值的索引。
    ○ nanargmax(a ,axis):返回数组中指定轴的最大值的索引,忽略 NaN。
    ○ argmin(a ,axis,out):返回数组中指定轴的最小值的索引。
    ○ nanargmin(a ,axis):返回数组中指定轴的最小值的索引,忽略 NaN。
    ○ argwhere(a):返回数组中非 0 元素的索引,按元素分组。
    ○ nonzero(a):返回数组中非 0 元素的索引。
    ○ flatnonzero(a):返回数组中非 0 元素的索引,并铺平。
    ○ where(条件,x,y):根据指定条件,从指定行、列返回元素。
    ○ searchsorted(a,v ,side,sorter):查找要插入元素以维持顺序的索引。
    ○ extract(condition,arr):返回满足某些条件的数组的元素。
    ○ count_nonzero(a):计算数组中非 0 元素的数量。
    
  • 相关阅读:
    elemenui数据表格加入计数器和输入框
    递归求阶乘
    递归累和
    递归
    file类
    Object类
    首页背景图
    异常的处理
    数据结构有什么用?常见的数据结构有什么?
    线程、并发、并行、进程是什么,以及如何开启新的线程?
  • 原文地址:https://www.cnblogs.com/thgpddl/p/14240424.html
Copyright © 2011-2022 走看看