Skip to main content

A high-performance array storage and manipulation library

Project description

NumPack

NumPack is a high-performance array storage library that combines Rust's performance with Python's ease of use. It provides exceptional performance for both reading and writing large NumPy arrays, with special optimizations for in-place modifications.

Key Features

  • 🚀 458x faster row replacement than NPY (improved from 397x)
  • 343x faster data append than NPY
  • 💨 46x faster lazy loading than NPY mmap
  • 📖 1.50x faster full data loading than NPY (improved from 1.3x)
  • 🔄 21x speedup with Batch Mode for frequent modifications
  • 89x speedup with Writable Batch Mode
  • 💾 Zero-copy operations with minimal memory footprint
  • 🛠 Seamless integration with existing NumPy workflows

What's New in v0.4.2 ✨

Major Performance Enhancements 🚀

  • 50% faster Full Load (8.27ms → 4.11ms for 38MB data)
  • 27% faster Save (16.15ms → 11.76ms)
  • 43% faster Batch Mode (34ms → 19.5ms)
  • 38% faster Replace operations (0.047ms → 0.029ms)
  • 15% improvement in competitive advantage (1.3x → 1.50x faster than NPY)

New I/O Optimizations 🔧

  1. Adaptive Buffer Sizing

    • Small arrays (<1MB): 256KB buffer → 96% memory saving
    • Medium arrays (1-10MB): 4MB buffer → balanced performance
    • Large arrays (>10MB): 16MB buffer → maximum throughput
  2. Smart Parallelization

    • Automatically parallelizes only when beneficial (>10MB total data)
    • Avoids thread overhead for small datasets
  3. Fast Overwrite Path

    • Same-shape array overwrite: 1.5-2.5x faster
    • Uses in-place update instead of file recreation
  4. SIMD Acceleration

    • Large files (>10MB) use SIMD-optimized operations
    • Theoretical 2-4x speedup for memory-intensive operations
  5. Batch Mode Intelligence

    • Smart dirty tracking: only flushes modified arrays
    • Zero-copy cache detection
    • Reduced metadata synchronization

Core Advantages Enhanced

  • Replace operations now 458x faster than NPY (up from 397x) 🔥
  • Full Load now 1.50x faster than NPY (up from 1.3x) 📈
  • System-wide optimizations benefit all operation modes

Features

  • High Performance: Optimized for both reading and writing large numerical arrays
  • Lazy Loading Support: Efficient memory usage through on-demand data loading
  • In-place Operations: Support for in-place array modifications without full file rewrite
  • Batch Processing Modes:
    • Batch Mode: 21x speedup for batch operations
    • Writable Batch Mode: 89x speedup for frequent modifications
  • 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 (16-bit, 32-bit and 64-bit)
    • Complex numbers (64-bit and 128-bit)

Installation

From PyPI (Recommended)

Prerequisites

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

From Source

Prerequisites (All Platforms including Windows)

  • Python >= 3.9
  • Rust >= 1.70.0 (Required on all platforms, install from rustup.rs)
  • NumPy >= 1.26.0
  • Appropriate C/C++ compiler
    • Windows: Microsoft C++ Build Tools
    • macOS: Xcode Command Line Tools (xcode-select --install)
    • Linux: GCC/Clang (build-essential on Ubuntu/Debian)

Build Steps

  1. Clone the repository:
git clone https://github.com/BirchKwok/NumPack.git
cd NumPack
  1. Install maturin:
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

Usage

Basic Operations

import numpy as np
from numpack import NumPack

# Using context manager (Recommended)
with NumPack("data_directory") as npk:
    # 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")
    
    # Load arrays - Lazy mode
    lazy_array = npk.load("array1", lazy=True)

Advanced Operations

with NumPack("data_directory") as npk:
    # 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])
    
    # Append new data
    new_data = {'array1': np.random.rand(100, 100).astype(np.float32)}
    npk.append(new_data)
    
    # Drop arrays or specific rows
    npk.drop('array1')  # Drop entire array
    npk.drop('array2', [0, 1, 2])  # Drop specific rows
    
    # Random access operations
    data = npk.getitem('array1', [0, 1, 2])
    data = npk['array1']  # Dictionary-style access
    
    # Stream loading for large arrays
    for batch in npk.stream_load('array1', buffer_size=1000):
        process_batch(batch)

Batch Processing Modes

NumPack provides two high-performance batch modes for scenarios with frequent modifications:

