python矩阵转置的案例与矩阵转置方法分享!

6,488次阅读
没有评论

共计 1437 个字符,预计需要花费 4 分钟才能阅读完成。

线性回归的普通最小二乘法。普通最小二乘法 (OLS) 是一种在简单线性回归中估计参数 β 的方法,Xβ = y,其中 X 是特征矩阵,y 是因变量(或目标),通过最小化给定数据集中观察到的因变量与线性函数预测的因变量之间的差异。

那么话不多说我们来看下下面这个代码:

import numpy as np

import numpy as np

xn, xp = [2,2]

array = []

for i in range(2):

    array = [10,0 ,2]

x = np.array(array).reshape(22)

y = np.array([2,3])

print(a)

在代码​“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  计算矩阵特征向量。

矩阵转置方法代码分享如下:


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()

def transformMatrix(m):

	r = [[] for i in m[0]]	
	for ele in m:
		for i in range(len(ele)):
			
			r[i].append(ele[i])
			
			
	return r	

def transformMatrix1(m):
	return zip(*m)	

def transformMatrix2(m):
	import numpy
	return numpy.transpose(m).tolist()	
print("第一种方法结果展示")	
printmatrix(transformMatrix(matrix))
print("第二种方法结果展示")
printmatrix(transformMatrix1(matrix))
print("第二种方法的简洁代码展示")
printmatrix(zip(*matrix))
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 矩阵转置的案例与矩阵转置方法的相关内容,希望对大家的学习有所帮助。

原文地址: python 矩阵转置的案例与矩阵转置方法分享!

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-23发表,共计1437字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)