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 NumPack NumPy NPZ NumPy NPY
Drop Array 0.001s (22.00x NPZ, 1.00x NPY) 0.022s 0.001s
Drop Rows (500K) 0.075s (0.61x NPZ, 0.41x NPY) 0.046s 0.031s

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

numpack-0.1.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (609.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

numpack-0.1.3-cp313-cp313-win_amd64.whl (416.4 kB view details)

Uploaded CPython 3.13Windows x86-64

numpack-0.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (607.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

numpack-0.1.3-cp313-cp313-macosx_11_0_arm64.whl (553.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

numpack-0.1.3-cp313-cp313-macosx_10_12_x86_64.whl (573.1 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

numpack-0.1.3-cp312-cp312-win_amd64.whl (416.4 kB view details)

Uploaded CPython 3.12Windows x86-64

numpack-0.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (607.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

numpack-0.1.3-cp312-cp312-macosx_11_0_arm64.whl (553.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

numpack-0.1.3-cp312-cp312-macosx_10_12_x86_64.whl (573.1 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

numpack-0.1.3-cp311-cp311-win_amd64.whl (416.9 kB view details)

Uploaded CPython 3.11Windows x86-64

numpack-0.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (608.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

numpack-0.1.3-cp311-cp311-macosx_11_0_arm64.whl (554.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

numpack-0.1.3-cp311-cp311-macosx_10_12_x86_64.whl (574.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

numpack-0.1.3-cp310-cp310-win_amd64.whl (416.9 kB view details)

Uploaded CPython 3.10Windows x86-64

numpack-0.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (608.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

numpack-0.1.3-cp310-cp310-macosx_11_0_arm64.whl (554.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

numpack-0.1.3-cp310-cp310-macosx_10_12_x86_64.whl (574.0 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

numpack-0.1.3-cp39-cp39-win_amd64.whl (417.3 kB view details)

Uploaded CPython 3.9Windows x86-64

numpack-0.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (608.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

numpack-0.1.3-cp39-cp39-macosx_11_0_arm64.whl (554.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

numpack-0.1.3-cp39-cp39-macosx_10_12_x86_64.whl (574.7 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 38975389f69d2139d501b15df0e818f677724c5f2171245a6a9c83d96887214d
MD5 c7b4d3a52b719030eb0e6dcc0c6aa23e
BLAKE2b-256 c5ed8270c79cd6970ab9743ea7ca5b6b3aed9455d43133b44629c0d66e88c830

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3c966a3addb8a1818a0ae253a56d1a3f6a3e6308e0ae6f86ae65d20cf665c2a7
MD5 804fa72e6d777bd2d6dd3d1b48373e32
BLAKE2b-256 9894751360e6dd7b4d0deffd63c8a116202fc951367bd4b42bdde62f1cf1b10d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 416.4 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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 511dfe6d0d5f3b94cf3c17ff6cb08219162a4fc4446eb86fc593fce4b8891d50
MD5 aa6efd8b4eb2dcc968fb7297d0b2de30
BLAKE2b-256 37694fed586b9bc6bba9eb0c679754a8a9417917c4b7a6e70d0fc1ed432cf33f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 212eee05ddcb0ad2c2b72a6c91c67687f4f3ae9f3a4358fc3e43b4c5c2a3331d
MD5 4b5bbb79869991e894770de8f93607d1
BLAKE2b-256 9c315c933eb7beed6d63759201b9acd69e691f89aad8a215c98dab84aa55450d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 54bb16570698ddd22d7157bd1ae0ae49719290a3c5e7607300447a68afc78bee
MD5 a8f19e7b40f583266d683b423a00ddb6
BLAKE2b-256 6529c08d4432653ac63396de21da40b7da43794ca737538af05720a797aaf849

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 acf6fa03f10fcecbf9a890df9f3d223c67bd50363153f6700102ec9b1236d79c
MD5 0b02fe50fb2fd8c8d60677bbbad60362
BLAKE2b-256 9bc958b8d477b55dcefe5541f6dd0ede7d6f388e63584f93c00022363a5551ad

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 416.4 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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ee41ca5c35c6bd6ec3899391ac6f7de12413e61c602ac6b74123c0b18a6fa6c9
MD5 9631f04c24a4e9d454386e2d8cf7e1e6
BLAKE2b-256 818bd7ea77758f67a8f65189f5175368bcbc76ee4ca73168a7c44926036feacb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8e0061d7247d09dbd0adc9bae276e6ad73d5126950332209c71e04dc43143a06
MD5 e5cd91d87da7853302d8aeabf6522824
BLAKE2b-256 d0f14f0978955cbbc99ef467cd36f136e06d90296dd7f3d95d4c2c09ad1fbe8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 532513b77d5e817dcc09293486dbaa0637e8bcb800a715b1de1ab81d8aa57a9c
MD5 6ce4a8b01f7d5ff7fcbe046c5fecb4c8
BLAKE2b-256 167198d4335fc94f011dadfe6c0f7e1f568d2e2e7218a50021c936b6cc5594ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1cc31e33d496834bf2c807f3341d5eb7137d6eb1c04f303a52f39fe3fc3450a6
MD5 5757677c4dcc5532e73f1a7458f25968
BLAKE2b-256 37b977dd5563d3a94066343eee7a1dde21c0996a527970608a3e0a40270e9103

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 416.9 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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f25ceb91b8c7559c0d7558f1158aff2b7e559457bce13ad1f4df26e65a1cc479
MD5 cdb34627ae256b4b0d4506040fe1d1e8
BLAKE2b-256 8c37064c12bc5657f30d170ffaff1d8119cf9ac9268b64cf6b8bc43cd49bcff1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a449c767d9a1eeac8f197bd1c3a6c84e4ba49ddc6051cc8ac264e7929c2b6c0f
MD5 2dc4be657f002a9fcb9799810bfc385e
BLAKE2b-256 07cae52c14f2656801a7bcb3bdc68b352f1b510f6e4d03b2391218e87b1d637e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a883a3c2cc519e757c8a260c04277dd5a9a06d4fed28855dd8253b453b813832
MD5 549ce511cb5bd0157b473a21a6669104
BLAKE2b-256 831871f27bf11f0113be41ccde3dc54b894e5a527d63327b98f98318661f71da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 83ab51d54cdb39dbb8c94a557f3c4526f644698648f0a78b9e9243356188325e
MD5 798ca5a204603c0c821b3ef0daca1623
BLAKE2b-256 c01875ff9f91d307a05aafe2e5374801d9f2e903570beca51c5e58fb81d5236c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 416.9 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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9f93defce6ff1d56b333a6c30ef498668efa72c9b4595dd94ba90273a7588a65
MD5 4056724393bb4d79c21f5e80739c42cd
BLAKE2b-256 6a156179c0459e4d00b03cf2285f549e76634d0043628286cf72a4d7c6fc6d40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fa89a6e0e131063234065536176af3d7489a465a2381b0809f2b38cd135f18e4
MD5 17b9cec00f76cabe8125cc3a86a919f1
BLAKE2b-256 4a9233a6949dd898679986dfa0dc188fba7b4c4fa8d364508b4875defe61509b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e3238a77f060a8507adc75d155083645349ec214a27785b9a119154347224b62
MD5 3adad792cc13dad96bce0f1e9e75d971
BLAKE2b-256 b152120553b34fe7707ef042bd735059eb941864dff4c85386486745048c05b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3f51f488aad1a70c59bafcfaefa398d77415bdf2884463a52b247ad06f17e991
MD5 f55521304608ae03cb98f4abbf3173e0
BLAKE2b-256 36657cdd48504eda210f17712f6e32d1fc882af808a36b450670a08f38184544

See more details on using hashes here.

File details

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

File metadata

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

Hashes for numpack-0.1.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 728d0874882469f17c4a58a885beda6e4d314dba60b58d2ea77f2069826b25bb
MD5 eac39f22a0944cacc044322d284f9638
BLAKE2b-256 10b00136c58a828f0eac34bca18b1d106ad51534e3fa8e4498cb85d3c1f3324e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5f087ccccf685e4972727e6b0e4b9bf0b4ce4dd00251b9e26fa3030de63abfb3
MD5 4adec5b8021d584bf75ff0e51c7999dc
BLAKE2b-256 ced12eba14dc122908a3e95501fac0c4c6a862db8f26da41ebbaf76b1eb02c4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4be37c88675e799b265497e7c65915b7a56addbf405c128d4530381ba6bae0de
MD5 04199bb053b71d6228060d26a46e23b6
BLAKE2b-256 fd421b7824ce8dd62b2bcb6f903b58087921a9c550ded5b1f4f7829b5955951b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.3-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0817588b540e78318554b866d9de1c4c3426dc410a6ca89c3ce8a30ce0aca3d5
MD5 bea11696f4bccdbcac0ad1a476828b42
BLAKE2b-256 0324662f54f4c2bf634a89b51c460d74f0e5a1a29f30faefa7f446857e458133

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