Batch Mode (21x speedup, 43% faster than before)

with NumPack("data.npk") as npk:
    with npk.batch_mode():
        for i in range(1000):
            arr = npk.load('data')      # Load from cache
            arr[:10] *= 2.0
            npk.save({'data': arr})     # Save to cache
# All changes written to disk on exit
# ✨ Now with smart dirty tracking and zero-copy detection

Writable Batch Mode (89x speedup)

with NumPack("data.npk") as npk:
    with npk.writable_batch_mode() as wb:
        for i in range(1000):
            arr = wb.load('data')   # Memory-mapped view
            arr[:10] *= 2.0         # Direct modification
            # No save needed - changes are automatic

Performance

All benchmarks were conducted on macOS (Apple Silicon) using the Rust backend with precise timeit measurements.

Performance Comparison (1M rows × 10 columns, Float32, 38.1MB)

Operation NumPack NPY NPZ Zarr HDF5 NumPack Advantage
Full Load 4.11ms 🥇 6.17ms 165.03ms 34.37ms 54.02ms 1.50x vs NPY ⬆️
Lazy Load 0.002ms 🥇 0.091ms N/A 0.357ms 0.102ms 46x vs NPY
Replace 100 rows 0.029ms 🥇 13.29ms 1493ms 7.82ms 0.50ms 458x vs NPY 🔥
Append 100 rows 0.060ms 🥇 20.58ms 1499ms 8.88ms 0.21ms 343x vs NPY
Random Access (1K) 0.047ms 0.010ms 🥇 165.83ms 2.93ms 5.05ms -
Save 11.76ms 6.20ms 🥇 1332ms 69.11ms 57.59ms 1.9x slower

Performance Comparison (100K rows × 10 columns, Float32, 3.8MB)

Operation NumPack NPY NPZ Zarr HDF5 NumPack Advantage
Full Load 0.34ms 🥇 0.41ms 16.79ms 5.03ms 5.68ms 1.2x vs NPY
Lazy Load 0.003ms 🥇 0.088ms N/A 0.414ms 0.079ms 29x vs NPY
Replace 100 rows 0.035ms 🥇 1.36ms 150.41ms 3.55ms 0.19ms 39x vs NPY
Append 100 rows 0.056ms 🥇 1.66ms 150.73ms 3.53ms 0.20ms 30x vs NPY
Random Access (1K) 0.055ms 0.010ms 🥇 16.32ms 1.58ms 4.66ms -

Batch Mode Performance (1M rows × 10 columns)

100 consecutive modify operations:

Mode Time Improvement from v0.4.0 Speedup
Normal Mode 409ms 52% faster ✨ -
Batch Mode 19.5ms 43% faster ✨ 21x faster 🔥
Writable Batch Mode 4.6ms 6% faster 89x faster 🔥

💡 Note: All modes benefit from v0.4.2 I/O optimizations. Speedup ratios are calculated against the optimized Normal Mode baseline.

Key Performance Highlights

  1. Data Modification - Exceptional Performance 🏆

    • Replace operations: 458x faster than NPY (improved from 397x) 🔥
    • Append operations: 343x faster than NPY (large dataset)
    • Supports efficient in-place modification without full file rewrite
    • NumPack's core advantage - now even stronger
  2. Data Loading - Outstanding ImprovementsSignificantly Enhanced

    • Full load: 1.50x faster than NPY (improved from 1.3x)
    • Lazy load: 46x faster than NPY mmap (0.002ms)
    • 50% faster than previous version (8.27ms → 4.11ms)
    • Optimized with adaptive buffering and SIMD acceleration
  3. Batch Processing - Enhanced PerformanceImproved

    • Batch Mode: 21x speedup, 43% faster than before
    • Writable Batch Mode: 89x speedup, maintained excellence
    • System-wide I/O optimizations benefit all modes
    • Normal Mode also 52% faster from optimizations
  4. Storage Efficiency

    • File size identical to NPY
    • ~10% smaller than Zarr/NPZ (compressed formats)
  5. New in v0.4.2

    • Adaptive buffer sizing (256KB/4MB/16MB based on data size)
    • Smart parallelization strategy
    • Fast overwrite path for same-shape arrays
    • SIMD-accelerated large file operations
    • Intelligent dirty tracking for Batch Mode

When to Use NumPack

