Metadata-Version: 2.1
Name: ndpatch
Version: 0.0.2
Summary: Extract arbitrary n-dimensional regions from ndarrays.
Home-page: https://github.com/ashkarin/ndpatch
Author: Andrei Shkarin
Author-email: andrei.shkarin@gmail.com
License: UNKNOWN
Project-URL: Source, https://github.com/ashkarin/ndpatch
Project-URL: Bug Reports, https://github.com/ashkarin/ndpatch/issues
Description: .. image:: static/ndpatch.svg
            :height: 120
            :align: center
            
        -----------
        
        .. image:: https://travis-ci.org/ashkarin/ndpatch.svg?branch=master 
            :target: https://travis-ci.org/ashkarin/ndpatch
        
        
        **NDPatch** is the package for extracting arbitrary regions from an N-dimensional numpy array assuming it mirrored infinitely.
        
        Installation
        ------------
        
        The easiest way to install the latest version is by using pip::
        
            $ pip install ndpatch
        
        You may also use Git to clone the repository and install it manually::
        
            $ git clone https://github.com/ashkarin/ndpatch.git
            $ cd ndpatch
            $ python setup.py install
        
        Usage
        -----
        To take a patch from the array:
        
        .. code-block:: python
        
          import numpy as np
          import ndpatch
          array = np.arange(25).reshape((5,5))
          index = (1, 2)
          shape = (3, 3)
          patch = ndpatch.get_ndpatch(array, shape, index)
          # patch =
          # [[ 7,  8,  9],
          #  [12, 13, 14],
          #  [17, 18, 19]]
        
        To take get a random patch index:
        
        .. code-block:: python
        
          import numpy as np
          import ndpatch
          array_shape = (5, 5)
          index = ndpatch.get_random_patch_index(array_shape)
        
        To extract random patches from the array:
        
        .. code-block:: python
        
          import numpy as np
          import ndpatch
          npatches = 10
          patch_shape = (3, 3)
          array = np.arange(100).reshape((10,10))
          patches = [ndpatch.get_random_ndpatch(array, patch_shape) for _ in range(npatches)]
        
        To split the 3D array on set of overlapping 3D patches and rebuild it back:
        
        .. code-block:: python
        
          import numpy as np
          import ndpatch
          array = np.arange(0, 125).reshape((5,5,5))
          patch_shape = (4, 3, 3)
          overlap = 2
          indices = ndpatch.get_patches_indices(array.shape, patch_shape, overlap)
          patches = [ndpatch.get_ndpatch(array, patch_shape, index) for index in indices]
          reconstructed = ndpatch.reconstruct_from_patches(patches, indices, array.shape, default_value=0)
          # Validate
          equal = (reconstructed == array)
          assert (np.all(equal))
        
Keywords: ndarray patch region data development
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/x-rst
