I have a project in which there is a for loop running about 14 times. In every iteration, a 2D array is created with this shape (4,3). I would like to concatenate those 2D arrays into one 3D array (with the shape of 4,3,14) so that every 2D array would be in different "layer". How should that be implemented in Python?
You can use numpy.dstack()
to turn a list of 2D arrays into a 3D array:
https://docs.scipy.org/doc/numpy/reference/generated/numpy.dstack.html
If your array sizes are static as you mentioned, you can do the following
output_array = numpy.zeros((14,4,3), dtype=np.float32)
for i in range(14):
mat = numpy.random.rand(4,3)
output_array[i] = mat
you initialize your final array to the size you want and then loop over and assign your matrix (4,3) to the index of that respective loop counter.
The shape and your final matrix is
numpy.shape(output_array)
returns you
(14, 4, 3)
Output is
array([[[ 0.62507486, 0.3246161 , 0.43934602],
[ 0.14476213, 0.76139957, 0.92813474],
[ 0.26556504, 0.02475475, 0.90740073],
[ 0.08017973, 0.97526789, 0.2213122 ]],
[[ 0.70042586, 0.8122381 , 0.79289031],
[ 0.0369414 , 0.10780825, 0.77501732],
[ 0.10386232, 0.86237574, 0.5829311 ],
[ 0.1888348 , 0.85105735, 0.31599012]],
[[ 0.26350111, 0.8787083 , 0.12869285],
[ 0.25927794, 0.25701383, 0.81212741],
[ 0.06661031, 0.53449911, 0.50212061],
[ 0.40009728, 0.78002244, 0.81524432]],
[[ 0.49921468, 0.82028496, 0.51261139],
[ 0.62790054, 0.64566481, 0.02624587],
[ 0.39364958, 0.99537313, 0.33225098],
[ 0.88214922, 0.20252077, 0.78350848]],
[[ 0.29032609, 0.95975012, 0.06733917],
[ 0.24497923, 0.51818371, 0.93520784],
[ 0.80267638, 0.88271469, 0.30779642],
[ 0.57030594, 0.34175804, 0.52563131]],
[[ 0.61039209, 0.57186425, 0.76554799],
[ 0.55681604, 0.33107477, 0.05680386],
[ 0.15465826, 0.13452645, 0.09498007],
[ 0.29682869, 0.93196124, 0.94435322]],
[[ 0.23904459, 0.94893754, 0.97033942],
[ 0.89159942, 0.85306913, 0.02144577],
[ 0.57696968, 0.82578647, 0.33358794],
[ 0.81979036, 0.73351973, 0.027876 ]],
[[ 0.6568135 , 0.25458351, 0.10369358],
[ 0.06151289, 0.00939822, 0.00798484],
[ 0.92518032, 0.19057493, 0.84838325],
[ 0.78189474, 0.15273546, 0.34607282]],
[[ 0.46961641, 0.19778872, 0.1498462 ],
[ 0.55704814, 0.96889585, 0.08894933],
[ 0.48003736, 0.59383452, 0.42212519],
[ 0.78752649, 0.07204869, 0.4215464 ]],
[[ 0.6454156 , 0.84189773, 0.10041234],
[ 0.89345407, 0.60821944, 0.56667495],
[ 0.62806529, 0.67642623, 0.4951494 ],
[ 0.85371262, 0.13159418, 0.3402876 ]],
[[ 0.39828625, 0.50659049, 0.34835485],
[ 0.06839356, 0.74652916, 0.5722388 ],
[ 0.20762053, 0.0692997 , 0.02790474],
[ 0.84786427, 0.98461425, 0.19105092]],
[[ 0.36976317, 0.44268745, 0.23061621],
[ 0.47827819, 0.43044546, 0.90150601],
[ 0.2307732 , 0.61590552, 0.82066673],
[ 0.49611789, 0.4480612 , 0.46685895]],
[[ 0.40907925, 0.15996945, 0.05480348],
[ 0.70230347, 0.00926704, 0.97775948],
[ 0.19834276, 0.20127937, 0.44351548],
[ 0.48512974, 0.07319999, 0.5580616 ]],
[[ 0.35749629, 0.88443983, 0.55465496],
[ 0.61600298, 0.08260803, 0.4010818 ],
[ 0.40910226, 0.31984288, 0.50188118],
[ 0.34836289, 0.14394118, 0.06841569]]], dtype=float32)
Hope that helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With