本文简要介绍 python 语言中 scipy.linalg.bandwidth
的用法。
用法:
scipy.linalg.bandwidth(a)#
返回二维数值数组的下限和上限带宽。
- a: ndarray
大小为 (N, M) 的输入数组
- lu: 元组
指示较低和较高带宽的整数的 2 元组。零表示该侧(三角形)没有子或super-diagonal,并且对于N行(N-1)表示该侧已满。相同的示例适用于具有 (M-1) 的上三角形部分。
- TypeError
如果不支持数组的数据类型,特别是NumPy float16、float128 和complex256 数据类型。
参数 ::
返回 ::
抛出 ::
注意:
这个辅助函数只是简单地在数组上运行,寻找数组中是否存在带状结构的非零条目。因此,性能取决于非零条目的密度以及memory-layout。 Fortran 或 C 连续数组处理得最好,否则会受到额外的随机内存访问成本的影响。
策略是只在上下三角部分分别寻找未测试的带元素;根据内存布局,我们按行或按列扫描。此外,假设我们正在扫描行,并且在第 6 行中,第 4 个条目是非零的,那么在随后的行上,水平搜索仅针对该带条目进行,因为我们知道该带已被占用。因此,一个完全密集的矩阵扫描代价是 n 量级的。
例子:
>>> import numpy as np >>> from scipy.linalg import bandwidth >>> A = np.array([[3., 0., 0., 0., 0.], ... [0., 4., 0., 0., 0.], ... [0., 0., 5., 1., 0.], ... [8., 0., 0., 6., 2.], ... [0., 9., 0., 0., 7.]]) >>> bandwidth(A) (3, 1)
相关用法
- Python SciPy linalg.bicgstab用法及代码示例
- Python SciPy linalg.bicg用法及代码示例
- Python SciPy linalg.block_diag用法及代码示例
- Python SciPy linalg.eigvalsh_tridiagonal用法及代码示例
- Python SciPy linalg.cdf2rdf用法及代码示例
- Python SciPy linalg.LaplacianNd用法及代码示例
- Python SciPy linalg.solve_circulant用法及代码示例
- Python SciPy linalg.polar用法及代码示例
- Python SciPy linalg.clarkson_woodruff_transform用法及代码示例
- Python SciPy linalg.rsf2csf用法及代码示例
- Python SciPy linalg.hessenberg用法及代码示例
- Python SciPy linalg.tril用法及代码示例
- Python SciPy linalg.triu用法及代码示例
- Python SciPy linalg.svd用法及代码示例
- Python SciPy linalg.ishermitian用法及代码示例
- Python SciPy linalg.invhilbert用法及代码示例
- Python SciPy linalg.factorized用法及代码示例
- Python SciPy linalg.lu_factor用法及代码示例
- Python SciPy linalg.SuperLU用法及代码示例
- Python SciPy linalg.lsqr用法及代码示例
- Python SciPy linalg.cho_factor用法及代码示例
- Python SciPy linalg.fractional_matrix_power用法及代码示例
- Python SciPy linalg.eig_banded用法及代码示例
- Python SciPy linalg.tanhm用法及代码示例
- Python SciPy linalg.orthogonal_procrustes用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.linalg.bandwidth。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。