python 指定切分节点对list进行区间切分

import random
ls=[random.randint(10,100) for x in range(20)]
print(ls)
cutindex=[0,2,3,4,5,9,19]
for index,cutpoint in enumerate(cutindex[:-1]):
  if cutindex[0]!=0:
    temp=ls[:cutindex[index]]
    if len(temp)!=0:
      print("ksave",0,cutindex[index])
      cutindex[0]=0
  else:
    print("save",cutpoint)
  temp=ls[cutindex[index]+1:cutindex[index+1]]
  if len(temp)!=0 :
      print("ksave",cutindex[index]+1,cutindex[index+1]-1)
if cutindex[-1]!=len(ls)-1:
  temp=ls[cutindex[-1]+1:]
  if len(temp)!=0:
    print("save",cutindex[-1])
    print("ksave",cutindex[-1]+1,len(ls)-1)
else:
  print("save",cutindex[-1])

分段保存 ,切分节点单独保存,切分区段单独保存。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现这个任务主要需要用到Python中的numpy和pandas库,以下是一种可能的实现方案: 1. 将脑电图数据读入到numpy数组中,每一行代表一个时间点的数据,每一列代表一个电极的数据。 ```python import numpy as np eeg_data = np.loadtxt('eeg_data.csv', delimiter=',') ``` 2. 将标签数据读入到pandas的DataFrame中,其中每一行代表一个时间点的标签,每一列代表一个事件。 ```python import pandas as pd label_data = pd.read_csv('label_data.csv') ``` 3. 将标签数据中的每一个事件转化为一个二元数组,其中1表示该事件发生,0表示该事件未发生。 ```python label_array = label_data.values event_array = np.zeros((len(label_array), len(label_data.columns))) for i in range(len(label_array)): for j in range(len(label_data.columns)): if label_array[i][j] == 1: event_array[i][j] = 1 ``` 4. 将脑电图数据按照标签数据中的事件发生时刻进行切分,得到一个三维数组,其中第一维代表事件序号,第二维代表事件开始时间点,第三维代表事件持续时间。 ```python event_duration = 100 # 假设每个事件持续100个时间点 event_data = np.zeros((event_array.shape[0], event_duration, eeg_data.shape[1])) for i in range(event_array.shape[0]): for j in range(event_array.shape[1]): if event_array[i][j] == 1: event_start = max(0, i - event_duration // 2) # 判断事件开始时间点 event_end = min(len(label_array), i + event_duration // 2) # 判断事件结束时间点 event_data[j][i - event_start][:] = eeg_data[event_start:event_end][:] ``` 以上是一种基本的实现方案,具体的实现细节可能需要根据具体的数据格式和需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值