Skip to main content

A high-performance array storage and manipulation library

Project description

NumPack

NumPack is a lightning-fast array manipulation engine that revolutionizes how you handle large-scale NumPy arrays. By combining Rust's raw performance with Python's ease of use, NumPack delivers up to 20x faster operations than traditional methods, while using minimal memory. Whether you're working with gigabyte-sized matrices or performing millions of array operations, NumPack makes it effortless with its zero-copy architecture and intelligent memory management.

Key highlights:

  • 🚀 Up to 20x faster than traditional NumPy storage methods
  • 💾 Zero-copy operations for minimal memory footprint
  • 🔄 Seamless integration with existing NumPy workflows
  • 🛠 Battle-tested in production with arrays exceeding 1 billion rows

Features

  • High Performance: Optimized for both reading and writing large numerical arrays
  • Lazy Loading Support: Efficient memory usage through on-demand data loading
  • 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

From PyPI (Recommended)

Prerequisites

  • Python >= 3.9
  • NumPy >= 1.26.0
pip install numpack

From Source

To build and install NumPack from source, you need to meet the following requirements:

Prerequisites

  • Python >= 3.9
  • Rust >= 1.70.0
  • NumPy >= 1.26.0
  • Appropriate C/C++ compiler (depending on your operating system)
    • Linux: GCC or Clang
    • macOS: Clang (via Xcode Command Line Tools)
    • Windows: MSVC (via Visual Studio or Build Tools)

Build Steps

  1. Clone the repository:
git clone https://github.com/BirchKwok/NumPack.git
cd NumPack
  1. Install maturin (for building Rust and Python hybrid projects):
pip install maturin>=1.0,<2.0
  1. Build and install:
# Install in development mode
maturin develop

# Or build wheel package
maturin build --release
pip install target/wheels/numpack-*.whl

Platform-Specific Notes

  • Linux Users:

    • Ensure python3-dev (Ubuntu/Debian) or python3-devel (Fedora/RHEL) is installed
    • If using conda environment, make sure the appropriate compiler toolchain is installed
  • macOS Users:

    • Make sure Xcode Command Line Tools are installed: xcode-select --install
    • Supports both Intel and Apple Silicon architectures
  • Windows Users:

    • Visual Studio or Visual Studio Build Tools required
    • Ensure "Desktop development with C++" workload is installed

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")

# lazy load
lazy_array = npk.load("arr1", lazy=True)

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))

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 -

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

  1. 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
  2. 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
  3. 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
  4. 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
  5. Random Access:

    • NumPack is 2.00x faster than NPZ and 1.38x faster than NPY for random index access
  6. Storage Efficiency:

    • All formats achieve identical compression ratios (47.68 MB)
    • NumPack maintains high performance while keeping file sizes competitive
  7. 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


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

