No project description provided
Reason this release was yanked:
0.5.0 release is broken
Project description
Imops
Efficient parallelizable algorithms for multidimensional arrays to speed up your data pipelines
Install
pip install imops # default install with Cython backend
pip install imops[numba] # additionally install Numba backend
Features
Fast Radon transform
from imops import radon, inverse_radon
Fast linear/bilinear/trilinear zoom
from imops import zoom, zoom_to_shape
# fast zoom with optional fallback to scipy's implementation
y = zoom(x, 2, axis=[0, 1])
# a handy function to zoom the array to a given shape
# without the need to compute the scale factor
z = zoom_to_shape(x, (4, 120, 67))
Works faster only for ndim<=3, dtype=float32 or float64, output=None, order=1, mode='constant', grid_mode=False
Fast 1d linear interpolation
from imops import interp1d # same as `scipy.interpolate.interp1d`
Works faster only for ndim<=3, dtype=float32 or float64, order=1 or 'linear'
Padding
from imops import pad, pad_to_shape
y = pad(x, 10, axis=[0, 1])
# `ratio` controls how much padding is applied to left side:
# 0 - pad from right
# 1 - pad from left
# 0.5 - distribute the padding equally
z = pad_to_shape(x, (4, 120, 67), ratio=0.25)
Cropping
from imops import crop_to_shape
# `ratio` controls the position of the crop
# 0 - crop from right
# 1 - crop from left
# 0.5 - crop from the middle
z = crop_to_shape(x, (4, 120, 67), ratio=0.25)
Backends
For zoom
, zoom_to_shape
, interp1d
, radon
, inverse_radon
you can specify which backend to use. Backend can be specified by a string or by an instance of Backend
class. The latter allows you to customize some backend options:
from imops import Cython, Numba, Scipy, zoom
y = zoom(x, 2, backend='Cython')
y = zoom(x, 2, backend=Cython(fast=False)) # same as previous
y = zoom(x, 2, backend=Cython(fast=True)) # -ffast-math compiled cython backend
y = zoom(x, 2, backend=Scipy()) # use scipy original implementation
y = zoom(x, 2, backend='Numba')
y = zoom(x, 2, backend=Numba(parallel=True, nogil=True, cache=True)) # same as previous
Also backend can be specified globally or locally:
from imops import imops_backend, set_backend, zoom
set_backend('Numba') # sets Numba as default backend
with imops_backend('Cython'): # sets Cython backend via context manager
zoom(x, 2)
Note that for Numba
backend setting num_threads
argument has no effect for now and you should use NUMBA_NUM_THREADS
environment variable.
Available backends:
Scipy | Cython | Numba | |
---|---|---|---|
zoom |
✓ | ✓ | ✓ |
zoom_to_shape |
✓ | ✓ | ✓ |
interp1d |
✓ | ✓ | ✓ |
radon |
✗ | ✓ | ✗ |
inverse_radon |
✗ | ✓ | ✗ |
Acknowledgements
Some parts of our code for radon/inverse radon transform as well as the code for linear interpolation are inspired by the implementations from scikit-image and scipy.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for imops-0.5.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6549366949e2e228fac4b995e2eae67e7b354709adfe98be48ef3602a8cdbae6 |
|
MD5 | 9cd1089307a0b744abd8be6ea1a79dd9 |
|
BLAKE2b-256 | b384b843e19024b38f851f5ec8683b2730592d5994f4031724b75b5cfe6eec5a |
Hashes for imops-0.5.0-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20204ce04de636f7bdb6aa5d60cba0de78507c96dbcf11558ab72c74c246b109 |
|
MD5 | 3ace6081d88aebecc3d2baa23b78786d |
|
BLAKE2b-256 | 48fd00048e013655d401975bf9c1add4794b68687d3b82a96e4a13895c4986c8 |
Hashes for imops-0.5.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22df93de75fbf213f6a921d1675f6210463a77926949c08d1deeede27358eee1 |
|
MD5 | b8af8b51c78cc2212382a876d9640f38 |
|
BLAKE2b-256 | 6efc1c7c4c54e831da93df894561a873f63517528f1c0bf89acfe30573d82e6e |
Hashes for imops-0.5.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87d09abaf82b444b67ca1da9013015768de51445d6fa764ca06f4ea5503d2604 |
|
MD5 | 63572744a2164417b7123a6882024e59 |
|
BLAKE2b-256 | 144456e336f3de192beeb3e03161be08c2e4e14473cd3ced0b65f1a4fa42b540 |
Hashes for imops-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05b44e6983ffad27553bbff342d21230446241ab3618fe8793ec4967ffb52590 |
|
MD5 | ff6503c17cc57ea13e5289c38c8ce6d7 |
|
BLAKE2b-256 | e57df6a7797b40192fa87d45a090b9598c3e61bb658d9dfa196b576f35dda5f9 |
Hashes for imops-0.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b0015c8c76c0a4dfb3b08815ea87424d3cda821e384e863a2ed0f9036419397 |
|
MD5 | 4e96c424b546bc52eae167cca0bdec29 |
|
BLAKE2b-256 | 6168c82029402d1ed69dd1a9d564f9af06173e0801fa68a9317d7b92d1325f52 |
Hashes for imops-0.5.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70ba5c5f4647cda3c4404d895238cb62b1ce82fe4259036761252b6551a17e4e |
|
MD5 | e7dcd265dc2b37f67d5d0f12e81c95ff |
|
BLAKE2b-256 | b6c0a28ba59061b7aaa1cc08614dc3b41e57ffb0fde4db4f0406114ba09b6980 |
Hashes for imops-0.5.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6da79d8fd62baa0fdffebe210f5562432ea5356ca5461986319e431980ead38a |
|
MD5 | 4a769ef3218d9d0dd67e9facfba7c467 |
|
BLAKE2b-256 | 353069c83d149135ba980145c510f2066802e38b2f62f828f062dc140daa5368 |
Hashes for imops-0.5.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3051676af5e34e3302b8a7b8cda89874378f84b4cdb63f3a37c23bef42ea656 |
|
MD5 | 8aa7a34a6d7c4ea141682651c33b8196 |
|
BLAKE2b-256 | b85931b01656eb0e911016d2e0ba688cdfcaad676b995e18b2467656b373edfd |
Hashes for imops-0.5.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15f3fdad8e34473627268a7fe05419813a904b5b2eb620c673ea96b8308ef7a6 |
|
MD5 | 6b063e872ea88429711dff1a67af6561 |
|
BLAKE2b-256 | 4a5e6bf20337bd58e0282b25839cb6f775d5d9eddbd28a4bb5315aeaa99c8305 |
Hashes for imops-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99cc88ecaed5cd92a40cc55d3c3b3d00833e905a07d51ce4ebdbcfa25e599a23 |
|
MD5 | 12aa5a9d55c7c0628dcb0dc33b2a3af1 |
|
BLAKE2b-256 | 1b53d654e99f176dc78cf9af0cc12fc1bf6196ccd65e2d110ff7ed3030b5e20a |
Hashes for imops-0.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 923738fb070f5c2d1566ac090b12d1a03917380d157d49258132fc3103d693a0 |
|
MD5 | 58e5a4762bde90a3edb1e8683d986c12 |
|
BLAKE2b-256 | 8489c30453286084ec1b4c1b087b4d0e9a8d40ce706deb3ce12038933affcd11 |
Hashes for imops-0.5.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba78030fbecf5b4ee775417d2908a68ebd1ff3ae14213c83d2efc8d35109bafb |
|
MD5 | f5921d1a0202ca5de346fdc0de172f00 |
|
BLAKE2b-256 | 00313fb5f4f8ce78f1724db9f69d83d7e6f918472b3f5597b4bca1c55947d961 |
Hashes for imops-0.5.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cb450e0be8c25572aac4ad07209ad3573358d7caa94b91c6f5a388b92bf12da |
|
MD5 | 5cafd8c58faffd9a7c080d9081e5e5b5 |
|
BLAKE2b-256 | 9e2abddf0d90756e24362578c17c813dd1a5706c717e1c496441c9587e0270b6 |
Hashes for imops-0.5.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02a9fa064d17c97ee05f3b3b4202c38fb1160e49722a96ab292b0d38aa4ccc92 |
|
MD5 | 481ea963288a3cd69e150ec0bff31249 |
|
BLAKE2b-256 | 8cd7f88d7f07fc19673cdf8c5af7fe3c9e32c69dc57872a36641591b96c5c9a6 |
Hashes for imops-0.5.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47abb1f54e6d27ce713a13919ca8b777a28e4041e5041ecc2e775a36adb68fc9 |
|
MD5 | dfcdc92d02b6b080172fbc2f1f8e0fa5 |
|
BLAKE2b-256 | 4e61fca4f7c39f671cdfefbb8bddcbbf344aa311590c12195c99607b68d23448 |
Hashes for imops-0.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e8a736dae55577d6e310949c34bce56eee4c5d0b0a71045a03827d36e96991e |
|
MD5 | 0ae09b5b9f78e7abbe2bb1c6cc77d55c |
|
BLAKE2b-256 | db8bc9a8a3314ad802c5af60d7f4b62d7f0e1596e42e8e7f5a1c3f449eb74c79 |
Hashes for imops-0.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b648e78ac41055d238851305ac23680d8bdf0faa7e5c4050115d2e4b32894ca7 |
|
MD5 | e1214f99bfa42994e1e70542ff9fbb3e |
|
BLAKE2b-256 | 712f4eefff29561321a4bfe9bf5acbebe9b3043cb2c6ddf65d5744e1f1733336 |
Hashes for imops-0.5.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e65fb3255f30e9006ae3f35b7649e80abc481d9db0961d1297f61efd519335d |
|
MD5 | 5653d940f92fbcdd1f0c8b23bb5df33d |
|
BLAKE2b-256 | bbebab144f79547827dadf961a31d4cd1f7f6bcbd406e499baa6d797ba6754dd |
Hashes for imops-0.5.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 343b2acc1e83ebbb2ba7556fbdc769a3c873041e2c1287bf775037fc76e2c864 |
|
MD5 | 7fdfdf1050d376dda698b0d176824e66 |
|
BLAKE2b-256 | acd51591157a61974001edbc51aeeb3ac3ffbaa30675e3c526fae6c0ad9d4f29 |
Hashes for imops-0.5.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8941d7117bdd3592e3cc06c81feee9002983beecf90d8b1b69586b7a5bae12c |
|
MD5 | 7c3c8bcbc2c113b7db2e5fee5c65fd86 |
|
BLAKE2b-256 | 803c76aa0d0dea24206bdbf82e0efcbb49549fff1fd0c9bdbc38583f55f3b09f |
Hashes for imops-0.5.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41b90c3b57b7d8cb61e9d89d22dc677362cb7ea2e55ed2b5cba38e0e0ff27d76 |
|
MD5 | 10ca6a56bf594101947569e8c0a1cd5e |
|
BLAKE2b-256 | 64f1ed0844d04b3c1c1915455958d6fc418742c2a3b6b18d5c6c1597b1be4d32 |
Hashes for imops-0.5.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f91589dae722459bf9953ab6af6b63caee873e24f7301d0401755a7311062969 |
|
MD5 | 81c338740c297ba95ee3671a1d4d1d9d |
|
BLAKE2b-256 | 9f94805c10afa0e408672e73db86ff9de80c5ec4dcc906a265411152b219b834 |
Hashes for imops-0.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 610cd22f4bf303b705f18c1c2f16c1c09c8e1b38a808c6166c2308962afca45b |
|
MD5 | 4b3d115d81ede6133bddc16e1bd02753 |
|
BLAKE2b-256 | 5b1bd2721c600bb245db70352a7f909fe3c121698123202da16ee88ee07e7d52 |
Hashes for imops-0.5.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20e5551d7886c84bb053175215891d495dfd0bd90f1b1b7341d8e5a6e8c8bb32 |
|
MD5 | 452dd15084cbe2d05862d16c082258c9 |
|
BLAKE2b-256 | 1c994115e191e1a7d939f29c8b5517aeefa41857c66b3c40fc75f9bcf531d3b0 |
Hashes for imops-0.5.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30d1a57a2bbf781fa74fcb40f74ebb780075851b698f7472833e0031e729541b |
|
MD5 | 2c0c4c82a67c8f261679ce75db6d64a9 |
|
BLAKE2b-256 | 6a508470df0e1d5fa73501809c02d9a2aa3e15da24923d6e862357e03b5cad42 |
Hashes for imops-0.5.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c672dc80ae05e5980cdb31aa511dbe249632a481124578018c13970818a8f712 |
|
MD5 | 0c67545555e6171104fa249400a6d405 |
|
BLAKE2b-256 | ca65432f573bb098f556582d85c7bd2a55230f3cf23df70bbd0a8bcea675090b |
Hashes for imops-0.5.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe71b4e0c615aa9cf6959b36fee7a437fafe41300ab18e376cf1db62832ae6d4 |
|
MD5 | da3b888605f031f59b5cd01454218aa2 |
|
BLAKE2b-256 | 4e2444aa07053c10edc53363b61a2221eb6ba345b3dfa3c2bb8e635ea8b468b8 |
Hashes for imops-0.5.0-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 449c170e355023083337c02d5ec5c2d9ae82335a71c853e55cf722b934c3a183 |
|
MD5 | 72ef061e0dbe13f8072297e6ca3fba29 |
|
BLAKE2b-256 | cb25927d0d9107b9c016511437797495ab170aa880027ae46ad71de5afa95109 |
Hashes for imops-0.5.0-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a627c465e6d8af8f9a35ab50f651642f6c1998ff8e6e14be3031392d89f2ebb1 |
|
MD5 | 2d1705cd51f4ce5a250e97c4066a52de |
|
BLAKE2b-256 | 143580b9ff22d350b2dd8c3443feaa5d6a9e3cb62c57f92add2d86372457a44c |
Hashes for imops-0.5.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33922d342b8c9f7a991602c9fc62dc80b0ab256ed02950e702bbe78af7d3d22e |
|
MD5 | 7198843f52d276d006b6627af521437e |
|
BLAKE2b-256 | c19752c353cbfb91bd15aa66c907f082722ee32f89d6ad4d2c56134cb4a35eb8 |
Hashes for imops-0.5.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f013b8a34690809918f8dace5377afa11400124f571bc1d85d4dabcd031dfd42 |
|
MD5 | 42b1e797e0d0186e6b51fa27e596bafc |
|
BLAKE2b-256 | a94d581b6645619262aa70293de7e45500700e413699f8904c521794bfa117e8 |
Hashes for imops-0.5.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27dbe680be91a802fbb01bd44ae4b027ccebc8f98f2a6df138583335df017c14 |
|
MD5 | 16225f7808f4941bebba4d4dc82a7162 |
|
BLAKE2b-256 | 8629fae0f935376b44b34bd7164c8c4400c7f0325ee904bdc02533bad97af648 |