Сплайсинг массивов NumPy - PullRequest
1 голос
/ 21 июля 2010

У меня проблема с объединением двух массивов. Давайте предположим, что у меня есть два массива:

a = array([1,2,3])
b = array([4,5,6])

Когда я делаю vstack((a,b)), я получаю

[[1,2,3],[4,5,6]]

и если я сделаю hstack((a,b)), я получу:

[1,2,3,4,5,6]

Но я действительно хочу:

[[1,4],[2,5],[3,6]]

Как мне сделать это без использования циклов for (это должно быть быстро)?

Ответы [ 6 ]

7 голосов
/ 21 июля 2010

Попробуйте column_stack()?

http://docs.scipy.org/doc/numpy/reference/generated/numpy.column_stack.html

В качестве альтернативы

vstack((a,b)).T
4 голосов
/ 21 июля 2010

column_stack.

0 голосов
/ 21 июля 2010
numpy.vstack((a, b)).T
0 голосов
/ 21 июля 2010
>>> c = [list(x) for x in zip(a,b)]
>>> c
[[1, 4], [2, 5], [3, 6]]

или

>>> c = np.array([list(x) for x in zip(a,b)])
>>> c
array([[1, 4],
       [2, 5],
       [3, 6]])

в зависимости от того, что вы ищете.

0 голосов
/ 21 июля 2010

Вы, вероятно, ищете для манипуляции формы массива. Вы можете посмотреть в " Предварительное руководство по NumPy, Создание массива ".

0 голосов
/ 21 июля 2010

Я забыл, как транспонировать массивы NumPy, но вы могли сделать:

at = transpose(a)
bt = transpose(b)

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