当前位置 : 主页 > 编程语言 > 其它开发 >

Numpy的矩阵

来源:互联网 收集:自由互联 发布时间:2022-07-02
NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。 NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对
NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。

NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。

一个 img的矩阵是一个由img行(row)img列(column)元素排列成的矩形阵列。

矩阵里的元素可以是数字、符号或数学式。

1.矩阵创建

image-20220629104125651

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.矩阵合成

image-20220629104109782In [ ]:

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.矩阵求逆

image-20220629104432037

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.矩阵加减乘除

image-20220629104457074

广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。

如果两个数组 a 和 b 形状相同,即满足 a.shape == b.shape,那么 a*b 的结果就是 a 与 b 数组对应位相乘。这要求维数相同,且各维度的长度相同。

当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制

image-20220629095846446

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矩阵

【创作不易,望点赞收藏,若有疑问,请留言,谢谢】

上一篇:8款最佳实践,保护你的 IaC 安全!
下一篇:没有了
网友评论