跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 扁平化包:仪器控制与数据处理 v3.0.0

一个名为 baichao 的扁平化 Python 包,版本 3.0.0,用于仪器控制与数据处理。支持通过 sys.path 直接导入模块,无需安装。包含仪器控制(ATS-VISA、串口)、数据处理(加载、预处理、回归、可视化)及通信模块。提供 baichao_main 工具函数管理依赖和模块重载。核心优势为扁平结构、零配置扩展和热重载。依赖包括 numpy、pandas、scikit-learn 等库。采用 MIT 许可证。

机器人发布于 2026/3/28更新于 2026/10/2698 浏览

项目概述

仪器控制与数据处理工具包 v3.0.0

安装依赖

pip install -r requirements.txt

使用方法

方式 1:通过 sys.path 使用(推荐)

import sys
sys.path.insert(0, 'D:/baichao')
# 直接导入模块
import a_atsvisa
import b_loader
import c_serial
# 使用函数
data = b_loader.load_data('data.xlsx')
voltage = a_atsvisa.voltage_dc()

方式 2:从模块导入特定函数

import sys
sys.path.insert(0, 'D:/baichao')
from a_atsvisa import voltage_dc, current_dc
from b_loader import load_data
from c_serial import SerialComm
# 使用导入的函数
voltage = voltage_dc()
data = load_data('data.xlsx')
comm = SerialComm('COM7', 9600)

方式 3:使用 baichao_main 工具函数

import sys
sys.path.insert(0, 'D:/baichao')
import baichao_main

# 安装依赖
baichao_main.install_dependencies()
# 列出所有可用模块
baichao_main.list_available_modules()
# 查看函数帮助
baichao_main.help_function('a_atsvisa.voltage_dc')
# 重新加载模块(修改代码后)
baichao_main.reload_modules()

模块列表

a_*.py - 仪器控制模块

a_atsvisa.py - ATS-VISA 仪器控制

  • 仪器配置:config()
  • 电压测量:voltage_dc(), voltage_ac()
  • 电流测量:current_dc(), current_ac()
  • 电阻测量:resistance(), fresistance()
  • 波形输出:waveform_out(), waveform_off()
  • 功率控制:power_out(), power_off(), power_get()
  • 串口控制:open_serial(), close_serial()
  • 继电器控制:control_relay_output()
  • 功率电阻:power_resistor_state(), set_resistance()
  • 温湿度:temp_hum()
  • Modbus 通信:dh1766send(), dh1766recv()

b_*.py - 数据处理模块

b_loader.py - 数据加载

  • load() - 通用数据加载
  • load_data() - Excel 数据加载

b_preprocess.py - 数据预处理

  • 基线校正:Baseline, MSC, MMS
  • 导数:D1, D2, DT
  • 其他:MA, CT, KMeans, LocalOutlierFactor

b_regression.py - 回归分析

  • 模型:PLSRegression, SVR, MLPRegressor
  • 训练:elm_regression(), ann_regression()
  • 评估:evaluate(), mean_absolute_error(), mean_squared_error()

b_plotting.py - 数据可视化

  • plot() - 通用绘图
  • plot_nir_spectrum() - 光谱图
  • plot_spectrum() - 光谱曲线

b_split.py - 数据集划分

  • 数据集分割功能

b_wave_select.py - 波段选择

  • 光谱波段选择算法

c_*.py - 通信模块

c_serial.py - 串口通信

  • SerialComm - 串口通信类
  • open_serial() - 打开串口
  • close_serial() - 关闭串口

工具函数

import sys
sys.path.insert(0, 'D:/baichao')
import baichao_main

# 安装依赖
baichao_main.install_dependencies()
# 列出所有可用模块
baichao_main.list_available_modules()
# 查看函数帮助
baichao_main.help_function('a_atsvisa.voltage_dc')
# 重新加载模块(修改代码后)
baichao_main.reload_modules()

模块重新加载

修改 .py 文件后,有两种方式使更改生效:

方式 1:重新导入单个模块

import importlib
import a_atsvisa
# 修改代码后
importlib.reload(a_atsvisa)

方式 2:重新加载所有模块

import baichao_main
# 修改代码后
baichao_main.reload_modules()
# 重新加载所有模块

方式 3:重启 Python(推荐)

完全重新启动 Python 会话,确保所有更改生效。

添加新模块

步骤

  1. 在 D:/baichao/ 目录下创建新的 .py 文件
  2. 按照命名规范命名文件:
    • a_*.py - 仪器控制模块
    • b_*.py - 数据处理模块
    • c_*.py - 通信模块
  3. 在新文件中定义函数或类
  4. 在其他代码中直接 import 使用

示例

新建文件:a_newdevice.py

