我让python读取文本文件。在
import numpy as np
with open("Input2010_5a.txt", "r") as file:
for line in file:
date, long, lat, depth, temp, sal = line.split("\t")
line_data = []
line_data.append(float(date))
line_data.append(float(long))
line_data.append(float(lat))
line_data.append(float(depth))
line_data.append(float(temp))
line_data.append(float(sal))
我收到的结果是:
^{pr2}$现在我需要用它们制作一个协方差矩阵。我不知道怎么做。在
我相信最具Python风格的方法是使用^{} :
此外,如果您想可视化矩阵,可以使用^{} :
^{pr2}$协方差矩阵: 以下矩阵是使用与数据形状相同的随机矩阵生成的,
(41, 6)
:从
txt
文件中提取列表首先,我会将你的列表从文本文件中提取到某种字典结构中,大致如下:
并且
^{pr2}$d
将是一个类似这样的字典:协方差矩阵方法1:
numpy
您可以将字典} 。在
d
中包含的41个列表堆叠起来,然后使用^{然后返回协方差矩阵
协方差矩阵方法2:
pandas
:如果您希望以后使用^{} 表格格式,也可以使用^{} 来获得相同的协方差矩阵:
最小示例
如果您有一个
txt
文件,它看起来像:方法1的结果将给出:
方法2会给你:
我发现有点棘手np.cov公司计算协方差矩阵。通过Wikipedia definition,i,j位置上的元素是ith和jth特征之间的协方差。例如:
也就是说,既然你有6个维度,你应该有一个6x6矩阵。在
接下来,我做了一些研究,发现这个question使用了
rowvar=False
,如下所示:您可以构建您的
all_ls
堆叠,正如您所拥有的那样多l's
,协方差矩阵仍然是6x6矩阵。在另外,您可以注意到
np.cov
计算作为参数传递的所有对变量的协方差。为了更好地理解它,我推荐this问题,它显示了当您不设置rowvar=False
时,np.cov
如何从输入中获得2x2矩阵相关问题 更多 >
编程相关推荐