创建矩阵
通过sympy.matrices
可以创建矩阵
imprort sympy
from sympy.interactive.printing import init_printing
from sympy.matrices import Matrix
M = Matrix([[1,0,0], [0,0,0]])
sympy.latex(M)
sympy.latex(Matrix([M, (0, 0, -1)]))
sympy.latex(Matrix([[1, 2, 3]]))
sympy.latex(Matrix([1, 2, 3]))
效果如下
[ 1 0 0 0 0 0 ] [ 1 0 0 0 0 0 0 0 − 1 ] [ 1 2 3 ] [ 1 2 3 ] \left[\begin{matrix}1 & 0 & 0\\0 & 0 & 0\end{matrix}\right]\quad \left[\begin{matrix}1 & 0 & 0\\0 & 0 & 0\\0 & 0 & -1\end{matrix}\right]\quad\left[\begin{matrix}1 & 2 & 3\end{matrix}\right]\quad \left[\begin{matrix}1\\2\\3\end{matrix}\right] [100000] 10000000−1 [123] 123
符号矩阵在索引上和数值矩阵区别不大,但Matrix有一个非常霸道的创建方法,示例如下,即可根据匿名函数来确定对应元素的值。
m = Matrix(3,4, lambda i,j : i**2+j**2)
sympy.latex(m)
[ 0 1 4 9 1 2 5 10 4 5 8 13 ] \left[\begin{matrix}0 & 1 & 4 & 9\\1 & 2 & 5 & 10\\4 & 5 & 8 & 13\end{matrix}\right] 01412545891013
特殊矩阵
除了Matrix,sympy.matrices还提供了单位矩阵eye;全零矩阵zeros;全1矩阵ones,对角矩阵diag等特殊矩阵的生成方法,这些方法相对来说比较简单,故不作示范。
from sympy.matrices import eye, zeros, ones, diag
randMatrix可生成随机矩阵,其参数包括
- r,c 行数和列数,c默认为None,此时生成KaTeX parse error: Undefined control sequence: \timesr at position 2: r\̲t̲i̲m̲e̲s̲r̲的方阵
- min, max 随机数的最小值和最大值,默认为0和99
- seed 随机数种子
- symmetric 为True时返回一个对称矩阵
- percent 默认为100,表示不为0的元素的百分比
- prng 默认为None,为随机数生成器
示例如下
from sympy.matrices import randMatrix
m = randMatrix(3, symmetric=True, percent=50)
print(sympy.latex(m))
[ 24 37 0 37 59 42 0 42 0 ] \left[\begin{matrix}24 & 37 & 0\\37 & 59 & 42\\0 & 42 & 0\end{matrix}\right] 243703759420420
运算
Matrix重载了部分运算符,支持矩阵和矩阵之间的加减法,以及矩阵乘法和数乘,下面列举的表达式都是符合条件的,但不支持矩阵和数值之间的加减法。
m + m
m - m
m * 2
m * m.T # 注意矩阵乘法需要照顾彼此的shape
'''
Matrix([
[ 98, 112, 154],
[112, 130, 184],
[154, 184, 274]])
'''
此外,通过调用applyfunc方法,可以对矩阵的单个元素进行函数操作文章来源:https://www.toymoban.com/news/detail-771052.html
y = m.applyfunc(lambda x : x**2)
print(sympy.latex(y))
[ 0 1 16 81 1 4 25 100 16 25 64 169 ] \left[\begin{matrix}0 & 1 & 16 & 81\\1 & 4 & 25 & 100\\16 & 25 & 64 & 169\end{matrix}\right] 0116142516256481100169 文章来源地址https://www.toymoban.com/news/detail-771052.html
到了这里,关于Python符号矩阵初步的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!