gpt4 book ai didi

python - 使用 python 比较/提取矩阵中的数据 (2.6.1)

转载 作者:太空宇宙 更新时间:2023-11-03 19:22:23 25 4
gpt4 key购买 nike

我有两个 .csv 文件,其中包含从 R 导出的相关矩阵。一个文件包含 P 值,另一个文件包含 r 值。两个文件之间的行标题和列标题完全匹配。

仅当 P 值 < 0.05 时,我才尝试提取成对的 r 值以及相应的行和列标题。以下是 r 值输入文件中数据的示例(我有 1700 多个相关项目,而不仅仅是显示的两个):

            Species1                 Species2
Species1 1 0.9
Species2 0.9 1

P 值输入文件相同,只是包含 P 值代替 r 值。

我对 Python 比较陌生,不知道如何处理这种类型的文件。我尝试了一些策略,包括使用 csv 库来迭代文件。我研究过使用 numpy,但它似乎对我不起作用(?)。我还研究过使用 scipy 在 Python 中计算 r 值和 P 值(Pearson),但这似乎只适用于比较两个一维数组(我有 1700 多列数据需要关联)。

我首先使用的代码是为了向您展示我导入的内容:

import csv
infileP = open('AllcorrP.csv', 'rU')
infileR = open('AllcorrR.csv', 'rU')

问题任何人都可以帮助我根据 p 值文件中的显着 (< 0.05) P 值从 r 值文件中提取列标题和行标题以及 r 值吗?

直接使用 Python 计算多列数据之间所有可能相关性的 r 值和 P 值,并仅提取具有显着 P 值的结果?

最后,我想在两个文件中输出。
第一个文件:

Species1   Species2   Species4  ...
Species2 Species1 Species7 ...

等...(其中“Species1”是第一个具有显着相关性的物种,行中的下一项是与其显着相关的物种(Species2、Species4 等)

第二个文件:

Species1 (corr) Species2 = 0.87
Species2 (corr) Species7 = 0.72
...

等等。它显示了每个成对相关性以及与之相关的 r 值

此时,我很高兴能够提取我想要的 r 值和物种列表,并稍后找出最后两个文件格式。谢谢!

最佳答案

要读取数据,您应该能够使用 numpy.genfromtext。请参阅文档,该函数中有大量功能。要阅读上面的示例,您可以这样做:

from numpy import genfromtxt
rdata = genfromtxt('AllcorrR.csv', skip_header=1)[:,1:]
Pdata = genfromtxt('AllcorrP.csv', skip_header=1)[:,1:]

[:,1:] 是在读入时忽略数据的第一列。该函数没有像行那样的输入来“忽略前 x 列”(通过skip_header)。不知道为什么他们没有实现这个,它总是困扰着我。

这只会读取 P 的数据(也可以对 r 执行此操作)。然后你就可以很容易地过滤数据。您可以阅读分开的第一行和第一列来获取标题。或者,如果您看到 genfromtxt 文档,您也可以为它们命名(创建一个记录)。

要找到 r 小于 0.50 的索引(值),您只需进行比较即可,numpy 会自动为您创建一个 bool 数组:

print Pdata < 0.05

这可以用作 rdata 的索引(确保行/列数相同):

print rdata[Pdata < 0.05]

关于python - 使用 python 比较/提取矩阵中的数据 (2.6.1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9265413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com