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

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 (M1, 2020, 32GB Memory) with arrays of size 1M x 10 and 500K x 5 (float32).

Storage Operations

Operation NumPack NumPy NPZ NumPy NPY
Save 0.014s (0.93x NPZ, 0.57x NPY) 0.013s 0.008s
Full Load 0.008s (1.75x NPZ, 1.00x NPY) 0.014s 0.008s
Selective Load 0.005s (2.00x NPZ, -) 0.010s -
Mmap Load 0.006s (2.17x NPZ, 0.00x NPY) 0.013s 0.000s

Data Modification Operations

Operation NumPack NumPy NPZ NumPy NPY
Single Row Replace 0.000s (23.00x NPZ, 14.00x NPY) 0.023s 0.014s
Continuous Rows (10K) 0.001s (23.00x NPZ, 12.00x NPY) 0.023s 0.012s
Random Rows (10K) 0.015s (1.53x NPZ, 0.87x NPY) 0.023s 0.013s
Large Data Replace (500K) 0.019s (1.16x NPZ, 0.79x NPY) 0.022s 0.015s

Drop Operations

Operation NumPack NumPy NPZ NumPy NPY
Drop Array 0.001s (24.00x NPZ, 1.00x NPY) 0.024s 0.001s
Drop Rows (500K) 0.036s (1.36x NPZ, 0.86x NPY) 0.049s 0.031s

Append Operations

Operation NumPack NumPy NPZ
Append 0.003s (5.33x NPZ) 0.016s

Random Access Performance (10K indices)

