Как добавить соответствующие образцы вместе? - PullRequest
0 голосов
/ 13 октября 2019

Допустим, x имеет три выборки: 2, 3, 4 y имеет четыре выборки: 5, 6, 7, 8 С точки зрения кодирования, как мне добавить эти выборки, чтобы получить 7, 9, 11, 8

1 Ответ

0 голосов
/ 13 октября 2019

Добро пожаловать! Я предполагаю, что, возможно, есть еще немного к этому запросу, но если вы хотите добавить два списка так, как вы описываете, вы можете использовать zip .

Настройка списков

x = [2, 3, 4]
y = [5, 6, 7]

Вы можете добавить их следующим образом

print([sum(k) for k in zip(x, y)])

Вы получите этот вывод

[7, 9, 11]

РЕДАКТИРОВАТЬ - Добавление к учету для различных длин списка

Исходный запрос из [2, 3, 4] и [5, 6, 7, 8] имел результат [7, 9, 11,8]. Чтобы достичь этого результата с 8 в конце, первый список должен быть дополнен 0. Вы заметите, что в приведенном выше 8 было перенесено.

Настройка списков

x  = [2, 3, 4]
y = [5, 6, 7, 8]

Добавление списков в список

ls_start = []
ls_start.append(x)
ls_start.append(y)

Из списка списков определяют максимальную длину списков

max_len = max(map(len, ls_nums))

Мы будем использовать это, чтобы выяснить, насколько «дополнить» более короткие списки с помощью

Создать список для хранения «заполненных» списков, это будет последний список, который мыиспользуйте для перекрестного сложения

ls_final = []

Перебирайте списки, добавляя те, которые нужно заполнить

for ls in ls_nums:
    if len(ls) < max_len:

        extend = max_len - len(ls) 
        for add in range(extend): 
            ls.append(0)
        ls_final.append(np.array(ls))
    else: 
        ls_final.append(np.array(ls))

Если вы посмотрите на ls_final, вы увидите, что он содержит

[array([2, 3, 4, 0]), array([5, 6, 7, 8])]

Добавить список массивов

ls_sum = np.zeros(max_len)

for ls in ls_final:
    ls_sum += ls

Если вы посмотрите на ls_sum, вы увидите

array([ 7.,  9., 11.,  8.])

Вы можете преобразовать в список

ls_sum.tolist()

Чтобы получить это

[7.0, 9.0, 11.0, 8.0]

Этот метод допускает любое количество списков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...