首页 > 编程问答 >提取包装列数据

提取包装列数据

时间:2024-08-06 03:58:00浏览次数:7  
标签:python arrays dataframe numpy-slicing

enter image description here

我有一个特定的数据文件,共有 7 列:1 列时间和 6 列数据。如我所附的图像所示,第一列代表时间,而接下来的四列代表数据。似乎从第 4 列数据开始,它用一个黑色的向上小箭头包裹到底部,然后再次及时重复为第一列,剩下的两个数据列代表第 5 列和第 6 列数据。

我无法使用 np.loadtxt 在 python 中加载数据。如何在正确访问和提取数据的第 5 列和第 6 列的同时加载数据?我想最终将其推广到 400 列数据。

我尝试过 data = np.loadtxt('temp_59324.dat',delimiter = None) 并且它返回一个错误。如果我只要求总共 5 列数据(1 列时间,4 列实际数据),那么 np.loadtxt 会正确加载。但除 5 之外的任何值都会导致错误


import numpy as np

def load_wrapped_data(filename, n_columns):
  """从包含包装列数据的文件中加载数据。

  Args:
    filename: 数据文件的名称。
    n_columns: 数据总列数(包括时间列)。

  Returns:
    包含数据的 NumPy 数组。
  """

  # 加载数据,将包装列视为单独的行
  data = np.loadtxt(filename, delimiter=None)

  # 计算包装列中的行数
  n_wrapped_rows = (n_columns - 1) // 4

  # 将数据重塑为具有正确列数的二维数组
  data = data.reshape(-1, n_columns)

  return data

# 示例用法:
filename = 'temp_59324.dat'
n_columns = 7  # 总列数,包括时间列

data = load_wrapped_data(filename, n_columns)

# 现在,可以通过切片访问数据,例如:
time = data[:, 0]  # 时间列
data_column_5 = data[:, 4]  # 第 5 列数据
data_column_6 = data[:, 5]  # 第 6 列数据

# 打印加载的数据
print(data) 

说明:

  1. 识别包装模式: 此代码假定数据在每组 4 列数据后包装。这意味着除时间列外,每 4 列构成一组完整的数据列。
  2. 加载为平面数组: np.loadtxt 最初将数据加载为平面数组,将包装列视为单独的行。
  3. 重塑数组: 代码根据总列数 ( n_columns ) 和包装模式计算包装列中的行数 ( n_wrapped_rows )。然后,它使用 reshape 将平面数组转换为具有正确列数的二维数组。
  4. 数据访问: 加载数据后,可以使用切片轻松访问任何列,包括第 5 列和第 6 列。

此代码可用于任意数量的包装列,只需更新 n_columns 变量以反映数据中的总列数。例如,对于 400 列数据,可以使用 n_columns = 401 (包括 1 列时间)。

标签:python,arrays,dataframe,numpy-slicing
From: 78836223

相关文章

  • Python 中的克隆和明显的指针问题
    我在克隆列表时遇到了困难。我已经尝试了我所知道的一切,但我的代码似乎仍然将errGrid、slopes1、slopes2和lopes视为同一个对象。为什么?!errOrder=[[]foriinrange(6)]errMethod=[errOrder.copy()foriinrange(AM)]errGrid=[errMethod.copy()foriinrange(U......
  • 【香橙派系列教程】(七)香橙派下的Python3安装
    【七】香橙派下的Python3安装为接下来的Linux图像识别智能垃圾桶做准备。图像处理使用京东SDK只支持pyhton和Java接口,目的是引入C语言的Python调用,感受大厂做的算法bug此接口是人工智能接口,京东识别模型是通过训练后的模型,精准度取决于训练程度,人工智能范畴在常规嵌入式......
  • vnpy,一个不可思议的Python库!
    vn.py是一个开源的Python交易编程框架,旨在帮助程序员快速搭建属于自己的量化交易平台。该框架支持股票、期货、外汇等多种金融产品的交易,提供了从数据获取、策略开发到交易执行的全流程支持。如何安装vnpy首先,要使用vnpy,您需要通过Python的包管理工具pip来安装它。以下......
  • Python回溯算法
    回溯算法回溯算法是一种系统的搜索算法,用于解决诸如排列组合、子集生成、图的路径、棋盘问题等问题。其核心思想是通过递归尝试各种可能的解决方案,遇到不满足条件的解时则回退(回溯),继续尝试其他可能性,直到找到所有的解决方案或确认无解。主要步骤:选择路径:在当前步骤选择一个可......
  • [python]使用gunivorn部署fastapi服务
    前言Gunicorn是一种流行的WSGIHTTP服务器,常用于部署Django和Flask等PythonWeb框架程序。Gunicorn具有轻量级、高稳定性和高性能等特性,可以轻易提高PythonWSGIApp运行时的性能。基本原理Gunicorn采用了pre-fork模型,也就是一个工作进程和多个worker进程的工作模式。在这个模......
  • python十六进制编辑器
    源代码:importtkinterastkfromtkinterimportfiledialogimportstructimportbinasciiimportosclassHexEditor:def__init__(self,master):self.master=masterself.master.title("十六进制编辑器")self.master.configure(bg......
  • python项目学习 mediapipe手势识别 opencv可视化显示
    importcv2importmediapipeimportnumpydefget_angle(vector1,vector2):#角度计算angle=numpy.dot(vector1,vector2)/(numpy.sqrt(numpy.sum(vector1*vector1))*numpy.sqrt(numpy.sum(vector2*vector2)))#cos(angle)=向量的点乘/向量的模angle=nump......
  • 【优秀python大屏】基于python flask的广州历史天气数据应用与可视化大屏
    摘要气象数据分析在各行各业中扮演着重要的角色,尤其对于农业、航空、海洋、军事、资源环境等领域。在这些领域中,准确的气象数据可以对预测未来的自然环境变化和采取行动来减轻负面影响的决策起到至关重要的作用。本系统基于PythonFlask框架,通过对气象数据的分析和处理来提供......
  • Python-MNE全套教程(官网翻译)-入门01:概述篇
    目的以牺牲深度为代价进行入门学习,简易学习基本方法开始导入相关库:#License:BSD-3-Clause#CopyrighttheMNE-Pythoncontributors.importnumpyasnpimportmne加载数据MNE-Python数据结构式基于fif格式的,但是对于其他格式也有阅读方法,如https://mne.tools/s......
  • Python-MNE全套教程(官网翻译)-入门05:关于传感器位置
    本教程描述了如何读取和绘制传感器位置,以及MNE-Python如何处理传感器的物理位置。像往常一样,我们将从导入我们需要的模块开始:frompathlibimportPathimportmatplotlib.pyplotaspltimportnumpyasnpimportmne关于montage和layout(蒙太奇和传感器布局)montage......