SciPy - find() 方法



SciPy 的 find() 方法用于查找满足给定条件的数组元素索引。也可以说,此方法返回包含给定字符串的 **物理常数** 键列表。

在 **NumPy** 中,find() 方法与 **nonzero()** 和 **where()** 类似。以下是这些方法的描述:

  • **nonzero()**: 返回数组中非零元素的索引。
  • **where()**: 此方法根据输入数组元素的索引满足给定条件。

语法

以下是 SciPy **find()** 方法的语法:

find(key)

参数

此函数只接受一个参数:

  • **key**: key 是一个充当字符串的物理常数。

返回值

它有两种情况:

  • 根据特定模块返回结果。
  • 返回物理常数的结果。

示例 1

以下示例说明了 SciPy **find()** 方法的用法。

from scipy.constants import find, physical_constants
result = find('boltzmann')
print(result)

输出

以上代码产生以下结果:

['Boltzmann constant', 'Boltzmann constant in Hz/K', 'Boltzmann constant in eV/K', 'Boltzmann constant in inverse meter per kelvin', 'Stefan-Boltzmann constant']

示例 2

这里,我们使用另一个物理常数作为字符串参数来显示结果。

from scipy.constants import find, physical_constants
result = find('radius')
print(result)

输出

以上代码产生以下结果:

['Bohr radius', 'classical electron radius', 'deuteron rms charge radius', 'proton rms charge radius']

示例 3

这里,我们创建一个稀疏矩阵来填充行和列的数据,并使用 find() 获取非零元素的行索引、列索引和值。

稀疏矩阵是一种包含大部分为 0 值的矩阵。因此,这种矩阵通常用于机器学习领域,它可以节省计算时间和存储空间。
import numpy as np
from scipy.sparse import csr_matrix, find

# Create a sparse matrix
A = csr_matrix([[0, 0, 1], [1, 0, 0], [0, 2, 0]])

row, col, data = find(A)

print("The row indices of non-zero elements:", row)
print("The column indices of non-zero elements:", col)
print("The values of non-zero elements:", data)

输出

以上代码产生以下结果:

The row indices of non-zero elements: [0 1 2]
The column indices of non-zero elements: [2 0 1]
The values of non-zero elements: [1 1 2
scipy_reference.htm
广告