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读取txt数据的操作步骤

    下面是Python读取txt数据的操作步骤的完整攻略: 步骤一:打开txt文件 使用Python内置的open()函数来打开txt文件,语法如下: f = open(‘文件路径/文件名.txt’) 其中,要读取的txt文件名和路径要写在引号中。如果txt文件在当前工作目录下,则只需要写文件名。 步骤二:读取txt文件内容 1. 一次性读取 使用read()函…

    python 2023年5月14日
    00
  • Python笔记之Scipy.stats.norm函数使用解析

    Scipy是一个Python科学计算库,其中包含了许多用于统计分析的函数。其中,scipy.stats.norm函数是用于正态分布的概率密度函数、累积分布函数和逆累积分布函数的实现。下面是使用scipy.stats.norm函数的完整攻略: 导入Scipy 在Python脚本中导入Scipy: import scipy from scipy import s…

    python 2023年5月14日
    00
  • keras CNN卷积核可视化,热度图教程

    Keras CNN卷积核可视化,热度图教程 卷积神经网络(CNN)是当前深度学习中最常用的神经网络之一。在训练一个CNN模型时,我们通常会遇到一些问题,比如如何确定哪些特征在哪些卷积层被检测到、卷积层输出特征图的质量和稳定性等。在解决这些问题时,可视化卷积核和特征图是一种非常有效的方法。 本文将介绍如何使用Keras和TensorFlow在CNN中可视化卷积…

    python 2023年5月13日
    00
  • keras实现VGG16方式(预测一张图片)

    Keras实现VGG16方式(预测一张图片) VGG16是一个非常流行的卷积神经网络模型,它在ImageNet数据集上取得了很好的成绩。在本攻略中,我们将使用Keras实现VGG16模型,并使用它来预测一张图片。 步骤一:导入必要的库和模块 我们需要导入Keras库和一些其他必要的库和模块。下面是导入这些库和模块的代码: from keras.applica…

    python 2023年5月14日
    00
  • pytorch 转换矩阵的维数位置方法

    以下是关于“PyTorch转换矩阵的维数位置方法”的完整攻略。 背景 PyTorch是一个流行的深度学框架,可以用于构建神经网络和深度学习任务。在深度学习任务,经常需要对矩阵进行转换,以满足不同的需求。本攻略介绍如何使用PyTorch转换矩阵的维位置。 步骤 步骤一:创建矩阵 在使用PyTorch矩阵的维数位置之前,需要创建一个矩阵。以下是代码: impor…

    python 2023年5月14日
    00
  • NumPy 如何生成多维数组的方法

    NumPy是Python中用于科学计算的一个重要库,它提供了许多用于数组操作的函数和方法。在NumPy中,可以使用多种方法生成多维数组。本文将详细讲NumPy生成多维数组的几种方法,包括array()、zeros()、ones()、empty()、eye()等方面。 array() array()方法将列表或元组转换为数组,返回一个新的数组。下面是一个示例:…

    python 2023年5月14日
    00
  • python numpy库np.percentile用法说明

    以下是关于“python numpy库np.percentile用法说明”的完整攻略。 背景 在numpy库中,我们可以使用np.percentile()函数来计算数组中的百分位数。本攻略将介绍如使用np.percentile()函数,并提供两个示例来演示如何使用np.percentile()函数计算数组中的百位数。 np.percentile()函数 np…

    python 2023年5月14日
    00
  • Numpy中创建数组的9种方式小结

    在NumPy中,有多种方法可以创建数组。以下是Numpy中创建数组的9种方式的详细攻略: 使用numpy.array()函数 numpy.array()函数是创建数组的最基本方法之一。它接受一个序列参数,例如列表或元组,并返回一个NumPy数组。以下是一个使用numpy.array()函数创建数组的示例: import numpy as np # 创建一个一…

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