Strongly Recommended (90% of use cases):

  • Machine learning and deep learning pipelines
  • Real-time data stream processing
  • Data annotation and correction workflows
  • Feature stores with dynamic updates
  • Any scenario requiring frequent data modifications
  • Fast data loading requirements

⚠️ Consider Alternatives (10% of use cases):

  • Write-once, never modify → Use NPY (faster initial write)
  • Frequent single-row access → Use NPY mmap
  • Extreme compression requirements → Use NPZ (10% smaller, but 1000x slower)

Best Practices

1. Use Writable Batch Mode for Frequent Modifications

# 89x speedup for frequent modifications
with NumPack("data.npk") as npk:
    with npk.writable_batch_mode() as wb:
        for i in range(1000):
            arr = wb.load('data')
            arr[:10] *= 2.0
# Automatic persistence on exit

2. Use Batch Mode for Batch Operations

# 21x speedup for batch processing (43% faster than before!)
with NumPack("data.npk") as npk:
    with npk.batch_mode():
        for i in range(1000):
            arr = npk.load('data')
            arr[:10] *= 2.0
            npk.save({'data': arr})
# Single write on exit with smart dirty tracking

3. Use Lazy Loading for Large Datasets

with NumPack("large_data.npk") as npk:
    # Only 0.002ms to initialize
    lazy_array = npk.load("array", lazy=True)
    # Data loaded on demand
    subset = lazy_array[1000:2000]

4. Reuse NumPack Instances

# ✅ Efficient: Reuse instance
with NumPack("data.npk") as npk:
    for i in range(100):
        data = npk.load('array')

# ❌ Inefficient: Create new instance each time
for i in range(100):
    with NumPack("data.npk") as npk:
        data = npk.load('array')

Benchmark Methodology

All benchmarks use:

  • timeit for precise timing
  • Multiple repeats, best time selected
  • Pure operation time (excluding file open/close overhead)
  • Float32 arrays
  • macOS Apple Silicon (results may vary by platform)

For complete benchmark code, see comprehensive_format_benchmark.py.

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.

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 Distribution

numpack-0.4.2.tar.gz (327.8 kB view details)

Uploaded Source

Built Distributions

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

numpack-0.4.2-cp314-cp314-win_amd64.whl (511.9 kB view details)

Uploaded CPython 3.14Windows x86-64