Operation NumPack NumPy NPZ NumPy NPY
Random Access 0.008s (1.88x NPZ, 1.13x NPY) 0.015s 0.009s

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 23x faster than NPZ and 14x faster than NPY
    • Continuous rows: NumPack is 23x faster than NPZ and 12x faster than NPY
    • Random rows: NumPack is 1.53x faster than NPZ but 0.87x slower than NPY
    • Large data replacement: NumPack is 1.16x faster than NPZ but 0.79x slower than NPY
  2. Drop Operations:

    • Drop array: NumPack is 24x faster than NPZ and comparable to NPY
    • Drop rows: NumPack is 1.36x faster than NPZ but 0.86x slower than NPY
    • NumPack provides efficient in-place row deletion without full file rewrite
  3. Loading Performance:

    • Full load: NumPack is 1.75x faster than NPZ and comparable to NPY
    • Memory-mapped load: NumPack is 2.17x faster than NPZ but slower than NPY
    • Selective load: NumPack is 2.00x faster than NPZ
  4. Random Access:

    • NumPack is 1.88x faster than NPZ and 1.13x faster than NPY for random index access
  5. 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.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (596.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

numpack-0.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (596.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

numpack-0.1.2-cp313-cp313-win_amd64.whl (406.0 kB view details)

Uploaded CPython 3.13Windows x86-64

numpack-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (596.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

numpack-0.1.2-cp313-cp313-macosx_11_0_arm64.whl (543.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

numpack-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl (561.7 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

numpack-0.1.2-cp312-cp312-win_amd64.whl (406.0 kB view details)

Uploaded CPython 3.12Windows x86-64

numpack-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (596.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

numpack-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (543.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

numpack-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl (561.6 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

numpack-0.1.2-cp311-cp311-win_amd64.whl (404.4 kB view details)

Uploaded CPython 3.11Windows x86-64

numpack-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (595.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

numpack-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (543.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

numpack-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl (562.3 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

numpack-0.1.2-cp310-cp310-win_amd64.whl (404.4 kB view details)

Uploaded CPython 3.10Windows x86-64

numpack-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (595.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

numpack-0.1.2-cp310-cp310-macosx_11_0_arm64.whl (543.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

numpack-0.1.2-cp310-cp310-macosx_10_12_x86_64.whl (562.3 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

numpack-0.1.2-cp39-cp39-win_amd64.whl (404.8 kB view details)

Uploaded CPython 3.9Windows x86-64

numpack-0.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (596.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

numpack-0.1.2-cp39-cp39-macosx_11_0_arm64.whl (543.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

numpack-0.1.2-cp39-cp39-macosx_10_12_x86_64.whl (562.9 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e9966c79966f370a8fa6478f678e85edf2ab4bbbd599da7372f8590bf71916d0
MD5 a06013638578b49ca5618bd5432fd83a
BLAKE2b-256 b1f50d054f90978aeab799de50d7342ad4a3532ef150e0b4a2c15b26f59a1009

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b6576c4f988b617bd74e967f29c695fcbd9256b692e35f7881a9d3b8ca74784d
MD5 56329265639828803b31df2b134e8b7b
BLAKE2b-256 dc4ffea5c39e824c934236c34e8849c2902b84908995fb863892768cdda3ce36

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 406.0 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d42d364a91b932dc20130d86a009d6b0420c1ff7ffe7464a941ed9120b3c78bc
MD5 66a41969d3415344d31daaa676251288
BLAKE2b-256 c91d39a5dcee6d5881665f0d0ca6e2eec7d3b061d5fb33e5dd288916d5d7f237

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3567f2d5301be75243b7a190fda57d5219a79e148d2024bb592188e6ec835b3
MD5 87f9db821ae13c2472d4ac1f3a7ccae0
BLAKE2b-256 f2e581ea89a5ee32142076f349eb0283be4eaf35741f02c96213be6de34ec51f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37c26d522597b9bb462d15aa51c8296ea75e01ab081bb41f83de5c2032520726
MD5 bebda385fd10518538b75f5a0545ddde
BLAKE2b-256 2663319835488d750b7bd0f54f5d47d84d5e4e8a3c4e52c7f3a13b022cae5149

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f4dc39b822ef309a6ce1fb3b7b65eea4804d336d11e169efb9abdc72470392d7
MD5 45a4838fd7fbdd147db1cbf23f2a7f24
BLAKE2b-256 a11ca5a43f11f563a4f4710b3e1d2cd5412e399f3b253daf91a9c4c905c1c5cf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 406.0 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9ac95a562d8a57cc92242320f6e2ae0cd454eca2b692f852800503022e474b6c
MD5 2a7b649862b8b00074c48d2c4fea3556
BLAKE2b-256 e67dbed3564cc327caf674f70c60dfa0a0233de82a85106c4cc7e703d9602826

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 052bcb5f30fcb05861eb5cc7eadbe49584a4108027d3e3b8f6ce7c1940dc8b36
MD5 73e4153c560899b025dca78dae9af828
BLAKE2b-256 a096e737db4ae4a58379d75c23b1764c955f37e82f8c73f8df97a86f1d65ace3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 24bf0dbfc0a68c9045e74d3703f1497952e3192a4532f369d1c00ee95ca9796f
MD5 c2e07bead9ea431497ba2bb838800d45
BLAKE2b-256 8da64f401ef3d04dfd6498eb721937d8ee40ddf7ab2d56fdcef56677f5832938

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7c33d5313122d97c0aef47568e40601df3d7c82475ec3f89919b6f426e4edbbd
MD5 887c7f9f7c06480d15fcb27bfd50efb1
BLAKE2b-256 a8dfcb98e6bd96fe3daa82d509842d34c15fc3300474d4682d47c3a106d3d108

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 404.4 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 208d6daa50f26e3a0394bec96b061a08a443cabf0d9a6fcdc24f39a0d854096e
MD5 212cb02b3bcdbef760f787d64590ea91
BLAKE2b-256 2bdb66fcf03d8e3136e8025a588acb8083fd81796c38896e7e7e7cb6b140991b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4d5bb32cf84a459b418104e40628de5e24c8a4029e8d533922508e030b885099
MD5 34528d810191beeb4fb64fb9ebb67ac8
BLAKE2b-256 3309b02cde02a22c8badd2ab8ac74103f99192f30fc2a6f3eb8d9e88a1906dab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d6f9dc4da00dc540d48a2bc2545f8877aa812f990590399574f6660ce6f616bd
MD5 10b95d648a4bf176b34d093fabff6a0c
BLAKE2b-256 d836737e2875bca2972e195a6f8102146ce53d88839356608150417b885d0bd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 24bcfce18e87a91e2522e0ec4fa4aabdb816fc355297e80dd3a3648e1cdeae86
MD5 d56ba69010bc04d6dc964fc190f1e454
BLAKE2b-256 f9181481fc0aa317cf2b7016a7e0a0e02784dd99fd501bcb27142a00f9703c2c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 404.4 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d11662a81668e3b323757b570183dbdcc43e25867cd435a560f2ea184f32a325
MD5 cc4fc568c91bc0f95f67f368d3a90ad3
BLAKE2b-256 f06d65f96194d07734ff457af82df3131f585c969b2f0327b7551ae288bd43e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 84a9514cbe29383f658e8162b2e26d5c60339fde9e68062793a059185989d781
MD5 ed6f322e40e6c1cfb93ccebc847da6c8
BLAKE2b-256 e598adda412527b1ead46945d0a116ea4e861865dad5ff7a0f9cd9ad6515a301

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 63381d1bb0d37a60cb1db657d0e2036801f291fe326f3cdf507981389108c2be
MD5 82581f66bf53668424114e3eb11363ee
BLAKE2b-256 f4447a4910be72c23629d9757e8288ecd63e47c4aeb1a069d044f793a12717a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fbad0c438efec547cbe5d0ca01f6bc7fbec9a294c172860a79e386c15a733a0d
MD5 c104604dadc759f8ded9dce1a4b37832
BLAKE2b-256 9f5f97df14f008effa70d857de9a40c28c88a19ae762e4e197da453e5e9119f1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: numpack-0.1.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 404.8 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.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 de467301c70bc370a08ca40f5fa24208af60881740ed452db7712861c83ecc51
MD5 31305228af63b5043dda0d49476d6df5
BLAKE2b-256 a93f013255425d0964b48a0a627d34aa5fdfc696fa5500e49c6c16bb6397426e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 218e4d714af8fbccd23bf33bdcadbd89aec78552842a72a69060467b376f750b
MD5 bc51427884b322502d4902fee7918e81
BLAKE2b-256 807f3f9ef49c08b5c41c03293c8a3d8e6221a2fcaabfc7c2d3baf24285a76a6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f659a4e02efdf1b813eb318835bd451033c8d2616b969d3684a569e79bcd7738
MD5 c7e7c5bce04f68a8671e71e4270aa120
BLAKE2b-256 91eb6610f398f706ffb5f6edc685272d01681222806760a298a4ac5c07a5de02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for numpack-0.1.2-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fc46bf6b5741b5e29bf39bc81151f93d85d91a4b80d89882327d53ca8644e266
MD5 77876b0473a9ea3449e2d9a4d9d23563
BLAKE2b-256 a3f994d71bc5d685bdc5c28ea7e83981815f33e705051ca86876360bb814dd1d

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