找到关于 Scipy 的46 篇文章
227 次浏览
名为 scipy.linalg.solveh_banded 的线性函数用于解决带状矩阵方程。在下面给出的示例中,我们将解决循环系统 Cx = b - 示例 from scipy.linalg import solve_circulant, solve, circulant, lstsq import numpy as np c = np.array([2, 2, 4]) b = np.array([1, 2, 3]) solve_circulant(c, b) 输出 array([ 0.75, -0.25, 0.25]) 示例 让我们看一个奇异的例子,它将引发 LinAlgError - from scipy.linalg import solve_circulant, solve, circulant, lstsq import numpy as np c = np.array([1, 1, 0, 0]) b = np.array([1, 2, 3, 4]) solve_circulant(c, b) 输出 -------------------------------------------------------------------------- LinAlgError Traceback (most recent call last) in ... 阅读更多
124 次浏览
名为 scipy.linalg.solve_circulant 的线性函数用于解决循环矩阵方程。该函数的形式如下:- scipy.linalg.solve_circulant(c, b, singular='raise', tol=None, caxis=-1, baxis=0, outaxis=0) 此线性函数将求解方程 Cx = b 的 x,其中 C 是与向量 c 相关的循环矩阵。 循环矩阵方程通过在傅里叶空间中进行除法来求解,如下所示:- x = ifft(fft(b) / fft(c)) 这里 fft 是快速傅里叶变换,ifft 是逆快速傅里叶变换。 参数 下面给出函数 scipy.linalg.solve_circulant() 的参数:- c- array_like 此参数表示循环矩阵的系数。 b- ... 阅读更多
165 次浏览
名为 scipy.linalg.solveh_banded 的线性函数用于解决带状矩阵方程。在下面给出的示例中,我们将解决带状系统 Hx = b,其中:- $$\mathrm{H} = \begin{bmatrix} 8 & 2-1j&0 &0 \ 2+1j & 5& 1j & -2-1j0\ 0 & -1j& 9& \ 0 & 0& -2+1j& 6 \end{bmatrix} \mathrm{b}=\begin{bmatrix} 1\ 1+1j\ 1-2j\ 0 \end{bmatrix}$$ 对于我们下面的示例,我们将把上对角线放在数组 hb 中 - 示例 from scipy.linalg import solveh_banded hb = np.array([[0, 2-1j, 1j, -2-1j], [8, 5, 9, 6 ]]) b = np.array([1, 1+1j, 1-2j, 0]) x = solveh_banded(hb, b) ... 阅读更多
92 次浏览
名为 scipy.linalg.solveh_banded 的线性函数用于解决 Hermitian 正定带状矩阵方程。该函数的形式如下:- scipy.linalg.solveh_banded(ab, b, overwrite_ab=False, overwrite_b=False, lower=False, check_finite=True) 此线性函数将求解方程 ax = b 的 x,其中 a 是 Hermitian 正定带状矩阵。 带状矩阵 a 以如下所示的下对角线或上对角线有序形式存储在 ab 中:- ab[u + i - j, j] == a[i, j](如果为上形式;i= j) ab 的上形式示例如下:- * * a02 a13 a24 a35 * ... 阅读更多
372 次浏览
名为 scipy.linalg.solve_banded 的线性函数用于解决带状矩阵方程。该函数的形式如下:- scipy.linalg.solve_banded(l_and_u, ab, b, overwrite_ab=False, overwrite_b=False, debug=None, check_finite=True) 此线性函数将求解方程 ax = b 的 x,其中 a 是带状矩阵。 带状矩阵 a 通过使用矩阵对角线有序形式存储在 ab 中,如下所示:- ab[u + i - j, j] == a[i, j] ab 的示例如下:- * a01 a12 a23 a34 a45 a00 a11 a22 a33 a44 a55 a10 a21 a32 a43 a54 * a20 a31 ... 阅读更多
266 次浏览
下面的 Python 脚本将使用 SciPy 库在相同数据上比较“三次”和“线性”插值 - 示例 首先,让我们生成一些数据来在其上实现插值 - import numpy as np from scipy.interpolate import interp1d import matplotlib.pyplot as plt A = np.linspace(0, 10, num=11, endpoint=True) B = np.cos(-A**2/9.0) print (A, B) 输出 上述脚本将在 0 到 4 之间生成以下点:- [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.] [ 1. 0.99383351 0.90284967 0.54030231 -0.20550672 -0.93454613 -0.65364362 0.6683999 0.67640492 -0.91113026 0.11527995] 现在,让我们绘制这些点,如下所示:- plt.plot(A, B, '.') plt.show() 现在,基于固定数据 ... 阅读更多
151 次浏览
要使用 SciPy 实现“三次”一维插值,我们需要在 scipy.interpolate.interp1d 类的“kind”参数中将插值类型指定为“cubic”。让我们看下面的示例以了解它 - 示例 首先,让我们生成一些数据来在其上实现插值 - import numpy as np from scipy.interpolate import interp1d import matplotlib.pyplot as plt A = np.linspace(0, 10, num=11, endpoint=True) B = np.cos(-A**2/9.0) print (A, B) 输出 上述脚本将在 0 到 4 之间生成以下点:- [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.] [ 1. 0.99383351 0.90284967 0.54030231 -0.20550672 -0.93454613 -0.65364362 0.6683999 0.67640492 -0.91113026 ... 阅读更多
165 次浏览
插值是在线或曲线上的两个给定点之间生成值的一种方法。在机器学习中,插值用于替换数据集中缺失的值。这种填充缺失值的方法称为插补。插值的另一个重要用途是平滑数据集中离散的点。 SciPy 为我们提供了一个名为 scipy.interpolate 的模块,其中包含许多函数,借助这些函数,我们可以实现插值。 示例 在下面的示例中,我们将使用 scipy.interpolate() 包实现插值 - 首先,让我们生成一些数据来在其上实现插值 - import numpy as np ... 阅读更多
250 次浏览
SciPy 库的 scipy.interpolate.interp1d(x, y, kind, axis, copy, bounds_error, fill_value, assumesorted) 类,顾名思义,用于插值一维函数。这里,x 和 y 是用于逼近某个函数(例如 f)的值的数组;y=f(x)。此类的输出是一个函数,其调用方法使用插值来查找新点的值。 下面给出其参数的详细说明:- 参数 x - (N, ) array_like 它是实数值的一维数组。 y - (…, N, …) array_like 它是实数值的 N 维数组。条件是长度 ... 阅读更多
237 次浏览
SciPy 库具有 scipy.linalg.inv() 函数,用于查找方阵的逆矩阵。让我们了解如何使用此函数计算矩阵的逆矩阵 - 示例 2x2 矩阵的逆矩阵 #导入 scipy 包 import scipy.linalg #导入 numpy 包 import numpy as np #声明 numpy 数组(方阵) A = np.array([[3, 3.5], [3.2, 3.6]]) #将值传递给 scipy.linalg.inv() 函数 M = scipy.linalg.inv(A) #打印结果 print('{} 的逆矩阵为 {}'.format(A, M)) 输出 [[3. 3.5] [3.2 3.6]] 的逆矩阵为 [[-9. 8.75] [ 8. -7.5 ]] 示例 3x3 ... 阅读更多