Python Forum

Full Version: Concatenate 3D arrays
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi

I still have difficulties to work with 3D arrays; in the following example, I'm trying to add/concatenate a 2D array to a 3D one.

My trials fail so far and some googling didn't helped me.

What's the correct use?

Thanks for any help

import numpy as np

A = np.zeros( (2, 3, 5) )
print("A = {}\n".format(A))
## 1rst term => depth
## 2 other terms => (i,j)

## basic 2D array
B = np.ones( (3, 5) )
print("B = {}\n".format(B))

## 2D array reshaped into 3D one prior to be concatenated
Bprime = B.reshape(1,3,5)
print("Bprime = {}\n".format(Bprime))

## C is created and suppoed to be A expanded by B
C = np.concatenate( (A, Bprime), axis = 2 )
# C = np.dstack( (A, Bprime))
# C = np.block( [A, Bprime] )
print("C = {}\n".format(C))
Ok I fixed it and I figured out my mistake: axis=0 becomes the depth one for a 3D array and not rows axis as in a 2D array Tongue

A = np.zeros( (2, 3, 5) )
print("A = {}\n".format(A))
## 1rst term => depth
## 2 other terms => (i,j)

## basic 2D array
B = np.ones( (3, 5) )
print("B = {}\n".format(B))

## 2D array reshaped into 3D one prior to be concatenated
Bprime = B.reshape(1,3,5)
print("Bprime = {}\n".format(Bprime))

## C is created and suppoed to be A expanded by B
# C = np.concatenate( (A, Bprime) )
C = np.concatenate( (A, Bprime), axis = 0)
print("C = {}\n".format(C))