您好,登录后才能下订单哦!
这篇文章主要介绍“python矩阵转置的方法是什么”,在日常操作中,相信很多人在python矩阵转置的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python矩阵转置的方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
线性回归的普通最小二乘法。 普通最小二乘法 (OLS) 是一种在简单线性回归中估计参数 β 的方法,Xβ = y,其中 X 是特征矩阵,y 是因变量(或目标),通过最小化给定数据集中观察到的因变量与线性函数预测的因变量之间的差异。
那么话不多说我们来看下下面这个代码:
import numpy as npimport numpy as np
xn, xp = [2,2]
array = []
for i in range(2):
array = [1, 0,0 ,2]
x = np.array(array).reshape(2, 2)
y = np.array([2,3])
# .T 表示对该矩阵进行转置
a = np.dot(np.dot(np.linalg.inv(np.dot(x.T, x)), x.T), y).round(2)
print(a)
#输出的内容为:[2. 1.5]
在代码“a = np.dot(np.dot(np.linalg.inv(np.dot(x.T, x)), x.T), y).round(2)”
中,dot
函数是矩阵乘,那么对于“*”则是表示为逐个元素相乘。我们可以看看下面的这个代码:
dot函数使用:
a =np.array([[1,1],[1,1]])
b = np.array ([[1,0],[O,1]])
np.dot (a,b) #矩阵乘
结果:array( [[1,1],
[1,1]])
“*”使用:
a =np.array([[1,1],[1,1]])
b = np.array ([[1,0],[O,1]])
c = a*b #对应元素相乘
结果:array( [[1,0], [0,1]])
在通过代码实现之后我们对于 dot
与“*”
使用的是有差别了。
np.linalg.inv() 是矩阵求逆的意思,除此之外还有 np.linalg.det() 矩阵求行列式 、 np.linalg.norm() 求范数和 np.linalg.eigh 计算矩阵特征向量。
矩阵转置方法代码分享如下:
#Python的matrix转置matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
def printmatrix(m):for ele in m: for i in ele:
print("%2d" %i,end = " ")
print()#1、利用元祖的特性进行转置def transformMatrix(m):#此处巧妙的先按照传递的元祖m的列数,生成了r的行数
r = [[] for i in m[0]]
for ele in m: for i in range(len(ele)): #【重点】:此处利用m的第ele行i列,并将该值追加到r的i行上;巧妙的利用了i
r[i].append(ele[i]) #printmatrix(r)#方便查看数组是怎么赋值的,如不需要可注释掉#print("*"*20)#打印分隔符return r
#2、利用zip函数生成转置矩阵def transformMatrix1(m):return zip(*m)
#3、利用numpy模块的transpose方法def transformMatrix2(m):import numpy return numpy.transpose(m).tolist()
print("第一种方法结果展示")
printmatrix(transformMatrix(matrix))
print("第二种方法结果展示")
printmatrix(transformMatrix1(matrix))
print("第二种方法的简洁代码展示")
printmatrix(zip(*matrix))#为了代码更简洁,可以不用transformMatrix1函数,直接打印print("第三种方法的结果展示")
printmatrix(transformMatrix2(matrix))
运行结果如下:
第一种方法结果展示
1 5 9
2 6 10
3 7 11
4 8 12
第二种方法结果展示
1 5 9
2 6 10
3 7 11
4 8 12
第二种方法的简洁代码展示
1 5 9
2 6 10
3 7 11
4 8 12
第三种方法的结果展示
1 5 9
2 6 10
3 7 11
4 8 12
到此,关于“python矩阵转置的方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。