You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将CSV文件中的16位二进制数据读取为NumPy一维布尔数组

高效解决16位二进制CSV转NumPy一维布尔数组的方案

方案一:简洁直观的字符串拼接法

适合中小规模文件,代码清晰易懂:

import numpy as np

with open('test_file.csv', 'r') as f:
    # 读取所有行,去除换行符与空行
    lines = [line.strip() for line in f if line.strip()]

# 拼接所有二进制字符串,逐个字符转换为布尔值
binary_str = ''.join(lines)
bool_array = np.array([c == '1' for c in binary_str], dtype=np.bool_)

方案二:内存高效的生成器法

针对大文件优化,避免一次性加载全部数据到内存:

import numpy as np

with open('test_file.csv', 'r') as f:
    # 用生成器逐个遍历有效字符(跳过换行符与空行)
    char_generator = (c for line in f for c in line.strip())
    # 直接从生成器创建布尔数组
    bool_array = np.fromiter((c == '1' for c in char_generator), dtype=np.bool_)

原方法失效原因说明

你之前用np.loadtxt(file, dtype=bool)失败的核心原因:

  • loadtxt默认将每行视为单个数据元素,而非拆分字符
  • 当指定dtype=bool时,所有非空字符串都会被解析为True,最终得到的是每行对应一个布尔值的数组,而非拆分后的单个二进制位

内容的提问来源于stack exchange,提问作者Schoppe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:57:41