2015-08-25 6 views
-1

У меня есть два массива: vx и vz (shape() = 14502 x 36)), которые я хочу объединить в один массив, содержащий вектор скорости, созданный из двух компонентов (vx и vz).Объединение двух массивов в 1 в Python

В = (ух, уг)

Пример:

vx = [(1,2,3),(4,5,6)] 
vz = [(-1,-2,-3),(-4,-5,-6)] 

мне нужно V, чтобы быть массивом, где форма такая же, но каждый элемент содержит как VX и данные VZ. Я уверен, что это базовое форматирование в Python, но мне трудно понять, как он выпрямляется.

#Expected outcome: V = [(1,-1) (2,-2) (3,-3); (4,-4) (5,-5) (6,-6)] 

Или еще проще: новый массив, в котором колонка 1 колонка 1 из Vx и колонка 2 колонки 1 из Vz и так далее.

#Expected outcome: V = [(1,-1,2,-2,3,-3),(4,-4,5,-5,6,-6)] 
+10

Вы можете добавить к вашему примеру, что окончательное решение будет выглядеть – jcfollower

+0

Python Я знаю, эта математика я не знаю. Объясните, что должно произойти, и покажите образец вывода, и вы можете получить дополнительную помощь. –

+1

Что вы подразумеваете под формой, то же самое? – therealprashant

ответ

1

массива векторов в NumPy:

>>> import numpy as np 
>>> V = np.array([vx, vz]).T  # create numpy array and transpose 
>>> V[0, 0] 
array([ 1, -1]) 
>>> V[1, 0] 
array([ 2, -2]) 
>>> V[0, 1] 
array([ 4, -4]) 
+0

Это, спасибо. – Tbevans88

1

Похож вложенный список понимание с помощью 2 zips:

>>> [(x,y) for v,w in zip(vx,vz) for x,y in zip(v,w)] 
[(1, -1), (2, -2), (3, -3), (4, -4), (5, -5), (6, -6)] 
+0

Спасибо за это, но я просто хотел создать новый массив. Нет математики. Пачолик ниже ответил, что мне нужно. – Tbevans88

+0

@ Tbevans88 Я изменил его в ответ на ваше редактирование. Используйте его, если хотите чистое решение Python (не-numpy) (кстати, вы должны принять решение Pacholik, если оно работает для вас) –