Объединение нескольких массивов - PullRequest
0 голосов
/ 22 января 2019

У меня есть этот список, который содержит три массива:

[
    array([1, 2, 3], dtype=object), 
    array([4, 5, 6], dtype=object), 
    array([7, 8, 9], dtype=object)
]

И я хотел бы превратить это в нечто вроде этого:

[1,2,3,4,5,6,7,8,9]

или как-то так:

([1,2,3],[4,5,6],[7,8,9])

Но, похоже, я не могу использовать, например, np.concatenate, чтобы объединить их. Это из-за dtype=object?

Ответы [ 3 ]

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

np.concatenate будет работать для вашего случая:

>>> np.concatenate([array([1, 2, 3], dtype=object), array([4, 5, 6], dtype=object), array([7, 8, 9], dtype=object)])
array([1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=object)

>>>list(_)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Если по какой-то причине это не так, предоставьте исключение, которое вы получаете

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

Чтобы сгладить список массивов

from numpy import array
temp=[array([1, 2, 3], dtype=object), array([4, 5, 6], dtype=object), array([7, 8, 9], dtype=object)]
numpy.array(temp).flatten() #array([1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=object)

Для дальнейшего преобразования в список

numpy.array(temp).flatten().tolist() #[1, 2, 3, 4, 5, 6, 7, 8, 9]

Если вам нужен список из списка

from numpy import array
temp=[array([1, 2, 3], dtype=object), array([4, 5, 6], dtype=object), array([7, 8, 9], dtype=object)]
[x.tolist() for x in temp]

или

tuple(x.tolist() for x in temp) #([1, 2, 3], [4, 5, 6], [7, 8, 9])
0 голосов
/ 22 января 2019

numpy.concatenate() или itertools.chain.from_iterable(), оба должны сгладить ваш массив:

import numpy as np
# from itertools import chain

arr = [np.array([1, 2, 3], dtype=object), np.array([4, 5, 6], dtype=object), np.array([7, 8, 9], dtype=object)]

print(np.concatenate(arr))
# or print(list(chain.from_iterable(arr)))
# [1 2 3 4 5 6 7 8 9]

Если вам нужен второй вывод вопроса:

tuple(list(x) for x in arr)
# ([1, 2, 3], [4, 5, 6], [7, 8, 9])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...