NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。 NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对
          NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。
一个 的矩阵是一个由
行(row)
列(column)元素排列成的矩形阵列。
矩阵里的元素可以是数字、符号或数学式。
1.矩阵创建
In [ ]:
import numpy as np
np.array([[1,2],[3,4]])
Out[ ]:
array([[1, 2],
       [3, 4]])
In [ ]:
#创建矩阵
np.mat([[1,2],[3,4]])
Out[ ]:
matrix([[1, 2],
        [3, 4]])
In [ ]:
#创建矩阵
np.matrix([[11,21],[31,41]])
Out[ ]:
matrix([[11, 21],
        [31, 41]])
2.矩阵合成
In [ ]:
a=np.mat([[1,2],[3,4]])
b=np.matrix([[11,21],[31,41]])
#合成矩阵
np.bmat('a b')
Out[ ]:
matrix([[ 1,  2, 11, 21],
        [ 3,  4, 31, 41]])
In [ ]:
a=[[1,2],[3,4]]
b=[[1,1],[1,1]]
3.矩阵乘法
In [ ]:
#作为二维数组进行相乘
np.array(a)*np.array(b)
Out[ ]:
array([[1, 2],
       [3, 4]])
In [ ]:
#作为矩阵相乘法一
np.array(a).dot(np.array(b))
Out[ ]:
array([[3, 3],
       [7, 7]])
In [ ]:
#作为矩阵相乘法二
np.matrix(a)*np.matrix(b)
Out[ ]:
matrix([[3, 3],
        [7, 7]])
In [ ]:
print(np.matrix(a))
print(np.matrix(b))
[[1 2]
 [3 4]]
[[1 1]
 [1 1]]
4.矩阵求逆

In [ ]:
#使用矩阵内置算法求逆
np.matrix(a).T
Out[ ]:
matrix([[1, 3],
        [2, 4]])
5.矩阵推导式
In [ ]:
#将矩阵元素同乘平方法一
[[j**2 for j in i] for i in a]
Out[ ]:
[[1, 4], [9, 16]]
In [ ]:
#将矩阵元素同乘平方法二
np.array(a)**2
Out[ ]:
array([[ 1,  4],
       [ 9, 16]])
6.矩阵加减乘除

广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。
如果两个数组 a 和 b 形状相同,即满足 a.shape == b.shape,那么 a*b 的结果就是 a 与 b 数组对应位相乘。这要求维数相同,且各维度的长度相同。
当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制

In [ ]:
#广播计算
a=[[0]*3,[1]*3,[2]*3,[3]*3]
a
Out[ ]:
[[0, 0, 0], [1, 1, 1], [2, 2, 2], [3, 3, 3]]
In [ ]:
np.array(a)+np.array([1,2,3])
Out[ ]:
array([[1, 2, 3],
       [2, 3, 4],
       [3, 4, 5],
       [4, 5, 6]])
In [ ]:
np.array(a)+np.array([[1],[2],[3],[4]])
Out[ ]:
array([[1, 1, 1],
       [3, 3, 3],
       [5, 5, 5],
       [7, 7, 7]])
8.iris数据矩阵化预处理
In [ ]:
#读取iris数据集里的数据,并对其进行排序,去重,并求出和,累积和,均值,标准差,方差,最小值,最大值
data=np.loadtxt('./data/iris_sepal_length.csv')
In [ ]:
#进行排序
data.sort()
In [ ]:
#数据去除
data=np.unique(data)
In [ ]:
#求和
np.sum(data)
Out[ ]:
210.39999999999998
In [ ]:
np.cumsum(data)
Out[ ]:
array([  4.3,   8.7,  13.2,  17.8,  22.5,  27.3,  32.2,  37.2,  42.3,
        47.5,  52.8,  58.2,  63.7,  69.3,  75. ,  80.8,  86.7,  92.7,
        98.8, 105. , 111.3, 117.7, 124.2, 130.8, 137.5, 144.3, 151.2,
       158.2, 165.3, 172.5, 179.8, 187.2, 194.8, 202.5, 210.4])
In [ ]:
print(np.mean(data)) #求均值
print(np.std(data)) #求标准差
print(np.var(data)) #求方差
print(np.min(data)) #求最小值
print(np.max(data)) #求最大值
6.011428571428571
1.0289443768310533
1.0587265306122449
4.3
7.9
9.参考文章
菜鸟教程-numpy矩阵
【创作不易,望点赞收藏,若有疑问,请留言,谢谢】
