Горизонтальное наложение одного и того же индекса в массивном N-мерном массиве - PullRequest
0 голосов
/ 11 января 2019

Есть ли более питонный / более умный / эффективный способ создания нового массива numpy, в котором каждый элемент представляет собой горизонтальный стек из N элементов в одной и той же позиции?

пример ввода:

a = [
 [ 0.29425778  0.69311652]
 [ 1.64811132 -0.21107166]
] 
b = [
  [ 0.15356808 -1.00027092]
  [[-1.578063    0.29741589]
]

результат:

[
  array([0.29425778, 0.15356808]), 
  array([ 0.69311652, -1.00027092]), 
  array([ 1.64811132, -1.578063  ]), 
  array([-0.21107166,  0.29741589])
]

Сейчас я просто использую вложенный цикл for, и он, очевидно, работает.

веселит, FB

1 Ответ

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

Используйте numpy.dstack и изменить форму :

import numpy as np

a = np.array([[0.29425778, 0.69311652], [1.64811132, -0.21107166]])
b = np.array([[0.15356808, -1.00027092],[-1.578063, 0.29741589]])

result = np.dstack((a, b)).reshape(-1, 2)
print(result)

выход

[[ 0.29425778  0.15356808]
 [ 0.69311652 -1.00027092]
 [ 1.64811132 -1.578063  ]
 [-0.21107166  0.29741589]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...