2016-11-22 2 views
0

Мне нужно запустить скрипт на большом количестве файлов. Я пытаюсь создать библиотеку данных, поэтому мне не придется повторно выполнять вычисления. Сейчас я использую JSon дамп для вывода результатов каждого файла как TXT, содержащих словарь следующим образом:Каков наилучший способ обработки словарей в python?

{"ARG": [98.1704330444336, 41.769107818603516, 73.10748291015625, 45.386558532714844, 66.13928985595703, 170.6997833251953, 181.3068084716797, 163.4752960205078, 105.4854507446289], "LEU": [28.727693557739258, 37.46043014526367, 13.47089672088623, 53.70556640625, 4.947306156158447, 0.17834201455116272], "ASP": [], "THR": [82.61577606201172, 66.58378601074219], "ILE": [114.99510192871094, 0.0, 41.7198600769043], "CYS": [], "LYS": [132.67730712890625, 34.025794982910156, 116.17617797851562, 95.01632690429688], "PHE": [2.027207136154175, 14.673666000366211, 33.46115493774414], "VAL": [], "SER": [87.324462890625, 100.39542388916016, 20.75590705871582, 49.42512893676758], "ASN": [115.7877197265625, 68.15550994873047, 79.04554748535156, 62.12760543823242], "MET": [], "TRP": [5.433267593383789], "GLN": [103.35163879394531, 12.17470932006836, 83.19425201416016, 81.73150634765625, 31.622051239013672], "PRO": [116.5839614868164], "TYR": [143.76821899414062], "GLU": [32.767948150634766, 112.40697479248047, 151.73361206054688, 53.77445602416992, 137.96853637695312, 137.53512573242188], "ALA": [81.7466812133789, 59.530941009521484, 30.13962173461914, 88.2237319946289], "GLY": [68.45809936523438], "HIS": []} 

Я могу перезагрузить словарь снова JSon нагрузки. Я пытаюсь понять, как лучше всего обрабатывать мои данные, зная, что я буду использовать все эти файлы txt, чтобы объединить их в один огромный словарь. Клавиши будут одинаковыми во всех словарях. Я попытаюсь добавить все эти значения «списка» в один большой список как значение для каждого ключа. Я сделаю некоторые математические операции, добавление, деление, рисование гистограмм, кластеризацию и т. Д.

Я хочу знать, как вы это сделаете, и если то, что я описал выше, будет неэффективным или вычислительно дорогостоящим, учитывая, что данные будут огромными.

+2

Вы смотрели в базы данных NoSQL? https://en.wikipedia.org/wiki/NoSQL#Types_and_examples_of_NoSQL_databases – bslawski

+0

В вашем вопросе стоит упомянуть, что всего 20 (или так) ключей; не все работают с биоданными. :) –

+0

Извините за это. Да, словарь всегда будет содержать 20 аминокислотных ключей. Я опубликовал полный словарь выше. –

ответ

0

Как всегда это зависит. Если вы уверены, что будет много данных, вы можете использовать библиотеку pandas для python (http://pandas.pydata.org/).

Это очень мощная библиотека анализа данных, и она позволяет вам делать дополнения, деления, гистограммы и т. Д. Непосредственно на своих типах данных. Я нашел это очень полезным и простым в использовании при решении проблем, подобных (я считаю) для вас.

Если вы решили использовать это решение, вы можете использовать объекты pandas 'DataFrame (вместо pythons dict) для хранения данных и выполнения всех указанных операций над этим объектом. Типы

Панды данных также имеют хороший interfacec для записи/чтения из файлов (т.е. DataFrame.to_json(...))

+0

Спасибо. Я просто посмотрел в Панды, так как раньше не использовал его. Поэтому, если у меня есть цикл, который выводит словарь, подобный тому, который был выше. Как я могу сделать из них все данные? Какая структура должна иметь фреймворк? Какие команды мне нужно знать, чтобы делать суммы, деления, гистограммы ... и т. Д.? –

Смежные вопросы