本文简要介绍 python 语言中 scipy.linalg.lapack.get_lapack_funcs
的用法。
用法:
scipy.linalg.lapack.get_lapack_funcs(names, arrays=(), dtype=None, ilp64=False)#
从名称中返回可用的 LAPACK 函数对象。
数组用于确定 LAPACK 例程的最佳前缀。
- names: str 或 str 序列
没有类型前缀的 LAPACK 函数的名称。
- arrays: ndarrays 序列,可选
可以给出数组来确定 LAPACK 例程的最佳前缀。如果没有给出,将使用双精度例程,否则将使用数组中最通用的类型。
- dtype: str 或 dtype,可选
数据类型说明符。如果数组非空,则不使用。
- ilp64: {真,假,‘preferred’},可选
是否返回 ILP64 例程变体。选择 ‘preferred’ 返回 ILP64 例程(如果可用),否则返回 32 位例程。默认值:假
- funcs: 列表
包含找到的函数的列表。
参数 ::
返回 ::
注意:
该例程自动在 Fortran/C 接口之间进行选择。 Fortran 代码尽可能用于具有列主顺序的数组。在所有其他情况下,首选 C 代码。
在LAPACK中,命名约定是所有函数都以类型前缀开头,这取决于主矩阵的类型。这些可以分别是 NumPy 类型 {float32、float64、complex64、complex128} 的 {‘s’, ‘d’, ‘c’, ‘z’} 之一,并存储在返回函数的属性
typecode
中。例子:
假设我们想使用“?lange”例程来计算数组的选定范数。我们传递我们的数组以获得正确的‘lange’ 风味。
>>> import numpy as np >>> import scipy.linalg as LA >>> rng = np.random.default_rng()
>>> a = rng.random((3,2)) >>> x_lange = LA.get_lapack_funcs('lange', (a,)) >>> x_lange.typecode 'd' >>> x_lange = LA.get_lapack_funcs('lange',(a*1j,)) >>> x_lange.typecode 'z'
几个 LAPACK 例程在其内部 WORK 数组具有最佳大小时效果最佳(大到足以进行快速计算,小到足以避免内存浪费)。此大小还由对函数的专用查询确定,该函数通常包装为独立函数,通常表示为
###_lwork
。以下是?sysv
的示例>>> a = rng.random((1000, 1000)) >>> b = rng.random((1000, 1)) * 1j >>> # We pick up zsysv and zsysv_lwork due to b array ... xsysv, xlwork = LA.get_lapack_funcs(('sysv', 'sysv_lwork'), (a, b)) >>> opt_lwork, _ = xlwork(a.shape[0]) # returns a complex for 'z' prefix >>> udut, ipiv, x, info = xsysv(a, b, lwork=int(opt_lwork.real))
相关用法
- Python SciPy lapack.cgees用法及代码示例
- Python SciPy lapack.zgges用法及代码示例
- Python SciPy lapack.dgees用法及代码示例
- Python SciPy lapack.zgees用法及代码示例
- Python SciPy lapack.cgges用法及代码示例
- Python SciPy lapack.dgges用法及代码示例
- Python SciPy lapack.sgees用法及代码示例
- Python SciPy lapack.sgges用法及代码示例
- 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用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.linalg.lapack.get_lapack_funcs。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。