Skip to main content

numpy extension

Project description

NumPy Extensions

Build Status - GitHub Build Status - GitHub Deploy PYPI Coverage Status

An extension library for NumPy that implements common array operations not present in NumPy.

  • npext.fill_na(...)
  • npext.drop_na(...)
  • npext.rolling(...)
  • npext.expanding(...)
  • npext.rolling_apply(...)
  • npext.expanding_apply(...)
  • # etc

Documentation

Installation

Regular installation:

pip install numpy_ext

For development:

git clone https://github.com/3jane/numpy_ext.git
cd numpy_ext
pip install -e .[dev]  # note: make sure you are using pip>=20

Examples

Here are few common examples of how the library is used. The rest is available in the documentation.

  1. Apply a function to a rolling window over the provided array
import numpy as np
import numpy_ext as npext

a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
window = 3

npext.rolling_apply(np.sum, window, a)

> array([nan, nan,  3.,  6.,  9., 12., 15., 18., 21., 24.])
  1. Same as the above, but with a custom function, two input arrays and parallel computation using joblib:
def func(array_first, array_second, param):
    return (np.min(array_first) + np.sum(array_second)) * param


a = np.array([0, 1, 2, 3])
b = np.array([3, 2, 1, 0])

npext.rolling_apply(func, 2, a, b, n_jobs=2, param=-1)

> array([nan, -5., -4., -3.])
  1. Same as the first example, but using rolling function:
a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
window = 3

rolls = npext.rolling(a, window, as_array=True)

np.sum(rolls, axis=1)

> array([nan, nan,  3.,  6.,  9., 12., 15., 18., 21., 24.])
  1. Apply a function with multiple output to a rolling window over the provided array, with no nans prepend
res = npext.rolling_apply(
        lambda x: (max(x), min(x)),
        3,
        np.array([1, 2, 5, 1, 6, 4, 0]),
        prepend_nans=False,
    )

> array([[5, 1],
       [5, 1],
       [6, 1],
       [6, 1],
       [6, 0]])

License

MIT Licence

The software is distributed under MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

numpy_ext-0.9.9.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

numpy_ext-0.9.9-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file numpy_ext-0.9.9.tar.gz.

File metadata

  • Download URL: numpy_ext-0.9.9.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for numpy_ext-0.9.9.tar.gz
Algorithm Hash digest
SHA256 8f60f2b03f9279b89387f1e25946a931c03f4880cc35099421b6eeb37eaa0f92
MD5 5ce10ad54f7b01ab0b9a7901e5edbf3c
BLAKE2b-256 55f18419bed8365d6d2022b8986f27a7a3b382e2bc3fdc41955cd3bd1f18208b

See more details on using hashes here.

File details

Details for the file numpy_ext-0.9.9-py3-none-any.whl.

File metadata

  • Download URL: numpy_ext-0.9.9-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for numpy_ext-0.9.9-py3-none-any.whl
Algorithm Hash digest
SHA256 5f0cdab47de649042691137a75e18801393b60c8d2191f39aad51af850eb65a1
MD5 198bccf15c85306e8fc82abfd9188321
BLAKE2b-256 c787df82011766c011ab3fe2829ed32b352455fc845026cade9e162bdbf4a918

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page