Skip to main content

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

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

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.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (620.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

numpack-0.1.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (620.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

numpack-0.1.4-cp313-cp313-win_amd64.whl (427.3 kB view details)

Uploaded CPython 3.13Windows x86-64

numpack-0.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (619.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

numpack-0.1.4-cp313-cp313-macosx_11_0_arm64.whl (566.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

numpack-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl (582.5 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

numpack-0.1.4-cp312-cp312-win_amd64.whl (427.3 kB view details)

Uploaded CPython 3.12Windows x86-64

numpack-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (619.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

numpack-0.1.4-cp312-cp312-macosx_11_0_arm64.whl (566.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

numpack-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl (582.5 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

numpack-0.1.4-cp311-cp311-win_amd64.whl (427.6 kB view details)

Uploaded CPython 3.11Windows x86-64

numpack-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (619.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

numpack-0.1.4-cp311-cp311-macosx_11_0_arm64.whl (566.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

numpack-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl (583.5 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

numpack-0.1.4-cp310-cp310-win_amd64.whl (427.6 kB view details)

Uploaded CPython 3.10Windows x86-64

numpack-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (619.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

numpack-0.1.4-cp310-cp310-macosx_11_0_arm64.whl (566.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

numpack-0.1.4-cp310-cp310-macosx_10_12_x86_64.whl (583.5 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

numpack-0.1.4-cp39-cp39-win_amd64.whl (427.9 kB view details)

Uploaded CPython 3.9Windows x86-64

numpack-0.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (619.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

numpack-0.1.4-cp39-cp39-macosx_11_0_arm64.whl (567.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

numpack-0.1.4-cp39-cp39-macosx_10_12_x86_64.whl (584.1 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 808b0e1bdacbe19fab4912c251fbb736e8318d6e0b3ac1abc1fceb5a1d312a8b
MD5 daa15dc048c5a8889e9ab3ada97e4ad8
BLAKE2b-256 e1970886429bf4e6062e5d6d4b86472ffd7004fd8b254e69526461e62728afc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0948f246bf9462180987d39f1170be114be86f7408580328a197ea0ed55dc8a0
MD5 26c9dcd21c89b2b39d9496f13d109ddf
BLAKE2b-256 1abe61fca99e9786e6439795d67e3facbc47c649a9b30da55edeebae7b3a5e61

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 427.3 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

Hashes for numpack-0.1.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bef22027cbf0fd8ca2d4115f9a3c3e8562014056bfd31598837ef8153d483439
MD5 e9e81d182540ed862d7b7b3a47436801
BLAKE2b-256 887d1f3b6c34882b52ffff04aad094e0b03edb451262f666c1e9e4f3fd9e295a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2aac4d9c71dc7aa99cff80d83d2a3de1067be0dd2c657bb4774d3741735197ee
MD5 e2d3ea46a4eef435305e4943903f02ac
BLAKE2b-256 2fd69c3b4bf1f85dff48fb28b376b5357ea84bb4cc4d768612566dc0488e0ac3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5fb959f7497a360b29b2e160082d8c6c8ec7cb55e7e5715e4a378762353b665d
MD5 6d7874a97437aa01a9df1af68d6516fd
BLAKE2b-256 c14f3864f7832f3433fdbe0bd2fd2165b5c73f1f3aab35fb15be3ea6b3fda25e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6aaaad330beb300d14c51a88e466ac3bb60832ade2dddde531b76646157a1aef
MD5 9c7bb9140e3b9b8f7d3ee07848e5a784
BLAKE2b-256 975cc87cae9b5da58ea1cc24be2191b47a2bde0dc93fc4eae15cea54f7e1502e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 427.3 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

Hashes for numpack-0.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a8f8dc57db9d29a1136b14c67b5cc18314d1c37965d9bae887ebda433f7b5470
MD5 5e90d9007df37f1400720946303a7f68
BLAKE2b-256 775cd755d99177ed24ceb48dffe495494bd731cb98f8304f633cb847160a468f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 85ee322ccacceb02b056e7891e6bd392034b3dd1c77c428d86456fd0bbe476b1
MD5 4fa40d09ad2de7f2aa7c2a0c744c2534
BLAKE2b-256 0133f17194f0586f695700f5cd24c18fa6c3e46b089c1c7fc48d644ad1c68a1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6775c1ddb32f56855a7662b2403ef4e5663a14ce9e7ee25975d8e6eee43a8cd2
MD5 28c9f289fcf0d7c4b6d2a5dafac13588
BLAKE2b-256 9b0099972178a3b1c4c48cceb137e6fd01e84608430c56b5e6f17e3d8db79fef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 eed6af6bbc3bca127585aa7500b0f9f108e1c91fc9747cf8c3cfb3b6e2ccc8c0
MD5 66ae977088dd9d563f56ee2068b50e90
BLAKE2b-256 22c695b4588c30ac53c12b828bb8f201372cc395d5ee44bd022b770677cd700c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 427.6 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

Hashes for numpack-0.1.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4ae72f1b6c77d0d031b9b0be5789e72a200a407108d1ff4a24238acad3f48d55
MD5 40435da49b442354d7c057eba392fcd5
BLAKE2b-256 6f50f5647526283ba714aa86c187c8cbec4a29216d50a69f2d92b7ab396e5c27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9c1ab425a13a357d1c59e3f8f45ab62e194bb997266cc4090dd29227a0ab4238
MD5 8873743b060b82818e575fef97bd3fdb
BLAKE2b-256 088192797382bec87034ab5b4b9c8878588e41157ef8fa61945f8a28921eb593

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c14ebc41b391f9e2ad6ce76c6b96f3d6cd3b62ae9860f974bf7045d9c33814ee
MD5 1dd59fd12a9214ae30fb9557a2cdaf40
BLAKE2b-256 62c9bd773d266bcc3cf47e338a26d73558f42fffeca3b1c4f259ae8d504abb9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ab70d8678b26640ffec00cc3ad300a38a4b42853dd0a78dbf1ae5b58fbc94436
MD5 6cbeeaef0b78d2cd6d93ef6af3fe758e
BLAKE2b-256 5db07d8de7cf44af41cb85681c3de174d09f8da9c9c1d1f395b282368d86d6c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 427.6 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

Hashes for numpack-0.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f9a829a003ffd5943dabefd3d6cc07aa5752d5fb7356d43f915e145fd8e28d80
MD5 417f9697a147190982484960451669aa
BLAKE2b-256 46df85a7d35f072797f8a6a3e9034ce8a1e026f3a0e9675c168daf1bc08cf4c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e57e53efbb8bfe12cfdd231226b65845df9133feec1354983517abc3a8db20ca
MD5 c592a33f9b49eafe4c4d4a68cf2412ff
BLAKE2b-256 e83505d746460aa5b4b89a54588d9bda544500ffa621b9574e2a92b7ec9317c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e0b616ef852e6bb0a34e5fbc28e1694425eb61ea031e8ff8ba9444e9f86d761e
MD5 f3fbc7a4e166a4d8b2f26da8b340bd41
BLAKE2b-256 a6ff64b77fbf1830c5eb748118d4758e5cc96b41406c0a68f12a898dca7a96bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 be9e9a5577f94e862c0c3a402ee0aac2ee8fbd7fbb47cbf0b8f1476da8b95da9
MD5 ed5b3f5821a430d8c9e3c4d5d51a76df
BLAKE2b-256 d12a9143f3b9a204934d5a08a0779789ec0608dc2b0c4467554156d4e2c31021

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.4-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 427.9 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

Hashes for numpack-0.1.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c4e014bb86429992e740940cfd85722549a9058991ab57f11f2c2950b3070df3
MD5 e0cc0eee2ad1d88b559a04a29576d52b
BLAKE2b-256 83c4a1c15e9bbc7fc80fdcda8fdf225c5ae5106a4c52038b6677008b64a20b63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3527b0ce26a4433de66007f5ff31a9ac960541568f3446405f46cc7bdb07732
MD5 0bd1948b83113bf78f397c1ee7c5a63f
BLAKE2b-256 8d6915077734d973179303e9dc7ba0fed697c7e33f7dc0acfeaf177df0f7825d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8df52107639c5e3a06d61fbd1486dfa96658406baa378178389a10c723366f42
MD5 ea700c8adc8eca337de9f1d64fc68d87
BLAKE2b-256 78d471df1f50531a9841c35854925f4adf713a8d052651817ccb1a46e21460b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.4-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0a876eb2075b6438fe9221136782d10c8bff713ae050b93330a6e260bead9f23
MD5 bdfd4c3e079073c692abe434f577232c
BLAKE2b-256 11a16e3a94969c47b58cc6130f29f27a15be318057015fc9db3b7f26b114c317

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