Bug小能手系列(python)_8: 使用mne库读取gdf文件报错 Cannot cast ufunc ‘clip‘ output

这篇具有很好参考价值的文章主要介绍了Bug小能手系列(python)_8: 使用mne库读取gdf文件报错 Cannot cast ufunc ‘clip‘ output。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 错误介绍

在加载BCI Competition IV 2a数据集时,当使用mne库的ioread_raw_gdf()函数时出错。注:该代码只是按照正常途径读取GDF文件。
代码如下:

import mne
import matplotlib.pyplot as pl
import numpy as np
import os

filename = "../../dataset/BCICIV_2a_gdf/A02E.gdf" #文件位置根据实际情况修改
raw = mne.io.read_raw_gdf(filename)
print(raw.info)
print(raw.ch_names)

报错:
Bug小能手系列(python)_8: 使用mne库读取gdf文件报错 Cannot cast ufunc ‘clip‘ outputBug小能手系列(python)_8: 使用mne库读取gdf文件报错 Cannot cast ufunc ‘clip‘ output

1. 环境介绍

考虑到在网上找了众多关于mne库读取gdf文件的文章均没有出现该问题,同时网上找到的关于该报错信息的内容也均未出现上文的情况。因此,在不知道是不是使用mne版本有误的情况下,将代码使用的环境进行记录。

数据来源:BCI Competition IV: Download area
代码环境:python版本为:3.9、mne版本为:1.4.2、numpy版本为:1.25.0

albumentations      1.2.1
asttokens           2.2.1
backcall            0.2.0
certifi             2023.5.7
charset-normalizer  3.1.0
chinese-calendar    1.8.0
colorama            0.4.6
comm                0.1.3
contourpy           1.1.0
cycler              0.11.0
debugpy             1.6.7
decorator           5.1.1
executing           1.2.0
fonttools           4.40.0
idna                3.4
importlib-metadata  6.7.0
importlib-resources 5.12.0
ipykernel           6.23.3
ipython             8.14.0
jedi                0.18.2
Jinja2              3.1.2
jupyter_client      8.3.0
jupyter_core        5.3.1
kiwisolver          1.4.4
MarkupSafe          2.1.3
matplotlib          3.7.1
matplotlib-inline   0.1.6
mne                 1.4.2
nest-asyncio        1.5.6
numpy               1.25.0
packaging           23.1
parso               0.8.3
pickleshare         0.7.5
Pillow              9.5.0
pip                 23.1.2
platformdirs        3.8.0
pooch               1.7.0
prompt-toolkit      3.0.38
psutil              5.9.5
pure-eval           0.2.2
Pygments            2.15.1
pyparsing           3.1.0
pypiwin32           223
python-dateutil     2.8.2
pyttsx3             2.90
pywin32             306
pyzmq               25.1.0
qudida              0.0.4
requests            2.31.0
scipy               1.11.0
setuptools          67.8.0
six                 1.16.0
stack-data          0.6.2
torchaudio          0.12.1+cu116
torchvision         0.13.1+cu116
tornado             6.3.2
tqdm                4.65.0
traitlets           5.9.0
typing_extensions   4.6.3
urllib3             2.0.3
wcwidth             0.2.6
wheel               0.38.4
zipp                3.15.0

2. 问题分析

首先对问题进行分析,根据报错信息以及报错中的问题指出可以发现,错误来源于mne库包中io库包中的一个edf.py的文件中的第1362行
具体地址为:anaconda存放环境地址+ 本conda环境名称+\lib\site-packages\mne\io\edf\edf.py:1362
具体代码为:np.clip(dur, 1, np.inf, out=dur)
错误为:UFuncTypeError: Cannot cast ufunc 'clip' output from dtype('float64') to dtype('uint32') with casting rule 'same_kind',即clip函数中数据必须为同类型,不能同时存在float64类型和uint32类型

因此,分析出错误原因为:dur数组(uint32类型)和np.inffloat64类型)两个不能同时在np.clip() 函数中。

3. 解决方法

最后,如果想要解决该问题,只需将两个数组变为相同类型即可。注意:这里不能变换dur 类型,因为如果变换了后续处理会存在问题,不要问为什么,问就是试过了!!!!

因此,唯一解决方法就是:将无穷大的np.inffloat64类型)变换为无穷大的 uint32类型的数值(这里操作的路径同上述问题分析中具体代码路径)。解决的代码如下:

tmp = 4294967295 # uint32类型的最大值
np.clip(dur, 1, tmp, out=dur)

最后,注意在修改并保存完代码后,需要重启内核,修改后的代码才有效果。
经修改后,代码可以跑通了!实在是不容易哦!!!
Bug小能手系列(python)_8: 使用mne库读取gdf文件报错 Cannot cast ufunc ‘clip‘ output

4. 总结

