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')