高效节省内存的混合布尔数组
Reason this release was yanked:
7.8.13 ~ 7.10.8 全版本存在导入失败致命 bug,7.10.9~7.10.20 存在 uint8 溢出、memory_usage 持续报错,全部版本无法正常使用,请升级至 7.11.0 稳定版
Project description
BoolHybridArray:高效的布尔混合数组库
一个专为布尔值优化的数组类,能够根据数据特征自动在密集存储和稀疏存储模式间切换,兼顾性能和内存效率。
安装方法
使用pip安装: pip install bool-hybrid-array
核心特性
- 智能存储模式:数据量小的位置使用密集存储numpy.ndarray数组,
- 数据量大的位置为稀疏存储array.array稀疏数组
- 非稀疏模式:数据大部分为非0(True)索引
- 稀疏模式:数据大部分为0(False)索引
- BoolHybridArr函数会自动切换
- 内存高效:稀疏数据场景下比普通列表节省50%-80%内存
- 操作便捷:支持类似列表的索引、切片和赋值操作
- 快速统计:内置高效的计数和布尔判断方法
快速开始
基本用法
导入类
from bool_hybrid_array import BoolHybridArr,TruesArray,FalseArray
创建实例
arr = BoolHybridArr([True, False, True, False, True])
arr2 = TruesArray(3)#7.9.0新增
arr3 = FalseArray(3)#7.9.0新增
访问元素
print(arr[0]) # 输出: True print(arr[1:4]) # 输出: BoolHybridArr([False, True, False])
print(arr1) # 输出: BoolHybridArr(True, True, True])
print(arr2) # 输出: BoolHybridArr([False, False, False])
联系方式
- 若遇到 Bug 或有功能建议,可发送邮件至:1289270215@qq.com
- 微信联系:18250730129
修改元素
arr[2] = False print(arr) # 输出: BoolHybridArr([True, False, False, False, True])
存储优化
创建包含大量布尔值的数组(大部分为False)
big_arr = BoolHybridArr([i % 100 == 0 for i in range(10000)])
查看存储模式(此时应为稀疏模式)
print(repr(big_arr)) # 输出: BoolHybridArray(split_index=100,size=10000,is_sparse=True,small_len=100,large_len=)好吧large_len我也不知道
自动优化存储
big_arr.optimize()
统计功能
统计True的数量
print(arr.count(True)) # 输出: 2
检查是否至少有一个True
print(any(arr)) # 输出: True
检查是否全为True
print(all(arr)) # 输出: False
性能优势
在包含100万个布尔值且只有10%为True的场景下: 或在包含100万个布尔值且只有10%为False的场景下:
- 普通Python列表:约占用1MB内存
- BoolHybridArray:约占用100KB内存(节省90%)
- 随机访问速度基本保持一致
版本历史
- 7.8.13:PyPI上的初始版本,支持基本功能和自动存储优化
- 7.9.0:添加TruesArray和FalsesArray
许可证
本项目采用MIT许可证,详情参见LICENSE文件。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bool_hybrid_array-7.9.0.tar.gz.
File metadata
- Download URL: bool_hybrid_array-7.9.0.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5743da650799de20137f887807147b446ab8a92d1b4873229f459f6ccc342aaf
|
|
| MD5 |
93314830ae6511f2e8a48ebb56268a1f
|
|
| BLAKE2b-256 |
98185af6f4d35bf439c16a25fae29c952b204d55d45915304a68d598f80d05fe
|
File details
Details for the file bool_hybrid_array-7.9.0-py3-none-any.whl.
File metadata
- Download URL: bool_hybrid_array-7.9.0-py3-none-any.whl
- Upload date:
- Size: 3.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f9756f3b4ed6c4266eb9939284fd326b6180a169cb811d3a3bfa541aac753fd
|
|
| MD5 |
33926d2c15b7121a97ecdcd882df7caf
|
|
| BLAKE2b-256 |
d2066eae1921b77a9c560acd85434a11c891d64beda7ae5c5985ad4026f50ece
|