Join the official 2019 Python Developers Survey

Type hints for Numpy

## nptyping

Type hints for Numpy!

### Installation

```pip install nptyping
```

### Usage

Use the nptyping type hints like the regular type hints from typing:

```from nptyping import Array

def func1(arr: Array[int]):  # A numpy.ndarray that contains numbers
...
```

You can also define the shape of an array:

```Array[str, 3, 2]    # 3 rows and 2 columns
Array[str, 3]       # 3 rows and an undefined number of columns
Array[str, 3, ...]  # 3 rows and an undefined number of columns
Array[str, ..., 2]  # an undefined number of rows and 2 columns
```

Heterogeneous arrays are supported as well:

```Array[int, float, str]       # int, float and str on columns 1, 2 and 3 resp.
Array[int, float, str, ...]  # int, float and str on columns 1, 2 and 3 resp.
Array[int, float, str, 3]    # int, float and str on columns 1, 2 and 3 resp. and with 3 rows
```

nptyping also supports instance checks:

```import numpy as np
from nptyping import Array

arr = np.array([[1, 2],
[3, 4],
[5, 6]])

isinstance(arr, Array[int, 3, 2])    # True
isinstance(arr, Array[str, 3, 2])    # False
isinstance(arr, Array[int, 3, ...])  # True
isinstance(arr, Array[int, 3, 6])    # False
```

Also for heterogeneous arrays:

```import numpy as np
from nptyping import Array

arr = np.array([(1, 2.0, '3'),
(4, 5.0, '6')],
dtype=[('a', int), ('b', float), ('c', str)])

isinstance(arr, Array[int, float, str])     # True
isinstance(arr, Array[float, float, str])   # False
isinstance(arr, Array[int, float, str, 2])  # True
```

## Project details

This version 0.3.1 0.3.0 0.2.0 0.1.0