A high-performance array storage and manipulation library
Project description
NumPack
NumPack is a high-performance array storage and manipulation library designed to efficiently handle large NumPy arrays. Built with Rust for performance and exposed to Python through PyO3, NumPack provides a seamless interface for storing, loading, and manipulating large numerical arrays with better performance compared to traditional NumPy storage methods.
Features
- High Performance: Optimized for both reading and writing large numerical arrays
- Memory Mapping Support: Efficient memory usage through memory mapping capabilities
- Selective Loading: Load only the arrays you need, when you need them
- In-place Operations: Support for in-place array modifications without full file rewrite
- Parallel I/O: Utilizes parallel processing for improved performance
- Multiple Data Types: Supports various numerical data types including:
- Boolean
- Unsigned integers (8-bit to 64-bit)
- Signed integers (8-bit to 64-bit)
- Floating point (32-bit and 64-bit)
Installation
pip install numpack
Requirements
- Python >= 3.9
- NumPy
Usage
Basic Operations
import numpy as np
from numpack import NumPack
# Create a NumPack instance
npk = NumPack("data_directory")
# Save arrays
arrays = {
'array1': np.random.rand(1000, 100).astype(np.float32),
'array2': np.random.rand(500, 200).astype(np.float32)
}
npk.save(arrays)
# Load arrays
# Normal mode
loaded = npk.load("array1")
# Memory mapping mode for large arrays
with npk.mmap_mode() as mmap_npk:
# Access specific arrays
array1 = mmap_npk.load('array1')
array2 = mmap_npk.load('array2')
Advanced Operations
# Replace specific rows
replacement = np.random.rand(10, 100).astype(np.float32)
npk.replace({'array1': replacement}, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) # Using list indices
npk.replace({'array1': replacement}, slice(0, 10)) # Using slice notation
# Append new arrays
new_arrays = {
'array3': np.random.rand(200, 100).astype(np.float32)
}
npk.append(new_arrays)
# Drop arrays or specific rows
npk.drop('array1') # Drop entire array
npk.drop(['array1', 'array2']) # Drop multiple arrays
npk.drop('array2', [0, 1, 2]) # Drop specific rows
# Random access operations
data = npk.getitem('array1', [0, 1, 2]) # Access specific rows
data = npk.getitem('array1', slice(0, 10)) # Access using slice
data = npk['array1'] # Dictionary-style access for entire array
# Metadata operations
shapes = npk.get_shape() # Get shapes of all arrays
shapes = npk.get_shape('array1') # Get shape of specific array
members = npk.get_member_list() # Get list of array names
mtime = npk.get_modify_time('array1') # Get modification time
metadata = npk.get_metadata() # Get complete metadata
# Stream loading for large arrays
for batch in npk.stream_load('array1', buffer_size=1000):
# Process 1000 rows at a time
process_batch(batch)
# Reset/clear storage
npk.reset() # Clear all arrays
# Iterate over all arrays
for array_name in npk:
data = npk[array_name]
print(f"{array_name} shape: {data.shape}")
Lazy Loading and Buffer Operations
NumPack supports lazy loading and buffer operations, which are particularly useful for handling large-scale datasets. Using the lazy=True parameter enables data to be loaded only when actually needed, making it ideal for streaming processing or scenarios where only partial data access is required.
from numpack import NumPack
import numpy as np
# Create NumPack instance and save large-scale data
npk = NumPack("test_data/", drop_if_exists=True)
a = np.random.random((1000000, 128)) # Create a large array
npk.save({"arr1": a})
# Lazy loading - keeps data in buffer
lazy_array = npk.load("arr1", lazy=True) # LazyArray Object
# Perform computations with lazy-loaded data
# Only required data is loaded into memory
similarity_scores = np.inner(a[0], npk.load("arr1", lazy=True))
Memory Mapping Mode
For large arrays, memory mapping mode provides more efficient memory usage:
# Using memory mapping mode
with npk.mmap_mode() as mmap_npk:
# Access specific arrays
array1 = mmap_npk.load('array1') # Array is not fully loaded into memory
array2 = mmap_npk.load('array2')
# Perform operations on memory-mapped arrays
result = array1[0:1000] + array2[0:1000]
Performance
NumPack offers significant performance improvements compared to traditional NumPy storage methods, especially in data modification operations and random access. Below are detailed benchmark results:
Benchmark Results
The following benchmarks were performed on an MacBook Pro (Apple Silicon) with arrays of size 1M x 10 and 500K x 5 (float32).
Storage Operations
| Operation | NumPack | NumPy NPZ | NumPy NPY |
|---|---|---|---|
| Save | 0.014s (0.86x NPZ, 0.57x NPY) | 0.012s | 0.008s |
| Full Load | 0.008s (1.63x NPZ, 0.88x NPY) | 0.013s | 0.007s |
| Selective Load | 0.006s (1.50x NPZ, -) | 0.009s | - |
| Mmap Load | 0.006s (2.00x NPZ, 0.67x NPY) | 0.012s | 0.004s |
Data Modification Operations
| Operation | NumPack | NumPy NPZ | NumPy NPY |
|---|---|---|---|
| Single Row Replace | 0.000s (19.00x NPZ, 12.00x NPY) | 0.019s | 0.012s |
| Continuous Rows (10K) | 0.001s (20.00x NPZ, 12.00x NPY) | 0.020s | 0.012s |
| Random Rows (10K) | 0.015s (1.33x NPZ, 0.87x NPY) | 0.020s | 0.013s |
| Large Data Replace (500K) | 0.019s (1.00x NPZ, 0.74x NPY) | 0.019s | 0.014s |
Drop Operations
| Operation (1M rows, float32) | NumPack | NumPy NPZ | NumPy NPY |
|---|---|---|---|
| Drop Array | 0.001s (22.00x NPZ, 1.00x NPY) | 0.022s | 0.001s |
| Drop First Row | 0.014s (3.21x NPZ, 1.93x NPY) | 0.045s | 0.027s |
| Drop Last Row | 0.000s (∞x NPZ, ∞x NPY) | 0.045s | 0.027s |
| Drop Middle Row | 0.014s (3.21x NPZ, 1.93x NPY) | 0.045s | 0.027s |
| Drop Front Continuous (10K rows) | 0.016s (2.81x NPZ, 1.69x NPY) | 0.045s | 0.027s |
| Drop Middle Continuous (10K rows) | 0.016s (2.81x NPZ, 1.69x NPY) | 0.045s | 0.027s |
| Drop End Continuous (10K rows) | 0.001s (45.00x NPZ, 27.00x NPY) | 0.045s | 0.027s |
| Drop Random Rows (10K rows) | 0.018s (2.50x NPZ, 1.50x NPY) | 0.045s | 0.027s |
| Drop Near Non-continuous (10K rows) | 0.015s (3.00x NPZ, 1.80x NPY) | 0.045s | 0.027s |
Append Operations
| Operation | NumPack | NumPy NPZ | NumPy NPY |
|---|---|---|---|
| Small Append (1K rows) | 0.000s (22.00x NPZ, 18.00x NPY) | 0.022s | 0.018s |
| Large Append (500K rows) | 0.003s (9.67x NPZ, 6.67x NPY) | 0.029s | 0.020s |
Random Access Performance (10K indices)
| Operation | NumPack | NumPy NPZ | NumPy NPY |
|---|---|---|---|
| Random Access | 0.008s (2.00x NPZ, 1.38x NPY) | 0.016s | 0.011s |
File Size Comparison
| Format | Size | Ratio |
|---|---|---|
| NumPack | 47.68 MB | 1.0x |
| NPZ | 47.68 MB | 1.0x |
| NPY | 47.68 MB | 1.0x |
Large-scale Data Operations (>1B rows, Float32)
| Operation | NumPack | NumPy NPZ | NumPy NPY |
|---|---|---|---|
| Replace | Zero-copy in-place modification | Memory exceeded | Memory exceeded |
| Drop | Zero-copy in-place deletion | Memory exceeded | Memory exceeded |
| Append | Zero-copy in-place addition | Memory exceeded | Memory exceeded |
| Random Access | Near-hardware I/O speed | Memory exceeded | Memory exceeded |
Matrix Computation Performance (1M rows x 128 columns, Float32)
| Operation | NumPack | NumPy NPZ | NumPy NPY | In-Memory |
|---|---|---|---|---|
| Inner Product | 0.019s (6.58x NPZ, 1.00x NPY) | 0.125s | 0.019s | 0.011s |
| Other calculations are similar to the above case | ... | ... | ... | ... |
Key Advantage: NumPack achieves the same performance as NumPy's NPY mmap (0.019s) for matrix computations, with several implementation advantages:
- Uses Arc for reference counting, ensuring automatic resource cleanup
- Implements MMAP_CACHE to avoid redundant data loading
- Linux-specific optimizations with huge pages and sequential access hints
- Supports parallel I/O operations for improved data throughput
- Optimizes memory usage through Buffer Pool to reduce fragmentation
Key Performance Highlights
-
Data Modification:
- Single row replacement: NumPack is 19x faster than NPZ and 12x faster than NPY
- Continuous rows: NumPack is 20x faster than NPZ and 12x faster than NPY
- Random rows: NumPack is 1.33x faster than NPZ but 0.87x slower than NPY
- Large data replacement: NumPack is comparable to NPZ but 0.74x slower than NPY
-
Drop Operations:
- Drop array: NumPack is 22x faster than NPZ and comparable to NPY
- Drop rows: NumPack is currently 0.61x slower than NPZ and 0.41x slower than NPY
- NumPack provides efficient in-place row deletion without full file rewrite
-
Append Operations:
- Small append (1K rows): NumPack is 22x faster than NPZ and 18x faster than NPY
- Large append (500K rows): NumPack is 9.67x faster than NPZ and 6.67x faster than NPY
- NumPack excels at both small and large append operations
-
Loading Performance:
- Full load: NumPack is 1.63x faster than NPZ but 0.88x slower than NPY
- Memory-mapped load: NumPack is 2.00x faster than NPZ but 0.67x slower than NPY
- Selective load: NumPack is 1.50x faster than NPZ
-
Random Access:
- NumPack is 2.00x faster than NPZ and 1.38x faster than NPY for random index access
-
Storage Efficiency:
- All formats achieve identical compression ratios (47.68 MB)
- NumPack maintains high performance while keeping file sizes competitive
-
Matrix Computation:
- NumPack matches NPY mmap performance while providing better resource management
- 6.58x faster than NPZ mmap for matrix operations
- Only 1.72x slower than pure in-memory computation
- Zero risk of file descriptor leaks or resource exhaustion
Note: All benchmarks were performed with float32 arrays. Performance may vary depending on data types, array sizes, and system configurations. Numbers greater than 1.0x indicate faster performance, while numbers less than 1.0x indicate slower performance.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.
Copyright 2024 NumPack Contributors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
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 Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file numpack-0.1.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: numpack-0.1.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 621.4 kB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9071463997aa20e901c50a32133af2dd858ae3114d41f7068c9630c93a51712a
|
|
| MD5 |
b26e9174ef1dc814c471cd4553997cd6
|
|
| BLAKE2b-256 |
2164d0191b36b4c656efeaced5faa5c3621d6a19a600d002a59fff43833ae852
|
File details
Details for the file numpack-0.1.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: numpack-0.1.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 621.4 kB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff2b1ca53580bdfc135e26a38cee96bd743d61fcf077947ba3b30a807377936f
|
|
| MD5 |
a666b754f7104e4408274820f6ed3963
|
|
| BLAKE2b-256 |
39cdce3e3a0773ff9748d97950b3983a6b1865758766b38195fa2ec717d04fc1
|
File details
Details for the file numpack-0.1.5-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: numpack-0.1.5-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 428.8 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddf8169d1cbf08c36a6534bfd948a800e79bc15631b70c8472785123bd979fd0
|
|
| MD5 |
0bb13c9ac27f38ef685b029fad37451d
|
|
| BLAKE2b-256 |
df3cb8557692ae43d931927d4cc1535095de257d2bbe0b6a4320034b6a38e394
|
File details
Details for the file numpack-0.1.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: numpack-0.1.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 620.3 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39ffb0bbe80e6c593c1dc692d5554d6b53162343e52abca4bfa8c43a5ee05f00
|
|
| MD5 |
67d2e94e8ea94533e5d66e6cc6f13f9e
|
|
| BLAKE2b-256 |
3e3324b15fcd840493a6476cdec34ed2fea345cf5bd3289c6bcaf270196184d5
|
File details
Details for the file numpack-0.1.5-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: numpack-0.1.5-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 567.8 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9bb5ddcd310105360c30685a58f03dd2d741980b4dbd801a0479fabf7382c61
|
|
| MD5 |
059ae9976196d73a9d9b4db4e0411f6c
|
|
| BLAKE2b-256 |
bfa795bf8a81f9e7c7cbc6f2ea468869bbbd59af158a398bc5fd43dc70371793
|
File details
Details for the file numpack-0.1.5-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: numpack-0.1.5-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 583.8 kB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59c833a787b6b007c80bde0be194e9edce6a3007ccc92c9f4f81049a430021c1
|
|
| MD5 |
48c8fd58331da38e423f78e7b2701765
|
|
| BLAKE2b-256 |
dd924d29855ff32bbad17f7c848f980c5287bf598805c19288c01e8f34e27223
|
File details
Details for the file numpack-0.1.5-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: numpack-0.1.5-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 428.8 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ad2834b8ea1f399df33c24e416f6b82d66872f812b65e727dd9beda288adfd4
|
|
| MD5 |
9f134f7c37ed1f92dd7dc32a69340ffb
|
|
| BLAKE2b-256 |
60d044caadbe5fd4dfdb27d51b0aed5c4326376d3e25179fb9ce92f0e63cc1f4
|
File details
Details for the file numpack-0.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: numpack-0.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 620.3 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1f4c8be2c791419d3c84cc996114870ec49c3cad52b0410b319fecb40e25ad1
|
|
| MD5 |
a32911cb1056341fed86ee9ac8631cdb
|
|
| BLAKE2b-256 |
3aef3ada515759213c4173996baf3995d3df355cc9229a1a3a1901c0c8b1847d
|
File details
Details for the file numpack-0.1.5-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: numpack-0.1.5-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 567.8 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da21328bb2f2d438312f5c694cf5526d53d215f5eb014db21630539640648ba2
|
|
| MD5 |
11f5adf0235345fc549a4097e3c7924a
|
|
| BLAKE2b-256 |
f6d589f62325951ebaa5dce5d09700fcf0abc2059a184c06de593330f6ac62bd
|
File details
Details for the file numpack-0.1.5-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: numpack-0.1.5-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 583.8 kB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
241e43727732a41c50780726387406d52d01763e8dcfa57555e647a1a75ada91
|
|
| MD5 |
842cbb4958d631df52feeeaa976f70cc
|
|
| BLAKE2b-256 |
c638df0754e8cca150f7bd1c68349825544df81ac13e166680f8aeb20280177c
|
File details
Details for the file numpack-0.1.5-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: numpack-0.1.5-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 429.0 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48b96823bce226276271100ee66abd29cb3f116197d314c8670979cbf011250f
|
|
| MD5 |
5f1fca724018f9708cadf12e095be734
|
|
| BLAKE2b-256 |
09b247639ae783f8860313bc1e2f76db38151bf751245b344c8ce975eb690185
|
File details
Details for the file numpack-0.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: numpack-0.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 620.0 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27899bf749b18b758282e81db778ffc2887a70e07a19e7592d1f4ef16569ee81
|
|
| MD5 |
75d15a72992b05a36904b468de07fa82
|
|
| BLAKE2b-256 |
d5451a90d6c95c26ce3377aa79d54097f3ca6bd0e72419842c8682457110f6be
|
File details
Details for the file numpack-0.1.5-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: numpack-0.1.5-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 567.6 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d3ee920bbc6a3f08f996ea0332b56d7225b23743b1e2fb9f8090e015b0e0b81
|
|
| MD5 |
470331f1b53b9db0773cd6cb57111af1
|
|
| BLAKE2b-256 |
b4832563a4b771df021d5d59da243a5cfe2cd7e9d543b39e9e580b33b4af9b85
|
File details
Details for the file numpack-0.1.5-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: numpack-0.1.5-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 584.6 kB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b931df93b500d78af5bec347be7db3aa498dc8d60ce00813c4d11759ee99690
|
|
| MD5 |
794d942e73d2c681d31ff6d9affa897d
|
|
| BLAKE2b-256 |
dd6be905d393eb06b4c894a170f0557b189f71906eb6a049e3c1c5360b78aeb3
|
File details
Details for the file numpack-0.1.5-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: numpack-0.1.5-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 429.0 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aacc9b765e05bb59ae055976c2689f3053300f72a290ac0aab86393c973a4e90
|
|
| MD5 |
914ef2cca26000196da8df97ba6d8442
|
|
| BLAKE2b-256 |
7a7179178cb12b114381baefdd46498e3807b8e9c4654fd58dd2bfbe4bbfec88
|
File details
Details for the file numpack-0.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: numpack-0.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 619.9 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
473ecbc6cd59fa6432e99c1331fd93bbd7ecb30fbd95ea15deab6494d33ad7ff
|
|
| MD5 |
3b217c4211ccaf8a7f9037603485fb9b
|
|
| BLAKE2b-256 |
d3ac2f522fb8403a96c9ec0bc80f4790953530a9a74ec8edcd3468a7be8bda89
|
File details
Details for the file numpack-0.1.5-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: numpack-0.1.5-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 567.5 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb694d84c8c506acd3a62f37cc223d9116454eae25ebc76b0c57144951f288ea
|
|
| MD5 |
74161cc60441084a2a8ee5db08952924
|
|
| BLAKE2b-256 |
e0adb52182eb65b4cf36255d5fd2863381d93c2c37faaa95572fa32b22439b71
|
File details
Details for the file numpack-0.1.5-cp310-cp310-macosx_10_12_x86_64.whl.
File metadata
- Download URL: numpack-0.1.5-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 584.6 kB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ab8a136e36a3f2cc99e7840160c2cb505af9a8e1ab96eae43359cdf950210a9
|
|
| MD5 |
55b0e5a1acf5c3d192994e3e6d4c6a96
|
|
| BLAKE2b-256 |
98e721b1ff9ba03bb91dca958aaaeae769ea44361bb9e337bf80c7529ef52e71
|
File details
Details for the file numpack-0.1.5-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: numpack-0.1.5-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 429.3 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23700be0f9dd5cc0a5ca11a7fb60d1b8dda814cd8cbc874689d2529ed40c4cca
|
|
| MD5 |
3e7c9c024dbd23ca6ab542bbc24a3bdc
|
|
| BLAKE2b-256 |
0e25a22667a7dd354f151fb8173254866a828a332ec7ba1305859ea95c3a1e44
|
File details
Details for the file numpack-0.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: numpack-0.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 620.4 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3546150e82db77700776cb0213d4c893d06120bcdbaf6567c121e128591f287
|
|
| MD5 |
6dcfd325d3f3dd6e72139f51b7375a2d
|
|
| BLAKE2b-256 |
676ea1ac360880c4954b3b839450d4a390b28b7135bf2f5d52dd7da7ac03317f
|
File details
Details for the file numpack-0.1.5-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: numpack-0.1.5-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 568.3 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f1f2793f65b62d88919861c5153530795da2f68a8f0c5a7e247c3ab7fdbdad9
|
|
| MD5 |
aa452636daccb6cc2e2faa79f9d14d0f
|
|
| BLAKE2b-256 |
780fa048296a68ad82c93abe93ff565f3b0f27ea07c9c72d4be889fcc179c01d
|
File details
Details for the file numpack-0.1.5-cp39-cp39-macosx_10_12_x86_64.whl.
File metadata
- Download URL: numpack-0.1.5-cp39-cp39-macosx_10_12_x86_64.whl
- Upload date:
- Size: 585.3 kB
- Tags: CPython 3.9, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2be6db71e87053be2b15d5356ff329b2a72fb0506be312f69f2242e91508eb2c
|
|
| MD5 |
7e0c724fca147ffb95d90c657aa9bd3a
|
|
| BLAKE2b-256 |
ae5c93b630886e9798bec573de24520af73188931334d98278e98ec4bb0a3989
|