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矩阵
【创作不易,望点赞收藏,若有疑问,请留言,谢谢】