numpack-0.1.7-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (608.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

numpack-0.1.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (608.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

numpack-0.1.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (608.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

numpack-0.1.7-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (602.1 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

numpack-0.1.7-cp313-cp313-win_amd64.whl (421.5 kB view details)

Uploaded CPython 3.13Windows x86-64

numpack-0.1.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (607.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

numpack-0.1.7-cp313-cp313-macosx_11_0_arm64.whl (551.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

numpack-0.1.7-cp313-cp313-macosx_10_12_x86_64.whl (575.1 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

numpack-0.1.7-cp312-cp312-win_amd64.whl (422.3 kB view details)

Uploaded CPython 3.12Windows x86-64

numpack-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (607.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

numpack-0.1.7-cp312-cp312-macosx_11_0_arm64.whl (551.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

numpack-0.1.7-cp312-cp312-macosx_10_12_x86_64.whl (575.6 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

numpack-0.1.7-cp311-cp311-win_amd64.whl (421.6 kB view details)

Uploaded CPython 3.11Windows x86-64

numpack-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (606.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

numpack-0.1.7-cp311-cp311-macosx_11_0_arm64.whl (556.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

numpack-0.1.7-cp311-cp311-macosx_10_12_x86_64.whl (579.4 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

numpack-0.1.7-cp310-cp310-win_amd64.whl (421.0 kB view details)

Uploaded CPython 3.10Windows x86-64

numpack-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (606.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

numpack-0.1.7-cp310-cp310-macosx_11_0_arm64.whl (555.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

numpack-0.1.7-cp310-cp310-macosx_10_12_x86_64.whl (579.5 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

numpack-0.1.7-cp39-cp39-win_amd64.whl (421.6 kB view details)

Uploaded CPython 3.9Windows x86-64

numpack-0.1.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (607.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

numpack-0.1.7-cp39-cp39-macosx_11_0_arm64.whl (556.2 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

numpack-0.1.7-cp39-cp39-macosx_10_12_x86_64.whl (580.0 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

Details for the file numpack-0.1.7-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 450c0aa0faf0a42fd9de47b5413b1baf2ac70a2add906d0c61dc8521cba93ceb
MD5 baaf826d3be56325c183d6f94571b8f2
BLAKE2b-256 3e79fcaf8b383d172ed6628356f54faa64ac04579f8721e7e0b40afe33892e9a

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 04dfe086381ddd84a96c1e1cba0bd0a4b556e336f690573b8e95a7da369d6274
MD5 be0ee9aac321d22956dc1c030ad00a1f
BLAKE2b-256 91195ab8a19dcac7625541e128855488ee2ec0eec84b79465694efbd00c53faf

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f92e866e8dace33a442ddd1b1502bff08c295873202423eaefe9b100b3f6dd86
MD5 c7025e13b23e27166c3db08286d6d3a2
BLAKE2b-256 7869000177860fdefb493765d08682fb6105bceef3a428e0dda6ecaca84d7c2a

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f13692492cf94e7fbdf57afdaf686227d3587aaa9bbf4c2635e3abcd9a7c8bc1
MD5 bf8750e7cafaa89b0db09219b0c38494
BLAKE2b-256 03e2f8611098abb1bcd51469add0e9546a2698d27427de7990f95b332d9a61ce

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: numpack-0.1.7-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 421.5 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for numpack-0.1.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bbe8f2c3eaa9593923378b41eecd01d6e3ec33ed197d41226a2858232b708ad9
MD5 7a390aa217a276bf87cd66b5741b40d9
BLAKE2b-256 90b75cd11a0adc0b821190944e36b420037ce65467e288275fe837bf339239a6

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8ffe84c04e830573952fa956e14acf5c1fafc20e3b500be3ddb81c285bea90e7
MD5 6d05f1aeed839f19ced27e3c37a9ef86
BLAKE2b-256 4df81c727bafad9e6edb8a0043132cc11bfe1c543acaea710b3fd9a8dac0b220

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d4c65551131b90eb25c605ecd4d2b3617275ea548bfef372a5b2f130cbc1046
MD5 722352b4657d292ee995c789ba579738
BLAKE2b-256 b06888fc9ed1c9063b06903077a2a813be385e4ed1ce02b31bc4d9162e2fa320

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3778445928674769eb020be55c1121dfb6dd0bc75d21d5283068bcc58dd68760
MD5 2e659ab909edd9fbe10289a973b3f35b
BLAKE2b-256 3e7f5dc002dbe20a365880f6c5b3989ba8474c8c0c30293e6b609118b7b76bd2

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: numpack-0.1.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 422.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for numpack-0.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f0bf9b85964161504be09e9f713e27f2809ea56eed68ecd99e59fbe1e70b3c7d
MD5 26845bfba8149cc9d9a26608146bd4f3
BLAKE2b-256 1722aa025529ce91b0244afee72b436061e4b875d1869dd1b5647b2410ee58b2

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6ad6b6a2e1728dee06602a8b123316e6319f62659e2a8c7c7fec41fa61c74139
MD5 b11085cdc0dd50e5eed5bf57adb35aad
BLAKE2b-256 feaf9ca9f6fabc244a7985b708b1b84c7160d0cf4175179c946cb16c578097b5

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8736ab519b9aad04cda79bc732e21de857cdfa8535a4533582f3eb30b9978074
MD5 cf6d8c49f67f6ca6b79948a67e16e09a
BLAKE2b-256 1e6c94511408c635f2fc62499513415ade5202c9ac28385e5621a5af3267e007

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 dc9e7ea0fd10c2b6097e3bde9ce5c50342926ec98e633f5ded4c845dc9e6b1b0
MD5 bb7bba7267fc9a4fc89e8f8964185122
BLAKE2b-256 de6791b329e77864dd8fcb4fbfd1122ea53bec42178824deef9b3f36e13b2698

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: numpack-0.1.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 421.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for numpack-0.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4cdbb3dd145fda9969fdc101f4b70f3440c44f46372571bcfe5090389568cd43
MD5 07036fdb6b73f255fe238c1876b02afd
BLAKE2b-256 2a17a0e420e9d1d85db0d983b727562e8ef9975d766480b71726a3cabc15a912

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 58e6ddde26db2b01f4e817c6bb4a3236fc001368db8ecedf7f660d1ab27ce3bb
MD5 89f0bb943817070bae195d78f2a5eab8
BLAKE2b-256 2e772ead4bfbf399bec58ef720d637807dd55765f2cf8bd7b56880855c4f85fb

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf292264fbfed0db6abeae3ba83bbd9bdcaee8d47a55a3f64eaa9c5d980e466f
MD5 72f3ae4fbd9c37496249b5e654997ec6
BLAKE2b-256 37aec175bb8e17894300741df0efeda2bec349fe769245dc8a26b424b91bb093

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 27b341ab5f83fc209b401216b6380fcd814f979f8140f852516a1ff7e59927bb
MD5 2c49952ddf0002ae41260dd0b1a9d834
BLAKE2b-256 ef27d4d65bcf50ea78e008cf184bee25980f554221c1a018e83402e9909f9aaf

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: numpack-0.1.7-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 421.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for numpack-0.1.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a7675638903f36ea3b4b14eaa2cffb384fd5cf6f58b4d258b05a609c48a58cd9
MD5 f56ebbd824242e459f395a5bbc43cc06
BLAKE2b-256 86b247a9c91e2b5ee316e5922ace175697ea89f1ce953e8876096c534c21ea58

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 24639fcc5f43a320013e54f3e01c68b603b3cf05726139302255ebd50fa4af09
MD5 4f6c432c5f6f89e88d59e19e6f435748
BLAKE2b-256 3a3b83e1a7ed3f493cafdb2e99951516375c8ed326608325012bf4d1e593a4cf

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e47e956c2d6972b727102eff9bc57371fbf43b1d6580b555b7d9b72c1fa49b08
MD5 fecc6d97c992bd1a96bc82f4ef760889
BLAKE2b-256 265f790572e4da0d9c1db307c54f22cd539f41d3bab162671ac2f0c1a8d1d6b4

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6fe3fc6c2ae21c081820872d2987e847b862710a7a8f90e7d902db9f5b31a66d
MD5 c80dace4b012c043e37e5f424f5a3460
BLAKE2b-256 f7f8dfe47089b424290f39e178d2fcc929040ef4745d827c3a8819854021d6d8

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: numpack-0.1.7-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 421.6 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for numpack-0.1.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 769eee5fd1e63baadf64ad498529962a34bd4684285c649b723fe3422983983b
MD5 4e745bad00481acf5466c2c86d1c93b4
BLAKE2b-256 d9cf8aeeec5028d78d389688fdd5ab3f98de31f175f6a822ad2f074781fac2bd

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6e93c04c3d8404b97426a92f86e26cd96f73c5cc93062f1b75c83877ac8d7ec6
MD5 ba6819d26275f4904027de60c63e6f4f
BLAKE2b-256 65be49238c072f9e7ce33a3896c02e2256ff2bc13652612923e61b3290799cb0

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a9836768086cfb95f1db3bb8517bb27148f2094cbeace7ebd550cb870e3086b
MD5 f7be4531520b52351d33462d3aa96fb3
BLAKE2b-256 31ff5ccb4be770f5d002c507fc3b413533d58244e2fe6bb3303d9cda936ab902

See more details on using hashes here.

File details

Details for the file numpack-0.1.7-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for numpack-0.1.7-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 324bbc3c6c1388a2849942287d42ed55f7f404f1df6963a20b953e0ecb9c5563
MD5 338eb27b95c9004f2a43120546f35446
BLAKE2b-256 a807c7c0b73f35a289cfba0f5c3efbed4a2d858496059ff3fcb7389af9529626

See more details on using hashes here.

Supported by

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