.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/numpy/stack_vs_concatenate.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code or to run this example in your browser via Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_numpy_stack_vs_concatenate.py: ============================= 4.2 stacking vs concatenating ============================= This lesson illustrates difference between ``stack``, ``vstack``, ``hstack``, ``column_stack``, ``row_stack`` and ``concatenate`` .. GENERATED FROM PYTHON SOURCE LINES 9-15 .. code-block:: default import time import numpy as np print(time.asctime()) print(np.__version__) .. rst-class:: sphx-glr-script-out .. code-block:: none Mon Nov 11 07:57:05 2024 1.26.4 .. GENERATED FROM PYTHON SOURCE LINES 16-19 stack ============= all arrays must have same shape .. GENERATED FROM PYTHON SOURCE LINES 21-22 both 1d arrays .. GENERATED FROM PYTHON SOURCE LINES 22-29 .. code-block:: default a = np.random.random(10) b = np.random.random(10) print(np.stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (2, 10) .. GENERATED FROM PYTHON SOURCE LINES 30-31 both 2D .. GENERATED FROM PYTHON SOURCE LINES 31-37 .. code-block:: default a = np.random.random((10, 1)) b = np.random.random((10, 1)) print(np.stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (2, 10, 1) .. GENERATED FROM PYTHON SOURCE LINES 38-41 .. code-block:: default print(np.stack([a,b], axis=1).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 2, 1) .. GENERATED FROM PYTHON SOURCE LINES 42-45 .. code-block:: default print(np.stack([a,b], axis=2).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 1, 2) .. GENERATED FROM PYTHON SOURCE LINES 46-51 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 2)) print(np.stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (2, 10, 2) .. GENERATED FROM PYTHON SOURCE LINES 52-55 .. code-block:: default print(np.stack([a,b], axis=0).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (2, 10, 2) .. GENERATED FROM PYTHON SOURCE LINES 56-59 .. code-block:: default print(np.stack([a,b], axis=1).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 2, 2) .. GENERATED FROM PYTHON SOURCE LINES 60-63 .. code-block:: default print(np.stack([a,b], axis=2).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 2, 2) .. GENERATED FROM PYTHON SOURCE LINES 64-67 .. code-block:: default # print(np.stack([a,b], axis=3).shape) # np.AxisError .. GENERATED FROM PYTHON SOURCE LINES 68-69 different shapes .. GENERATED FROM PYTHON SOURCE LINES 69-75 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 1)) # print(np.stack([a,b]).shape) # ValueError .. GENERATED FROM PYTHON SOURCE LINES 76-79 .. code-block:: default # print(np.stack([a,b], axis=0).shape) # ValueError .. GENERATED FROM PYTHON SOURCE LINES 80-84 .. code-block:: default # print(np.stack([a,b], axis=1).shape) # ValueError .. GENERATED FROM PYTHON SOURCE LINES 85-87 concatenate ============= .. GENERATED FROM PYTHON SOURCE LINES 87-93 .. code-block:: default a = np.random.random(10) b = np.random.random(10) print(np.concatenate([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (20,) .. GENERATED FROM PYTHON SOURCE LINES 94-97 .. code-block:: default print(np.concatenate([a,b], axis=0).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (20,) .. GENERATED FROM PYTHON SOURCE LINES 98-101 .. code-block:: default # print(np.concatenate([a,b], axis=1).shape) # Error .. GENERATED FROM PYTHON SOURCE LINES 102-108 .. code-block:: default a = np.random.random((10, 1)) b = np.random.random((10, 1)) print(np.concatenate([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (20, 1) .. GENERATED FROM PYTHON SOURCE LINES 109-112 .. code-block:: default print(np.concatenate([a,b], axis=1).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 2) .. GENERATED FROM PYTHON SOURCE LINES 113-114 The shapes of the arrays must be same except in the dimension corresponding to axis .. GENERATED FROM PYTHON SOURCE LINES 114-120 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 1)) # print(np.concatenate([a,b], axis=0)) # Error .. GENERATED FROM PYTHON SOURCE LINES 121-122 In above example, axis 0 has 10 but axis 1 has 2 and 1. So, it is not possible to concatenate .. GENERATED FROM PYTHON SOURCE LINES 122-125 .. code-block:: default print(np.concatenate([a,b], axis=1).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 3) .. GENERATED FROM PYTHON SOURCE LINES 126-132 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 2)) print(np.concatenate([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (20, 2) .. GENERATED FROM PYTHON SOURCE LINES 133-136 .. code-block:: default print(np.concatenate([a,b], axis=1).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 4) .. GENERATED FROM PYTHON SOURCE LINES 137-140 .. code-block:: default # print(np.concatenate([a,b], axis=2).shape) # AxisError .. GENERATED FROM PYTHON SOURCE LINES 141-146 .. code-block:: default a = np.random.random((10, 5, 3)) b = np.random.random((10, 5, 3)) print(np.concatenate([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (20, 5, 3) .. GENERATED FROM PYTHON SOURCE LINES 147-150 .. code-block:: default print(np.concatenate([a,b], axis=1).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 10, 3) .. GENERATED FROM PYTHON SOURCE LINES 151-154 .. code-block:: default print(np.concatenate([a,b], axis=2).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 5, 6) .. GENERATED FROM PYTHON SOURCE LINES 155-157 vstack ======= .. GENERATED FROM PYTHON SOURCE LINES 157-163 .. code-block:: default a = np.random.random(10) b = np.random.random(10) print(np.vstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (2, 10) .. GENERATED FROM PYTHON SOURCE LINES 164-170 .. code-block:: default a = np.random.random((10, 1)) b = np.random.random((10, 1)) print(np.vstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (20, 1) .. GENERATED FROM PYTHON SOURCE LINES 171-177 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 2)) print(np.vstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (20, 2) .. GENERATED FROM PYTHON SOURCE LINES 178-184 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 1)) print(np.hstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 3) .. GENERATED FROM PYTHON SOURCE LINES 185-191 .. code-block:: default a = np.random.random((10, 5, 3)) b = np.random.random((10, 5, 3)) print(np.hstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 10, 3) .. GENERATED FROM PYTHON SOURCE LINES 192-194 hstack ======= .. GENERATED FROM PYTHON SOURCE LINES 194-200 .. code-block:: default a = np.random.random(10) b = np.random.random(10) print(np.hstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (20,) .. GENERATED FROM PYTHON SOURCE LINES 201-207 .. code-block:: default a = np.random.random((10, 1)) b = np.random.random((10, 1)) print(np.hstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 2) .. GENERATED FROM PYTHON SOURCE LINES 208-214 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 2)) print(np.hstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 4) .. GENERATED FROM PYTHON SOURCE LINES 215-221 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 1)) print(np.hstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 3) .. GENERATED FROM PYTHON SOURCE LINES 222-228 .. code-block:: default a = np.random.random((10, 5, 3)) b = np.random.random((10, 5, 3)) print(np.hstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 10, 3) .. GENERATED FROM PYTHON SOURCE LINES 229-231 column stack ============= .. GENERATED FROM PYTHON SOURCE LINES 231-237 .. code-block:: default a = np.random.random(10) b = np.random.random(10) print(np.column_stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 2) .. GENERATED FROM PYTHON SOURCE LINES 238-244 .. code-block:: default a = np.random.random((10, 1)) b = np.random.random((10, 1)) print(np.column_stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 2) .. GENERATED FROM PYTHON SOURCE LINES 245-251 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 2)) print(np.column_stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 4) .. GENERATED FROM PYTHON SOURCE LINES 252-258 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 1)) print(np.column_stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 3) .. GENERATED FROM PYTHON SOURCE LINES 259-265 .. code-block:: default a = np.random.random((10, 5, 3)) b = np.random.random((10, 5, 3)) print(np.column_stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 10, 3) .. GENERATED FROM PYTHON SOURCE LINES 266-268 row stack ========== .. GENERATED FROM PYTHON SOURCE LINES 268-274 .. code-block:: default a = np.random.random(10) b = np.random.random(10) print(np.row_stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (2, 10) .. GENERATED FROM PYTHON SOURCE LINES 275-281 .. code-block:: default a = np.random.random((10, 1)) b = np.random.random((10, 1)) print(np.row_stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (20, 1) .. GENERATED FROM PYTHON SOURCE LINES 282-288 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 2)) print(np.row_stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (20, 2) .. GENERATED FROM PYTHON SOURCE LINES 289-290 shape has to be same .. GENERATED FROM PYTHON SOURCE LINES 290-296 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 1)) # print(np.row_stack([a,b]).shape) ValueError .. GENERATED FROM PYTHON SOURCE LINES 297-303 .. code-block:: default a = np.random.random((10, 5, 3)) b = np.random.random((10, 5, 3)) print(np.row_stack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (20, 5, 3) .. GENERATED FROM PYTHON SOURCE LINES 304-307 dstack ========== depth wise stacking .. GENERATED FROM PYTHON SOURCE LINES 307-313 .. code-block:: default a = np.random.random(10) b = np.random.random(10) print(np.dstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (1, 10, 2) .. GENERATED FROM PYTHON SOURCE LINES 314-320 .. code-block:: default a = np.random.random((10, 1)) b = np.random.random((10, 1)) print(np.dstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 1, 2) .. GENERATED FROM PYTHON SOURCE LINES 321-327 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 2)) print(np.dstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 2, 2) .. GENERATED FROM PYTHON SOURCE LINES 328-334 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 1)) # print(np.dstack([a,b]).shape) # ValueError .. GENERATED FROM PYTHON SOURCE LINES 335-341 .. code-block:: default a = np.random.random((10, 5, 3)) b = np.random.random((10, 5, 3)) print(np.dstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none (10, 5, 6) .. GENERATED FROM PYTHON SOURCE LINES 342-345 comparison =========== 1D arrays .. GENERATED FROM PYTHON SOURCE LINES 345-363 .. code-block:: default a = np.random.random(10) b = np.random.random(10) print('concatenate: ', np.concatenate([a,b]).shape) print('stack ', np.stack([a,b]).shape) print('vstack: ', np.vstack([a,b]).shape) print('hstack: ', np.hstack([a,b]).shape) print('row_stack: ', np.row_stack([a,b]).shape) print('column_stack:', np.column_stack([a,b]).shape) print('dstack: ', np.dstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none concatenate: (20,) stack (2, 10) vstack: (2, 10) hstack: (20,) row_stack: (2, 10) column_stack: (10, 2) dstack: (1, 10, 2) .. GENERATED FROM PYTHON SOURCE LINES 364-365 2D arrays .. GENERATED FROM PYTHON SOURCE LINES 365-383 .. code-block:: default a = np.random.random((10, 1)) b = np.random.random((10, 1)) print('concatenate: ', np.concatenate([a,b]).shape) print('stack: ', np.stack([a,b]).shape) print('vstack: ', np.vstack([a,b]).shape) print('hstack: ', np.hstack([a,b]).shape) print('row_stack: ', np.row_stack([a,b]).shape) print('column_stack: ', np.column_stack([a,b]).shape) print('dstack: ', np.dstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none concatenate: (20, 1) stack: (2, 10, 1) vstack: (20, 1) hstack: (10, 2) row_stack: (20, 1) column_stack: (10, 2) dstack: (10, 1, 2) .. GENERATED FROM PYTHON SOURCE LINES 384-385 2D arrays .. GENERATED FROM PYTHON SOURCE LINES 385-402 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 2)) print('concatenate: ', np.concatenate([a,b]).shape) print('stack: ', np.stack([a,b]).shape) print('vstack: ', np.vstack([a,b]).shape) print('hstack: ', np.hstack([a,b]).shape) print('row_stack: ', np.row_stack([a,b]).shape) print('column_stack:',np.column_stack([a,b]).shape) print('dstack: ', np.dstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none concatenate: (20, 2) stack: (2, 10, 2) vstack: (20, 2) hstack: (10, 4) row_stack: (20, 2) column_stack: (10, 4) dstack: (10, 2, 2) .. GENERATED FROM PYTHON SOURCE LINES 403-404 2D arrays with different shapes .. GENERATED FROM PYTHON SOURCE LINES 404-422 .. code-block:: default a = np.random.random((10, 2)) b = np.random.random((10, 1)) # print(np.concatenate([a,b]).shape) # ValueError # print(np.stack([a,b]).shape) # ValueError # print(np.vstack([a,b]).shape) # ValueError print('hstack: ', np.hstack([a,b]).shape) # print(np.row_stack([a,b]).shape) # ValueError print('column_stack: ', np.column_stack([a,b]).shape) # print(np.dstack([a,b]).shape) # ValueError .. rst-class:: sphx-glr-script-out .. code-block:: none hstack: (10, 3) column_stack: (10, 3) .. GENERATED FROM PYTHON SOURCE LINES 423-424 3D arrays .. GENERATED FROM PYTHON SOURCE LINES 424-440 .. code-block:: default a = np.random.random((10, 5, 3)) b = np.random.random((10, 5, 3)) print('concatenate: ', np.concatenate([a,b]).shape) print('stack: ', np.stack([a,b]).shape) print('vstack: ', np.vstack([a,b]).shape) print('hstack: ', np.hstack([a,b]).shape) print('row_stack: ', np.row_stack([a,b]).shape) print('column_stack:', np.column_stack([a,b]).shape) print('dstack: ', np.dstack([a,b]).shape) .. rst-class:: sphx-glr-script-out .. code-block:: none concatenate: (20, 5, 3) stack: (2, 10, 5, 3) vstack: (20, 5, 3) hstack: (10, 10, 3) row_stack: (20, 5, 3) column_stack: (10, 10, 3) dstack: (10, 5, 6) .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.025 seconds) .. _sphx_glr_download_auto_examples_numpy_stack_vs_concatenate.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: binder-badge .. image:: images/binder_badge_logo.svg :target: https://mybinder.org/v2/gh/AtrCheema/python-seekho/master?urlpath=lab/tree/notebooks/auto_examples/numpy/stack_vs_concatenate.ipynb :alt: Launch binder :width: 150 px .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: stack_vs_concatenate.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: stack_vs_concatenate.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_