Numpy, merging multidimensional arrays

This is a quick guide to show different ways you can merge multidimensional arrays using Numpy in python. If you know any other ones, please let me know in the comment section.

1. One dimension examples

import numpy as np
numbers = np.array((0,1,2,3,4))
letters = np.array(('a','b','c','d','e'))

  Concatenate and hstack work the same way, except that hstack only takes 1 positional argument

np.concatenate((numbers, letters))
np.hstack((numbers, letters))
output:
array(['0', '1', '2', '3', '4', 'a', 'b', 'c', 'd', 'e'],
      dtype='<U11')
np.stack((numbers, letters))
np.vstack((numbers, letters))
output:
array([['0', '1', '2', '3', '4'],
       ['a', 'b', 'c', 'd', 'e']],
      dtype='<U11')
np.stack((numbers, letters),1)
np.dstack((numbers, letters))
output:
array([[['0', 'a'],
        ['1', 'b'],
        ['2', 'c'],
        ['3', 'd'],
        ['4', 'e']]],
      dtype='<U11')  

2. array examples

import numpy as np
numbers = np.array(((0,1),(2,3),(4,5)))
letters = np.array((('a','b'),('c','d'),('e','f')))
np.vstack((numbers, letters))
np.concatenate((numbers, letters))
output:
array([['0', '1'],
       ['2', '3'],
       ['4', '5'],
       ['a', 'b'],
       ['c', 'd'],
       ['e', 'f']],
      dtype='<U11')
np.hstack((numbers, letters))
np.concatenate((numbers, letters), 1)
output:
array([['0', '1', 'a', 'b'],
       ['2', '3', 'c', 'd'],
       ['4', '5', 'e', 'f']],
      dtype='<U11')
np.stack((numbers, letters))
output:
array([[['0', '1'],
        ['2', '3'],
        ['4', '5']],

       [['a', 'b'],
        ['c', 'd'],
        ['e', 'f']]],
      dtype='<U11')
np.stack((numbers, letters),1)
output:
array([[['0', '1'],
        ['a', 'b']],

       [['2', '3'],
        ['c', 'd']],

       [['4', '5'],
        ['e', 'f']]],
      dtype='<U11')
#Note if you don't know the maximum number of dimentions your array would have you can use -1
np.stack((numbers, letters),2)
np.stack((numbers, letters),-1)
np.dstack((numbers, letters))
output:
array([[['0', 'a'],
        ['1', 'b']],

       [['2', 'c'],
        ['3', 'd']],

       [['4', 'e'],
        ['5', 'f']]],
      dtype='<U11')
Manuel Cuevas

Manuel Cuevas

Hello, I'm Manuel Cuevas a Software Engineer with background in machine learning and artificial intelligence.

Recent post