Каким будет питонический способ преобразования нескольких массивов строк в матрицу, где каждая входная строка получает свою позицию в новой матрице на основе лексикографического порядка (или есть еще лучший критерий?).

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

Так, например, если я перебираю кучу таких массивов (псевдокод!):

array1 = {'01abc','aabc','cba','xyz','999','zz','ZZ'}
array2 = {'0c','aabc','cc','xz','aZZ'}
array3+n = {'...','...','...','....

Я хотел бы преобразовать это во что-то вроде этого:

name        0        9        a        c        x        z        Z 
array1      01abc    999      aabc     cba      xyz      zz       ZZ
array2      0c                aabc     cc       xz
array2                        aZZ
array3...

Я уже пробовал поискать в Google 2 часа, чтобы найти свой путь, но у меня просто нет правильной терминологии, чтобы достаточно точно описать мою проблему ... любые идеи, которые могут указать мне правильное направление, будут очень признательны.

0
Jabb 25 Сен 2013 в 21:19
У меня возникли проблемы с пониманием того, что вы хотите - не могли бы вы подробнее рассказать об истории проблемы?
 – 
ali_m
25 Сен 2013 в 21:29
Я пытаюсь найти способ кластеризации массивов с аналогичным содержимым. В приведенном выше примере array1 и array2 будут похожи, потому что оба содержат строку «aabc». Я думал об использовании матрицы для ускорения кластеризации, потому что будет обрабатываться около 50 000 массивов. Мне известно о программном обеспечении, таком как Mahout и т. Д. Для подобных задач ... Поскольку моя проблема немного нестандартна, я бы предпочел прямую реализацию на Python
 – 
Jabb
25 Сен 2013 в 21:36
Похоже, вы хотите поместить строки в «ячейки» на основе их первой буквы, при этом помня, из какого массива изначально взялась каждая из строк. Должна ли структура данных быть матрицей? Мне кажется, что лучше было бы другое сооружение ...
 – 
senderle
25 Сен 2013 в 21:37
Буду гуглить про мусорные ведра прямо сейчас. Я не особо люблю матрицы (разве что кино :-))
 – 
Jabb
25 Сен 2013 в 21:41
1
Итак, вы хотите поместить детали в таблицу? Может попробовать базу данных - в стандартной библиотеке есть SQL-модуль. Или попробуйте NumPy.
 – 
rlms
25 Сен 2013 в 21:41

1 ответ

Лучший ответ

Вы можете попробовать numpy:

http://wiki.scipy.org/Tentative_NumPy_Tutorial#head-d3f8e5fe9b903f3c3b2a5c0dfceb60d71602cf93

1
Mingyu 25 Сен 2013 в 21:38