geekdoc-python-zh/docs/askpython/numpy-linear-algebraic-func...

3.7 KiB

NumPy 线性代数函数要知道!

原文:https://www.askpython.com/python/numpy-linear-algebraic-functions

读者朋友们,你们好!在本文中,我们将关注 Python 中的 NumPy 线性代数函数。所以,让我们开始吧!🙂

NumPy 模块为我们提供了各种处理和操作数据的功能。它使我们能够在数组数据结构中创建和存储数据。接下来,它为我们提供了各种函数来分析和操作数据值。

NumPy 线性代数函数列表

1。NumPy 模块提供的矩阵函数

通过 NumPy 模块,我们可以在数组结构上执行线性代数矩阵函数。

在本主题课程中,我们将了解以下功能

  1. 矩阵的秩:我们可以使用 numpy.linalg.matrix_rank()函数计算数组的秩。
  2. 行列式:numpy . linalg . det()函数帮助我们把数组当作一个矩阵来计算它的行列式。
  3. 求逆:inv()函数使我们能够计算数组的逆。
  4. 指数:使用 numpy.linalg.matrix_power()函数,我们可以对矩阵取幂值,并获取结果。

举例:

在下面的例子中,我们使用 numpy.array()函数创建了一个数组。此外,我们对阵列执行了上述线性代数运算,并打印了结果。

import numpy

x = numpy.array([ [2, 8, 7],
                 [6, 1, 1],
                [4, -2, 5]])

print("Rank: ", numpy.linalg.matrix_rank(x))
det_mat = numpy.linalg.det(x) 
print("\nDeterminant: ",det_mat)
inv_mat = numpy.linalg.inv(x)
print("\nInverse: ",inv_mat) 
print("\nMatrix raised to power y:\n",
           numpy.linalg.matrix_power(x, 8))

输出:

Rank:  3

Determinant:  -306.0

Inverse:  [[-0.02287582  0.17647059 -0.00326797]
 [ 0.08496732  0.05882353 -0.13071895]
 [ 0.05228758 -0.11764706  0.1503268 ]]

Matrix raised to power y:
 [[ 85469036  43167250 109762515]
 [ 54010090  32700701  75149010]
 [ 37996120  22779200  52792281]]


2。数字阵列特征值

NumPy 线性代数函数有 linalg 类,它有 eigh()函数来计算传递给它的数组元素的特征值。

看看下面的语法!

语法:

numpy.linalg.eigh(array)

eigh()函数返回一个复矩阵或实对称矩阵的特征值和特征向量。

举例:

from numpy import linalg as li

x = numpy.array([[2, -4j], [-2j, 4]])

res = li.eigh(x)

print("Eigen value:", res)

输出:

Eigen value: (array([0.76393202, 5.23606798]), array([[-0.85065081+0.j        ,  0.52573111+0.j        ],
       [ 0\.        -0.52573111j,  0\.        -0.85065081j]]))


3。点积

使用 NumPy 线性代数函数,我们可以对标量值和多维值执行点运算。它对一维向量值执行标量乘法。

对于多维数组/矩阵,它对数据值执行矩阵乘法。

语法:

numpy.dot()

举例:

import numpy as np

sc_dot = np.dot(10,2)
print("Dot Product: ", sc_dot)

vectr_x = 1 + 2j
vectr_y = 2 + 4j

vctr_dot = np.dot(vectr_x, vectr_y)
print("Dot Product: ", vctr_dot)

输出:

Dot Product:  20
Dot Product:  (-6+8j)


4。用 NumPy 模块解线性方程组

有了 NumPy 线性代数函数,我们甚至可以执行计算和求解线性代数标量方程。 numpy.linalg.solve()函数用公式 ax=b 求解数组值。

举例:

import numpy as np

x = np.array([[2, 4], [6, 8]])

y = np.array([2, 2])

print(("Solution of linear equations:", 
      np.linalg.solve(x, y)))

输出:

('Solution of linear equations:', array([-1.,  1.]))


结论

如果你遇到任何问题,欢迎在下面评论。更多关于 Python 编程的文章,请继续关注我们。在那之前,学习愉快!!🙂