Python NumPy для циклов, создание списков из списков и конкатенации - PullRequest
0 голосов
/ 24 января 2019

У меня есть пустой список Python my_list, похожий на следующий, к которому я могу получить доступ к таким элементам, как my_list [0] (первый уровень) и my_list [0] [0] (второй уровень) и т. Д.

[array(['27103', '27106', '27104', '87115'],
       dtype='<U6'),
 array(['20049', '20033', '655155'],
       dtype='<U6'),...

Для каждого элемента на втором уровне списка я создаю еще один список с 3 элементами каждый.Таким образом, для элемента "27103" есть новый список длиной 3, для "27106" есть еще один список с 3 элементами.

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

temp_list = []
temp_list2 = []

for i in range(len(my_list)):
    for j in range(len(set(my_list[i]))):
        temp_list.append(list(x[np.where(df.index.isin(my_list[i]))[0][j]]))
    temp_list2.append(np.concatenate(temp_list))

, дающий такие результаты, как:

[array(['111005', '112140', '627372', '639240', '672846', '71138', '10618',
        '110619', '639821', '668821', '672079', '672080'], dtype='<U6'),
 array(['111005', '112140', '627372', '639240', '672846', '71138', '10618',
        '110619', '639821', '668821', '672079', '672080', '109002',
        '112839', '26800', '112137', '652520', '667409', '104506',
        '110004', '110955'], dtype='<U6'),...

Проблема в том, что он добавляется к temp_list2 с самого начала.Как я могу предотвратить это и принять только ту часть, которая выглядит следующим образом?

[array(['111005', '112140', '627372', '639240', '672846', '71138', '10618',
        '110619', '639821', '668821', '672079', '672080'], dtype='<U6'),
 array(['109002', '112839', '26800', '112137', '652520', '667409', '104506',
        '110004', '110955'], dtype='<U6'),...

Заранее спасибо.

1 Ответ

0 голосов
/ 24 января 2019

Делать это просто работало.

temp_list2 = []

for i in range(len(my_list)):
    temp_list = []
    for j in range(len(set(my_list[i]))):
        temp_list.append(list(x[np.where(df.index.isin(my_list[i]))[0][j]]))
    temp_list2.append(np.concatenate(temp_list))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...