numpy数组最常用的4个搜索方法

numpy数组最常用的4个搜索方法

NumPy提供了一些搜索和查找数组中元素的方法,包括:

  1. np.where(condition[, x, y]):返回满足条件的元素的下标。可以指定x和y参数,如果不指定,则返回元素下标。
  2. np.argwhere(condition):返回满足条件的元素的下标,与where()方法类似,但返回的是一个包含下标的数组,而不是元组。
  3. np.searchsorted(arr, v[, side, sorter]):返回将值v插入到有序数组arr中的位置,可以指定搜索方向和排序方法。
  4. np.extract(condition, arr):返回满足条件的元素,以一维数组的形式返回。

下面分别进行详细介绍:

np.where(condition[, x, y])

np.where()方法的第一个参数是条件,可以是一个数组或一个条件表达式。它会返回一个由满足条件的元素下标构成的元组或数组,如果指定了x和y参数,则满足条件的元素会被替换为x中的元素,否则将被替换为元素下标。

import numpy as np

# 生成一个随机数组
a = np.random.randint(1, 10, size=(3, 4))
print(a)
# 找到大于5的元素的下标
index = np.where(a > 5)
print(index)
# 替换大于5的元素为0
a[np.where(a > 5)] = 0
print(a)

输出结果:

[[2 2 4 7]
 [4 8 7 1]
 [1 9 9 9]]
(array([0, 1, 1, 2, 2, 2, 2]), array([3, 1, 2, 1, 2, 3, 4]))
[[2 2 4 0]
 [4 0 0 1]
 [1 0 0 0]]

np.argwhere(condition)

np.argwhere()方法返回满足条件的元素的下标,与np.where()方法类似,但返回的是一个包含下标的数组,而不是元组。

示例:

import numpy as np

# 生成一个随机数组
a = np.random.randint(1, 10, size=(3, 4))
print(a)
# 找到大于5的元素的下标
index = np.argwhere(a > 5)
print(index)

输出结果:

[[6 1 6 8]
 [5 5 1 7]
 [2 8 7 5]]
[[0 3]
 [1 0]
 [1 1]
 [1 3]
 [2 1]
 [2 2]]

np.searchsorted(arr, v[, side, sorter])

searchsorted()函数的返回值为一个整数或整数数组,表示插入元素后应该在哪个位置。

如果v的值小于a中的最小元素,则返回0;如果v的值大于a中的最大元素,则返回a的长度。

例如:

import numpy as np

a = np.array([1, 2, 3, 4, 5])
v = 3.5

print(np.searchsorted(a, v, side='left'))  # 输出:3
print(np.searchsorted(a, v, side='right'))  # 输出:3

extract(condition,arr)函数

extract()函数根据指定的条件,从数组中提取满足条件的元素。它返回一个满足条件的一维数组。

下面是一个使用extract()函数的示例:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
condition = arr > 2

print(np.extract(condition, arr))  # 输出:[3 4 5]

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:numpy数组最常用的4个搜索方法 - Python技术站

(3)
上一篇 2023年3月1日 下午9:38
下一篇 2023年3月1日 下午10:00

相关文章

  • Python中Numpy ndarray的使用详解

    Python中Numpy ndarray的使用详解 简介 NumPy是Python中用于科学计算的一个重要的库,它提供了高效的多维数组对象array和于数组和矢量计的函数。本文将详细讲解NumPy中ndarray的使用,包括创建ndarray、ndarray的属性方法、ndarray的索引和片、ndarray的运算和广播、ndarray的转置和重塑,并提供两…

    python 2023年5月14日
    00
  • python+numpy+matplotalib实现梯度下降法

    以下是关于“Python+Numpy+Matplotlib实现梯度下降法”的完整攻略。 背景 梯度下降法是一种常用的优化算法,用于求解函数的最小值。在机器学习中,梯度下降法常用于解决模型的参数。本攻略将详细介绍如何使用 Python、Numpy 和 Matplotlib 实现梯度下降法。 实现梯度下降法的步骤 以下是实现梯度下降法的步骤: 定义损失函数 初始…

    python 2023年5月14日
    00
  • Numpy数值积分的实现

    Numpy数值积分的实现 NumPy是Python中用于科学计算的一个重要库,它提供了许多用于数组操作的函数和方法。其中,积分是NumPy中常用的功能之一,可以用于计算函数的积分值。本文将详细讲解NumPy库中数值的实现方法,包括trapz()、cumtrapz()、quad()等方面。 trapz() trapz()函数可以用于计算一维的积分值,返回一个标…

    python 2023年5月14日
    00
  • numpy中np.nditer、flags=[multi_index] 的用法说明

    以下是关于“numpy中np.nditer、flags=[multi_index]的用法说明”的完整攻略。 背景 在NumPy中,可以使用np.nditer()函数来迭代数组中元素。在本攻略中,我们将介绍如何使用np.nditer()函数以及flags=[multi_index]参数来迭代多维数组中的元素。 实现 np.nditer()函数 np.ndite…

    python 2023年5月14日
    00
  • 关于numpy数组轴的使用详解

    关于NumPy数组轴的使用详解 NumPy是Python中一个重要的科学计算库,提供了高效的多维数组和各种派生对象,以于计算各种函数。在NumPy,轴是一个重要的概念,本文将深入讲解NumPy数组轴的使用,包括轴的定义、轴的操作、轴的变换和轴的应用等知识。 轴的定义 在NumPy中,数组的轴是指的维度。例如,一个二维数组有两个轴,第一个轴是行,第二个轴是列。…

    python 2023年5月13日
    00
  • 解决pytorch DataLoader num_workers出现的问题

    在PyTorch中,DataLoader是一个用于加载数据的工具,可以方便地对数据进行批处理、打乱、并行加载等操作。但是,在使用DataLoader时,有时会出现num_workers参数设置过大导致程序崩溃的问题。以下是解决这个问题的详细攻略: num_workers参数 num_workers参数用于指定DataLoader中用于数据加载的进程数。默认情…

    python 2023年5月14日
    00
  • 讲解Python3中NumPy数组寻找特定元素下标的两种方法

    以下是关于“讲解Python3中NumPy数组寻找特定元素下标的两种方法”的完整攻略。 背景 在NumPy中,我们可以使用两种方法来找特定元素的下标。本攻略介绍这两种方法,并提供两个示例来演示如何使用这些方法。 方法一:使用np.where函数 np.where函数可以返回满足条件的素的下标。以下是使用np.where函数的示例: import numpy …

    python 2023年5月14日
    00
  • Python NumPy教程之二元计算详解

    以下是关于“Python NumPy教程之二元计算详解”的完整攻略。 二元计算 在NumPy中,二元计算是指对两个数组进行的计算。常见二元计算包括加法、减法、法、除法等。面是一些常见的二元计算操作: 加法:a + b 减法:a – b 乘法:a * b 除法:a / b 取余:a % b 求幂:a ** b 比较:a > b、a < b、a ==…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部