NumPy 包包含一个 Matrix库numpy.matlib。此模块的函数返回矩阵而不是返回ndarray对象。
matlib.empty()
matlib.empty()函数返回一个新的矩阵,而不初始化元素。 该函数接受以下参数。
numpy.matlib.empty(shape, dtype, order)
其中:
产生的是随机数
序号 参数及描述
-
shape 定义新矩阵形状的整数或整数元组
-
Dtype 可选,输出的数据类型
-
order C 或者 F
import numpy.matlib import numpy as np print(np.matlib.empty((2,2))) ''' [[3.33774320e-307 1.61323712e-307] [1.69120552e-306 2.14325072e-312]] '''
numpy.matlib.zeros()
此函数返回以零填充的矩阵。
import numpy.matlib
import numpy as np
print(np.matlib.zeros((2,2)))
'''
[[0. 0.]
[0. 0.]]
'''
numpy.matlib.ones()
此函数返回以1填充的矩阵。
import numpy.matlib
import numpy as np
print(np.matlib.ones((2,2)))
'''
[[1. 1.]
[1. 1.]]
'''
numpy.matlib.eye()
这个函数返回一个矩阵,对角线元素为 1,其他位置为零。 该函数接受以下参数。(对角矩阵)
numpy.matlib.eye(n, M,k, dtype)
序号 参数及描述
-
n 返回矩阵的行数
-
M 返回矩阵的列数,默认为n
-
k 对角线的索引,即从哪个0,1…开始索引
-
dtype 输出的数据类型
import numpy.matlib import numpy as np print (np.matlib.eye(n = 3, M = 4, k = 0, dtype = float)) ''' [[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.]] '''
numpy.matlib.identity()
**单位矩阵:**n行n列,且对角线上为1
import numpy.matlib
import numpy as np
print (np.matlib.identity(5, dtype = float))
'''
[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
'''
numpy.matlib.rand()
函数返回给定大小的填充随机值的矩阵。
import numpy.matlib
import numpy as np
print (np.matlib.rand(3,3))
'''
[[0.67573664 0.28551645 0.58846997]
[0.17548323 0.45410408 0.62703266]
[0.78610571 0.42453855 0.98402345]]
'''
注意,矩阵总是二维的,而ndarray是一个 n 维数组。 两个对象都是可互换的。
numpy.dot()
对应二维数组(就是矩阵)就相当于矩阵乘法。对于一维数组,就相当于对应位置数相乘,然后相加。
import numpy.matlib
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.dot(a, b)) #对于一维而言
a = np.array([[1, 2], [3, 4]])
b = np.array([[1, 2], [3, 4]])
print(np.dot(a, b)) #对于二维来说
'''
32
[[ 7 10]
[15 22]]
'''
numpy.vdot()
点积,对应位置数相乘,所有乘积后的数相加。
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[11,12],[13,14]])
print np.vdot(a,b)
结果:111 + 212 + 313 + 414 = 130。
numpy.inner()
此函数返回一维数组的向量内积。 对于更高的维度,它返回最后一个轴上的和的乘积。上面一个不止对一维。和上一个差不多。
numpy.linalg.det()
计算矩阵对应行列式的值:
import numpy.matlib
import numpy as np
import numpy as np
a = np.array([[1,2], [3,4]])
print (int(np.linalg.det(a)))
'''
-2
'''
numpy.linalg.solve()
numpy.linalg.solve()函数给出了矩阵形式的线性方程的解。
考虑以下线性方程:
x + y + z = 6
2y + 5z = -4
2x + 5y - z = 27
可以使用矩阵表示为:
如果矩阵成为A、X和B,方程变为:
AX = B
或
X = A^(-1)B
numpy.linalg.inv()
计算矩阵的逆矩阵:A^-1
逆矩阵和原矩阵乘积是单位矩阵。
import numpy.matlib
import numpy as np
import numpy as np
a = np.array([[1,2], [3,4]])
print (np.linalg.inv(a))
'''
[[-2. 1. ]
[ 1.5 -0.5]]
'''