栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

FFT变换后的复数数据读取问题:Exception has occurred: ValueErrorcould not convert string to float: ‘[9598.-0.j]‘

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

FFT变换后的复数数据读取问题:Exception has occurred: ValueErrorcould not convert string to float: ‘[9598.-0.j]‘

问题描述

问题的起源在于,使用FFT进行了快速傅里叶变换,然后想将数据送入神经网络进行识别。但是读取数据时候却出现了问题。

这道题的本质原因在于傅里叶变换后得到的数据为复数,然后系统没有识别出来,于是报错:字符串不能转化为浮点型。报错图片如下

解决方案 (1)为函数增加了数据类型

不行。

X = np.loadtxt(datatxt, dtype = complex)

报错如下:

Exception has occurred: ValueError

complex() arg is a malformed string

(2)使用genfromtxt函数

仍旧不行,数据读不出来。

X = np.genfromtxt(datatxt, delimiter='t', dtype=np.complex128)

虽然不报错,但是读出来的数据都是空的:

 但是真实的数据是这样的

(3)不保存中间数据

不要保存FFT生成的数据到txt里,直接送入到CNN即可。

因为数据写入txt的时候,需要强制转换成str格式,但是在使用loadtxt加载这堆复数数据的时候,就出现了问题。

于是我想如果取消中间数据,避免数据转换的错误,是不是就可以直接计算出结果呢?

答案是可以的。

除此之外,进行数据预处理的时候也需要根据个人的数据情况看看是否需要取消预处理。

然后这个复数导入问题就从计算过程中解决了。中间数据如果能够直接使用,就不必再单独保存起来。

仅供参考。

我看github讨论区有大牛说是python版本问题,新版本可以直接导入,这个如果不得不进行从txt导入数据时候可以试着更新一下。

https://github.com/numpy/numpy/pull/5666

这位重写了FFT函数和特征提取的算法,仅供参考。

https://github.com/jindongwang/activityrecognition/issues/4

这篇是傅里叶变换

FFT快速傅里叶变换的python实现 - 思念殇千寻 - 博客园

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/688702.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号