Array Manipulation Routines
===========================

The following tables show array manipulation routines provided by NLCPy.

Basic Operations
----------------

.. autosummary::
    :toctree: generated/
    :nosignatures:

    nlcpy.shape
    nlcpy.copyto


Changing Array Shape
--------------------

.. autosummary::
    :toctree: generated/
    :nosignatures:

    nlcpy.reshape
    nlcpy.ravel


Transpose-like Operations
-------------------------

.. autosummary::
    :toctree: generated/
    :nosignatures:

    nlcpy.moveaxis
    nlcpy.rollaxis
    nlcpy.swapaxes
    nlcpy.transpose


Changing Number of Dimensions
-----------------------------

.. autosummary::
    :toctree: generated/
    :nosignatures:

    nlcpy.atleast_1d
    nlcpy.atleast_2d
    nlcpy.atleast_3d
    nlcpy.broadcast_arrays
    nlcpy.broadcast_to
    nlcpy.expand_dims
    nlcpy.squeeze


Joining Arrays
--------------

.. autosummary::
    :toctree: generated/
    :nosignatures:

    nlcpy.concatenate
    nlcpy.hstack
    nlcpy.stack
    nlcpy.vstack
    nlcpy.block


Splitting arrays
----------------

.. autosummary::
    :toctree: generated/
    :nosignatures:

    nlcpy.split
    nlcpy.hsplit
    nlcpy.vsplit


Tiling Arrays
-------------

.. autosummary::
    :toctree: generated/
    :nosignatures:

    nlcpy.tile
    nlcpy.repeat


Adding and Removing Elements
----------------------------

.. autosummary::
    :toctree: generated/
    :nosignatures:

    nlcpy.append
    nlcpy.delete
    nlcpy.insert
    nlcpy.resize
    nlcpy.unique


Rearranging Elements
--------------------

.. autosummary::
    :toctree: generated/
    :nosignatures:

    nlcpy.flip
    nlcpy.fliplr
    nlcpy.flipud
    nlcpy.roll