numpack-0.4.2-cp314-cp314-macosx_11_0_arm64.whl (541.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

numpack-0.4.2-cp313-cp313-win_amd64.whl (504.0 kB view details)

Uploaded CPython 3.13Windows x86-64

numpack-0.4.2-cp313-cp313-manylinux_2_34_x86_64.whl (624.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

numpack-0.4.2-cp313-cp313-macosx_11_0_arm64.whl (533.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

numpack-0.4.2-cp313-cp313-macosx_10_12_x86_64.whl (596.1 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

numpack-0.4.2-cp312-cp312-win_amd64.whl (504.4 kB view details)

Uploaded CPython 3.12Windows x86-64

numpack-0.4.2-cp312-cp312-manylinux_2_34_x86_64.whl (624.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

numpack-0.4.2-cp312-cp312-macosx_11_0_arm64.whl (533.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

numpack-0.4.2-cp312-cp312-macosx_10_12_x86_64.whl (596.4 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

numpack-0.4.2-cp311-cp311-win_amd64.whl (504.1 kB view details)

Uploaded CPython 3.11Windows x86-64

numpack-0.4.2-cp311-cp311-manylinux_2_34_x86_64.whl (625.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

numpack-0.4.2-cp311-cp311-macosx_11_0_arm64.whl (535.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

numpack-0.4.2-cp311-cp311-macosx_10_12_x86_64.whl (596.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

numpack-0.4.2-cp310-cp310-win_amd64.whl (504.3 kB view details)

Uploaded CPython 3.10Windows x86-64

numpack-0.4.2-cp310-cp310-manylinux_2_34_x86_64.whl (626.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

numpack-0.4.2-cp310-cp310-macosx_11_0_arm64.whl (536.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

numpack-0.4.2-cp310-cp310-macosx_10_12_x86_64.whl (596.3 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

numpack-0.4.2-cp39-cp39-win_amd64.whl (504.2 kB view details)

Uploaded CPython 3.9Windows x86-64

numpack-0.4.2-cp39-cp39-manylinux_2_34_x86_64.whl (626.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

numpack-0.4.2-cp39-cp39-macosx_11_0_arm64.whl (536.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

numpack-0.4.2-cp39-cp39-macosx_10_12_x86_64.whl (596.4 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

Details for the file numpack-0.4.2.tar.gz.

File metadata

  • Download URL: numpack-0.4.2.tar.gz
  • Upload date:
  • Size: 327.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for numpack-0.4.2.tar.gz
Algorithm Hash digest
SHA256 aec1d51597c03cd1e59b19b647494c58565734470259af31d055785017b2108b
MD5 71bffe1a32e7b46ec80394b04a376e17
BLAKE2b-256 7f42151ba630eab28ee2773e1f7dd45ea789941b2eda6f1ff757c769b05e9a41

See more details on using hashes here.

File details

Details for the file numpack-0.4.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: numpack-0.4.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 511.9 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for numpack-0.4.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 fb0ade8865613276b1ee627a44198005b99f262df0811ef6d822aa68ac13f635
MD5 e3e46e8105fea7e84aeebe77acb0ef1f
BLAKE2b-256 0bce2d4c18399f4fe76cdc104a07bbcd436b35f96dea5ca2a7541e1b0efc3d96

See more details on using hashes here.

File details

Details for the file numpack-0.4.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for numpack-0.4.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a4f5670d1808d6cbd5cbbce68f93379d13689194efb37601ad97a6e9d77480c7
MD5 b503c318206289abf58cf5084055a77a
BLAKE2b-256 d9563440d2f620721c8801e3833a025c3c3b0eb78b680cb9340390be05020d22

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.4.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 504.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for numpack-0.4.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b4c0ab1fc14c030130e995106b18fce07fc84c11a93f0c0816fdbd49a1fbf2ef
MD5 cc30a8ab460877d49ed20eaefe2d6bdf
BLAKE2b-256 6f96443105c807affa04dd806a31a6744d9bb37ae324d440ee2399afbb872322

See more details on using hashes here.

File details

Details for the file numpack-0.4.2-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for numpack-0.4.2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 cad6b2f7975b8949541d5dbe5a09b86d1a00f330c1b20da34e43bae60008229f
MD5 e692bc8afe2f3985df37af27fde9029e
BLAKE2b-256 f515bb02dd43ef736218c3c7aa9d26fb943a8dc1f23ca53bf6ce0b2ab92b5a64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.4.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f74537c52a02bc3c27d0a6748ffb137ef6920bcc6d3b0be720a8733700f5c2b
MD5 8999f081bb8c35be0ec859f9e15b0f20
BLAKE2b-256 f0c96349d2f4633ea55e934ce8b46316379b822d5831c29dec88b36b0bbd1c8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.4.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1f50ac557081028f2ce6cb0c0acc8490f3a1f289d8823ecfaeeb9aa9d42cfed8
MD5 2cb755f677e85a6471d93cce6f1bded7
BLAKE2b-256 a9e1553736801e452426eb611720b622c1c0f50e68b4938a5ca1335a4b408f98

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.4.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 504.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for numpack-0.4.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9f6d752de32fd86d4d09e8732d3d556529f68d4a1304fba22142eab5b344c07a
MD5 a4c3056eb10f0bbf4dd078b44c87ccf8
BLAKE2b-256 f241d2b4bf97814c4c5cd1eec1d5f8863af2dbe9ef452df9bdc02bc795a3b95f

See more details on using hashes here.

File details

Details for the file numpack-0.4.2-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for numpack-0.4.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ad65b7058c3f1898fac7b3a34ecec5b65b81056622458e05cb7992d69e851056
MD5 0981604d2a5d9dc8f8e3d7a8ce0d9fc7
BLAKE2b-256 64c3f5db572b7387dc3f30dedf6da28c3cb2c7f514e3530b4c3ed51df71cbafb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.4.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf0189f288a004a9f36167dd51d75294c1195f429d9753795e735268cdeb8e6a
MD5 99c0843ae80390d4caeb49ba2c52d901
BLAKE2b-256 cf75ae2596884f9fabb6aad4025ae908907f6a6c4ec5a89aa657d12d1d7ed0ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.4.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3fa5db75d5add6ff4e7076c688dfe9e039c53ee1cbf5987eec1533eb1ebc150e
MD5 fe5cf821155656a3ba545f4156c2d7a0
BLAKE2b-256 73cba550cbe0cdf92fcb260761875c0eb74fc2235cbb06f851e7cb21b18c9aa6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.4.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 504.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for numpack-0.4.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 90204754023da304f7f143616b06c4ffc21cee3f2a280a7028bfad219742fb1b
MD5 270785d8bb199c87d1081dd65c72a8d6
BLAKE2b-256 bae303f04bd131e82a01c1cdd7d18e8d625b1d870d7ae43bd2baab44e53987f6

See more details on using hashes here.

File details

Details for the file numpack-0.4.2-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for numpack-0.4.2-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2e94d757f5e95ca6f2a7f4eb6bc4ddfd147952f97410f5d77f7a05a8e462ce32
MD5 7a5fc399bd21105a4a2cadaab2070ca2
BLAKE2b-256 8c4c9f75d9a0490ec8d6edd63b721d2fa969d3ed59d0c5f299e2993f3b1dccb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.4.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9dc703420436554e5a5b201ccfe9813dfde7e2ea482bf522dcc337be2312b87b
MD5 d1819b2c3a7646a7e911b27941653616
BLAKE2b-256 559764961d2a905822df5aecd00ed70d877fc54bd74ed79efe3415e912199e8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.4.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a1faa006519ba27afafe21bb02490ca728bf772cecfd52c4bb23e5f792007468
MD5 4418e97fa0c1b18c6f7a97d62ca34f01
BLAKE2b-256 c736283608238ccb76303a404869ed4e74ecdcc250ce4020a6fab1399f40311d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.4.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 504.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for numpack-0.4.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b193e9c1c7eaffeef910b392901cabddf582722187e5abbc1be20cded5f217b8
MD5 87afd11fc94bc2ff2468d58b82477dd4
BLAKE2b-256 8b844b72cced4e272c5c88ac3f93a2ca9ba1c7aff4ae8037224add5a4b2bdb6f

See more details on using hashes here.

File details

Details for the file numpack-0.4.2-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for numpack-0.4.2-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 01b780e95d52bbd8975cbfb70e48aff5285f535f2c864a91e592c072f48d3b6a
MD5 aeea57b3777e08edd3f10f2f2c5daab9
BLAKE2b-256 057736fb768c16e1cc76a8094ff43af75cc4cbdb667f97aacc3e2dec6bce1f3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.4.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06facb742115f095a01e53881a8e4b3b51514c0a73d09b21c6682e65e1ae79f4
MD5 bac154c0a1f9e5ed2c7fe636b13e8131
BLAKE2b-256 93811bcdc6bd8b4bf04d6671776998645fbfae446f40fb671e3734bc0d5bdda4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.4.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0cb64b0ac74ec13d3f2fd5bfa2bd234fdf9c449fa7271ec0ef1deb116bfa3f19
MD5 2e5ba2b1fbbbe22891e95eb6ebd9d23b
BLAKE2b-256 2f72b7dea7258c46542912b46603b5f6dab83f0b9a3f544b7d562f94144ba057

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.4.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 504.2 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for numpack-0.4.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d002091686628ed71ecd827e7f0e3583fbd1d020962832eee4a4e223c22e8bb3
MD5 b8f11434c56522aec0b092da367deeb1
BLAKE2b-256 51c2090ea4d346d4919f6589e3dc12a07669bed810511a570aeb746467a3693d

See more details on using hashes here.

File details

Details for the file numpack-0.4.2-cp39-cp39-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for numpack-0.4.2-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2f7082b5a2e8ff5717c74ac5ea55be0da5e3350da3cf598fe9e614ff1b3061c6
MD5 a62de25a8def7a819bc2def6d050d2dd
BLAKE2b-256 b9caf27d4729af8fd532dc3f7b34e7f5f6ea9cdfdaabfe0820c0aea9cf4684a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.4.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03f0b1775f98790a7076c235a0069b9f5432953332933be308975c17e71ea221
MD5 9aeef2c52af32e5d68ce389237b63cbd
BLAKE2b-256 613733852b7707fa15cffa73aa7345cceb424fc47bf236c19bfa2b3c1a72d8a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.4.2-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 633f9dac4b9c0777a598482e9c6ec5aef4d08f190e4bf1542e663e750600515e
MD5 9dc5ff788a2b6ee51cdee31c85a5502e
BLAKE2b-256 d9fab38421f55cb64eb3a5acce9a49fac5f7a4c0df8442d6d44e3012dc9b7d3f

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