总的而言,感觉出现该错误可能就是我使用的版本中上偏高了(python=3.9),不过好歹问题解决了。网上的相关教程根本没有,所以根据自己的经验来总结这篇文章,希望大家会喜欢。如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。

如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。文章来源地址https://www.toymoban.com/news/detail-511640.html

到了这里,关于Bug小能手系列(python)_8: 使用mne库读取gdf文件报错 Cannot cast ufunc ‘clip‘ output的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开发笔记之:文件读取值溢出bug分析(JAVA版)

    (1)引言  以下是Java读取数据文件(FileInputStream)的代码:  其意图很简单:从当前游标位置读取一个双字(4字节)数据。 稍微复杂一点的就是一个字节序的考虑。 (2)问题  该代码做UT(单元测试)时,遇到了读取中断的问题(就是文件还没读取完就提前中断了)。

    2024年02月05日
    浏览(63)
  • 一文搞懂Python文件读取报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte

    下面是一个非常简单的读取并打印文件内容的示例: 在test.txt文本文件中,只有一个 `你` 字: test.txt 但是,我们在运行这段代码时,出现了如下的错误: 报错: 首先我们得知道这个错误是什么意思。 报错翻译过来就是: Unicode解码错误:“gbk”编解码器无法解码位置2的字

    2024年02月16日
    浏览(54)
  • 造轮子系列】面试官问:你能手写Vuex吗(一)?

    前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库  web前端面试题库 VS java后端面试题库大全 Vuex 是 Vue.js 的状态管理模式,它主要解决了组件之间共享状态时的问题。在本文中,我们将实现一个简单的状态管理器,来帮助我们更好地理解 Vuex 的实现原理

    2024年02月03日
    浏览(42)
  • 【Python】使用Python读取JSON文件中的内容

    在自动化测试过程中,会将部分数据保存到JSON文件中。 JSON文件有以下特点: JSON是存储和交换文本信息的语法,类似XML。 JSON比XML更小、更快、更易解析 JSON是轻量级的文本数据交换格式。 JSON是轻量级的文本数据交换格式。 JSON独立于语言 JSON具有自我描述性、更易理解。

    2024年02月13日
    浏览(51)
  • Python之使用argparse在命令行读取文件

    关于argparse之parser.add_argument()的用法,这篇文章有较为详细的讲解。因为作业需要,我需要在命令行读入txt文件,网上看了不少博客,都没有直接介绍,而小白在自己尝试的过程中踩了不少坑,尽管做法很简单。这里记在这里。 1.在Python的shell中写一个 ArgparseTry.py 文件,其中

    2023年04月08日
    浏览(81)
  • Python 3 使用 read()、readline()、readlines() 函数 读取文件

    样例文件 example.txt,编码格式为 \\\'UTF-8\\\'。 2 分别使用 read()、readline()、readlines() 函数 2.1  # read() -------- 一次性读取所有文本,以字符串的形式返回结果。 2.2 # readline() ------- 读取第一行的内容,以字符串的形式返回结果。 2.3 # readlines() -------- 读取全部内容,以数列的格式返

    2024年01月18日
    浏览(52)
  • Python:使用openpyxl读取Excel文件转为json数据

    openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files 文档 https://openpyxl.readthedocs.io/en/stable/ https://pypi.org/project/openpyxl/ 安装 环境 读取文件示例:将Excel文件读取为json数据 有如下一个文件 data.xlsx 实现代码 输出读取的json数据 读写示例

    2024年02月15日
    浏览(73)
  • 【python】pyarrow.parquet+pandas:读取及使用parquet文件

      Parquet是一种用于 列式存储 和 压缩数据 的文件格式,广泛应用于大数据处理和分析中。Python提供了多个库来处理Parquet文件,例如pyarrow和fastparquet。   本文将介绍如何使用pyarrow.parquet+pandas库操作Parquet文件。    pyarrow.parquet 模块,可以读取和写入Parquet文件,以及进行

    2024年02月21日
    浏览(41)
  • [Bug0049]SwitchHosts报错:没有写入 Hosts 文件的权限

    SwitchHosts报错:没有写入 Hosts 文件的权限 1、打开如下目录 2、右键 hosts 文件 - 点击安全 - 点击编辑 - 找到Users 和自己的用户名,勾选完全控制。 告警,继续即可。 3、配置成功

    2024年02月08日
    浏览(52)
  • Python 利用MNE实现自定义矩阵大脑拓扑图的绘制

    在使用MNE进行EEG信号的可视化操作时,往往需要导入对应电极的位置信息,MNE中有内置的常见电极布局系统,通过调用下面指令进行导入: 从上面的输出可以看出,MNE中共有27个可用的电极布局系统,具体选择哪一个要看你采集数据时使用的脑电帽电极布局系统是哪个。 2.

    2024年02月05日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包