def connect():
    """连接设备"""
    print("设备已连接")
    return True

def read_data():
    """读取数据"""
    return {"value": 123.45}

在其他代码中使用:

import sys
sys.path.insert(0, 'D:/baichao')
# 直接导入
import a_newdevice
# 或导入特定函数
from a_newdevice import connect, read_data
# 使用
a_newdevice.connect()
data = a_newdevice.read_data()

注意: 新增模块后,无需单独运行 .py 文件,直接在其他地方 import 即可使用!

依赖

pip install -r requirements.txt

或手动安装:

  • numpy
  • pandas
  • scipy
  • matplotlib
  • scikit-learn
  • pyvisa
  • pyserial
  • pymodbus
  • openpyxl
  • PyWavelets
  • pybaselines
  • hpelm
  • deap

项目结构

d:\baichao\
├── __init__.py          # 包初始化
├── baichao_main.py      # 核心模块
├── pyproject.toml       # 项目配置
├── requirements.txt     # 依赖列表
├── README.md            # 本文档
├── LICENSE              # MIT 许可证
├── .gitignore           # Git 忽略配置
├── a_config.ini         # 配置文件
│   ├── a_atsvisa.py     # 仪器控制模块
│   ├── b_loader.py      # 数据加载
│   ├── b_preprocess.py  # 数据预处理
│   ├── b_regression.py  # 回归分析
│   ├── b_plotting.py    # 数据可视化
│   ├── b_split.py       # 数据集划分
│   ├── b_wave_select.py # 波段选择
│   └── c_serial.py      # 串口通信
└── venv/                # 虚拟环境

核心优势

  • 扁平化结构 - 所有模块在根目录,易于管理
  • 零配置扩展 - 添加新模块只需创建文件
  • 标准导入 - 使用 Python 标准导入方式
  • 直接使用 - 通过 sys.path 直接导入,无需安装包
  • 热重载 - 支持模块重新加载

许可证

MIT License

目录

  1. 项目概述
  2. 安装依赖
  3. 使用方法
  4. 方式 1:通过 sys.path 使用(推荐)
  5. 直接导入模块
  6. 使用函数
  7. 方式 2:从模块导入特定函数
  8. 使用导入的函数
  9. 方式 3:使用 baichao_main 工具函数
  10. 安装依赖
  11. 列出所有可用模块
  12. 查看函数帮助
  13. 重新加载模块(修改代码后)
  14. 模块列表
  15. a_*.py - 仪器控制模块
  16. b_*.py - 数据处理模块
  17. c_*.py - 通信模块
  18. 工具函数
  19. 安装依赖
  20. 列出所有可用模块
  21. 查看函数帮助
  22. 重新加载模块(修改代码后)
  23. 模块重新加载
  24. 方式 1:重新导入单个模块
  25. 修改代码后
  26. 方式 2:重新加载所有模块
  27. 修改代码后
  28. 重新加载所有模块
  29. 方式 3:重启 Python(推荐)
  30. 添加新模块
  31. 步骤
  32. 示例
  33. 直接导入
  34. 或导入特定函数
  35. 使用
  36. 依赖
  37. 项目结构
  38. 核心优势
  39. 许可证

更多推荐文章

查看全部
  • OpenCV C++ 中 XML 和 YAML 文件的读写操作
  • Ubuntu 22.04 下 PHP、Python 和 Node.js 开发环境搭建指南
  • 基于 Java 标准库读取 CSV 实现天地图 POI 分类导入 PostGIS 数据库
  • Java 智能仿真无人机项目 V4 版本实战
  • AI 辅助快速生成 Mermaid 图表实战指南
  • Qwen3-VL-WEBUI 地标识别:旅游 AI 助手部署教程
  • 鸿蒙 WebView 混合开发中 Web 内部网络请求跨域问题的客户端解决方案
  • 金融领域自然语言处理(NLP)应用与实战
  • FlowMiner: 基于流关联挖掘的加密流量分类模型
  • AirSim 无人机仿真环境完整部署实战教程
  • 万方 AIGC 检测未通过?多款降重工具实测对比
  • 基于 Python 的币安期货交易机器人实战
  • C++ operator() 运算符重载详解
  • 算法实战:位运算解法详解(两数之和、唯一数字、缺失数字)
  • 基于算法的 LLM 代码翻译新范式:解决意图丢失问题
  • Python生成器函数深度解析:asyncio事件循环底层实现与异步编程实战
  • 2026年AI Agent发展趋势与挑战:从理论到实践
  • 基于 WebGIS 与百度天气接口的复古天气预报系统构建
  • AI 核心概念速通教程
  • AI 数据标注工具实战:效率提升与质量保障

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online