Выровнять массив с помощью Python - PullRequest
0 голосов
/ 24 октября 2018

Вот пример для воспроизведения моей проблемы:

a = np.array([[1,2], [3,4], [6,7]])
b = np.array([[1,2], [3,4], [6,7,8]])
c = np.array([[1,2], [3,4], [6]])
print(a.flatten())
print(b.flatten())
print(c.flatten())

Проблема существует, когда в одном из массивов есть элемент меньше или больше.

Output:
[1 2 3 4 6 7]
[list([1, 2]) list([3, 4]) list([6, 7, 8])] # Won't work
[list([1, 2]) list([3, 4]) list([6])]       # Also won't work

How I want it:
[1 2 3 4 6 7]
[1 2 3 4 6 7 8]
[1 2 3 4 6]

Кто-нибудь знает, какправильно выровнять список, например, b и c?

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Использование concatenate

np.concatenate(b)
Out[204]: array([1, 2, 3, 4, 6, 7, 8])
np.concatenate(c)
Out[205]: array([1, 2, 3, 4, 6])
0 голосов
/ 24 октября 2018

Вам нужно:

from itertools import chain

a = np.array([[1,2], [3,4], [6,7]])

b = np.array([[1,2], [3,4], [6,7,8]])

c = np.array([[1,2], [3,4], [6]])

print(a.flatten())
print(list(chain(*b)))
print(list(chain(*c)))

Вывод:

[1 2 3 4 6 7]
[1 2 3 4 6 7 8]
[1 2 3 4 6]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...