Mam dwie tablice funkcyjne, np.

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

Teraz chcę połączyć te tablice w następujący sposób:

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

Lokalizacja w tablicy odpowiada terminowi. Próbowałem zaciągnąć, a następnie ponownie przekształcić, ale dostaję:

[[1, 2], [3, 4], [5, 6]]
0
Casper Smit 15 kwiecień 2021, 15:09

2 odpowiedzi

Najlepsza odpowiedź

Możesz użyć {X0}}, aby układać listę Głębokość:

>>> np.dstack([a, b])

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

Jak wspomniano o @Bramvanroy, powoduje to niepożądany wymiar. Dwa sposoby wokół, które mają squeeze wynik lub użyć column_stack:

np.dstack([a, b]).squeeze()
# or
np.column_stack([a, b])

Oba zwracają:

array([[1, 4],
       [2, 5],
       [3, 6]])
3
sacuL 15 kwiecień 2021, 12:30

Jako alternatywa dla odpowiedzi Sacul, możesz również po prostu zrobić

>>> np.array(list(zip(a, b)))

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

W rzeczywistości jest to bliższe oczekiwanym wyniku w zakresie liczby wymiarów (dwóch, a nie trzech w odpowiedzi Sacula, które nadal potrzebujesz .squeeze(), aby osiągnąć prawidłowy wynik).

2
Bram Vanroy 15 kwiecień 2021, 12:18