大数据知识体系
首页
数据结构与算法
  • JVM
  • Java
  • Scala
  • Python
设计模式
  • MySQL
  • Redis
  • HDFS
  • HBase
  • ClickHouse
  • ElasticSearch
  • Iceberg
  • Hudi
  • Spark
  • Flink
  • Hive
  • Yarn
  • Zookeeper
  • Maven
  • Git
  • 数据仓库
  • 用户画像
  • 指标体系
数据治理
关于
首页
数据结构与算法
  • JVM
  • Java
  • Scala
  • Python
设计模式
  • MySQL
  • Redis
  • HDFS
  • HBase
  • ClickHouse
  • ElasticSearch
  • Iceberg
  • Hudi
  • Spark
  • Flink
  • Hive
  • Yarn
  • Zookeeper
  • Maven
  • Git
  • 数据仓库
  • 用户画像
  • 指标体系
数据治理
关于
  • JVM

    • JVM 架构
    • JVM 类加载机制
    • JVM 运行时数据区
    • JVM 垃圾回收机制
    • JVM 性能监控与调优
    • JVM 常见错误
  • Java

    • Java基础

      • Java 基础知识
      • Java 基础 - 枚举类
      • Java 基础 - 异常处理
      • Java 基础 - 泛型
      • Java 基础 - 反射
      • Java 基础 - 代理模式
      • Java 基础 - 注解
    • Java集合

    • Java并发编程

    • Java 开发规范
  • Scala

    • Scala 概述
  • Python

    • Numpy

      • 初识 Numpy
      • ndarray 的创建方式
      • NumPy 的数据类型
      • NumPy 数组计算
      • 拷贝
      • 索引和切片
      • 数学和统计方法
      • 数组形状变换
      • 通用函数
      • 排序
      • 搜索和计数
        • 搜索
        • 计数
      • 线性代数
      • 伪随机数生成
      • 广播
      • 文件输入和输出
    • Pandas

      • 初识 Pandas
      • 认识 Series 和 DataFrame
      • Series 和 DataFrame 增删改查
      • Index对象增删改查
      • 普通列和行Index相互转化
      • 快速查看整体信息
      • 数值运算
      • 合并数据集
      • 数值统计与聚合
      • 分组聚合
      • 分类类型
      • 排序和排名
      • 时间序列
      • 文件输入与输出
      • 缺失值处理
      • 字符串处理
      • pandas sql
      • 其它
  • 语言基础
  • Python
  • Numpy
Will
2022-08-04
目录

搜索和计数

# 搜索

  • argmax(a[, axis, out])

    返回沿轴的最大值的索引

  • nanargmax(a[, axis])

    返回指定轴上最大值的索引,忽略 NAN

  • argmin(a[, axis, out])

    返回沿轴的最小值的索引

  • nanargmin(a[, axis])

    返回指定轴上的最小值的索引,忽略 NAN

  • argwhere(a)

    返回按元素分组的非零数组元素的索引。

  • nonzero(a)

    返回非零元素的索引

  • flatnonzero(a)

    返回 a 的展平版本中非零的索引

  • where(condition, [x, y])

    返回元素,可以是 x 或 y,具体取决于条件

  • searchsorted(a, v[, side, sorter])

    查找应插入元素以维护顺序的索引

  • extract(condition, arr)

    返回满足某些条件的数组元素

# 计数

  • count_nonzero(a[, axis])

    计算数组 a 中的非零值的数量

import numpy as np
1
arr = np.arange(6).reshape(2,3) + 10
arr
1
2
array([[10, 11, 12],
       [13, 14, 15]])
np.argmax(arr) # axis默认为None,返回flatten之后的索引
1
5
np.argmax(arr, axis=0)
1
array([1, 1, 1])
np.argmax(arr, axis=1)
1
array([2, 2])
# argmin类似于argmax
np.argmin(arr)
1
2
0
np.argmin(arr, axis=1)
1
array([0, 0])
arr2 = np.array([[10, np.NaN, 11, 12],
                 [13, 14, 15, np.NaN]])
arr2
1
2
3
array([[10., nan, 11., 12.],
       [13., 14., 15., nan]])
np.argmax(arr2, axis=0) # 不会忽略NaN值
1
array([1, 0, 1, 1])
np.nanargmax(arr2, axis=0)
1
array([1, 1, 1, 0])
np.argwhere(arr > 12) # 返回的是元素的坐标
1
array([[1, 0],
       [1, 1],
       [1, 2]])
np.nonzero(arr) # 返回数组的元组
1
(array([0, 0, 0, 1, 1, 1]), array([0, 1, 2, 0, 1, 2]))
np.flatnonzero(arr) # 等效于 np.nonzero(np.ravel(arr))[0]
1
array([0, 1, 2, 3, 4, 5])
np.nonzero(np.ravel(arr))[0]
1
array([0, 1, 2, 3, 4, 5])
arr3 = np.array([1, 2, 3, 4, 5])
arr4 = np.array(['a', 'b', 'c', 'd', 'e'])
cond = np.array([True, False, True, False, True])

result = np.where(cond, arr3, arr4)
result
1
2
3
4
5
6
array(['1', 'b', '3', 'd', '5'], dtype='<U21')
# 将arr1中大于3的全部变为-3
np.where(arr3 > 3, -3, arr3)
1
2
array([ 1,  2,  3, -3, -3])
# 将arr1中大于3的全部变为该值的相反数
np.where(arr3 > 3, -arr3, arr3)
1
2
array([ 1,  2,  3, -4, -5])
np.searchsorted([1,2,3,4,5], 3)
1
2
np.searchsorted([1,2,3,4,5], 3, side='right')
1
3
np.searchsorted([1,2,3,4,5], [-10, 10, 2, 3])
1
array([0, 5, 1, 2])
np.extract(arr > 12, arr)
1
array([13, 14, 15])
np.count_nonzero([[0,1,7,0,0],[3,0,0,2,19]]) # 默认axis为None,统计flatten之后的数组
1
5
np.count_nonzero([[0,1,7,0,0],[3,0,0,2,19]], axis=0)
1
array([1, 1, 1, 1, 1])
np.count_nonzero([[0,1,7,0,0],[3,0,0,2,19]], axis=1)
1
array([2, 3])
上次更新: 2023/11/01, 03:11:44

← 排序 线性代数→

Theme by Vdoing | Copyright © 2022-2023 Will 蜀ICP备2022002285号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式