gpt4 book ai didi

python - 如何用 Python 计算每个矩阵行的字符数?柜台()?

转载 作者:太空宇宙 更新时间:2023-11-04 02:56:15 25 4
gpt4 key购买 nike

我有一个矩阵形状 (600, 900 亿) 保存为 *.txt 文件。矩阵的每一行由不同的样本名称 sample_name1sample_name2 等命名。但是,有些样本名称未标准化,例如s###30023

然后是一个包含三个字符的字符串,每个字符长约 90 亿个字符。

sample_name1 ab2ab222baab22ba2bab2b2aab22ab22bababab2baab2b2a

矩阵的格式如下:

600 9123001002
sample_name1 ab2ab222baab22ba2bab2b2aab22ab22bababab2baab2b2a2bababab2baab2b2ab2a...
sample_name2 abbbbbbbbbbbb2bbbbbbbbbbabbbbbbaaabbbbbbbbb222bbbbbabababbbb2b2b2bbb...
...

我想为每个样本创建一个字典(或列表,pandas DataFrame),其中包含计算的唯一字符数。即,以字典形式:

sample_name1 = {'a': 1824600201, 'b':  2736900300, '2': 4561500501}

每一行。

在 Python 中计算字符的最快方法是使用 from collections import Counter。可以将文本文件加载到 numpy 中,遍历矩阵的每一行,然后对每一行使用 Counter()

但是,如何为每一行刮取正确的标签,尤其是在这些标签未标准化的情况下?也许我可以为每个矩阵行取前 X 个字符?

最佳答案

假设数据量足够小以适合内存(每行),那么您可以做一些简单的事情:

results = {}
with open('<myfile>') as f:
next(f) # skip first line
for line in f:
title, code = line.strip().split(' ')
results[title] = Counter(code)

根据上面的小示例数据集,您将获得:

{'sample_name1': Counter({'.': 3, '2': 21, 'a': 22, 'b': 25}),
'sample_name2': Counter({'.': 3, '2': 7, 'a': 8, 'b': 53})}

关于python - 如何用 Python 计算每个矩阵行的字符数?柜台()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42258424/

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