PyEMD库的安装问题

废话比较多,但看完能解决问题就对了~

转载请注明出处!

具体的安装方式网上帖子很多,这里不一一赘述了,只讲一下我使用

pip install PyEMD

时遇到的问题

PyEMD库的安装问题_第1张图片 直接调用PyEMD时

此时说的是没有PyEMD库,网上看到有人说要改成全小写

PyEMD库的安装问题_第2张图片 全小写调用

这个时候虽然错误类型一模一样,但是它变长了,我一开始没注意这个问题,后来才从这里找到了突破口

多出来的一段是进入了pyemd这个文件夹中,然后打开了init文件,在init文件里调用PyEMD库的时候报错了,也就是相当于from PyEMD import CEEMDAN.CEEEMAN的时候依旧报错没有库PyEMD。

聪明的同学可能已经猜到是什么问题了!

于是我打开了这个pyemd文件夹,发现里面确实有CEEMDAN、EEMD、EMD三个文件

PyEMD库的安装问题_第3张图片 pyemd文件夹

于是问题就呼之欲出了——安装时创建的文件夹是小写的pyemd(具体原因不详),但是init中以及网上的所有代码中写的都是PyEMD(仅有y小写),于是我们直接调用PyEMD时是找不到这个文件夹的,而如果调用pyemd,init中以及其它文件中写的依然是PyEMD,依旧找不到这个文件夹。

所以解决办法很简单,只要把文件夹名修改为PyEMD即可!!!

PyEMD库的安装问题_第4张图片

测试代码如下:

# 介绍文档中提供的测试代码
import numpy as np
from PyEMD import EMD,visualisation
import pylab as plt
# Define signal
t = np.linspace(0, 1, 200)
s = np.cos(11*2*np.pi*t*t) + 6*t*t

# Execute EMD on signal
IMF = EMD().emd(s,t)
N = IMF.shape[0]+1

# Plot results
plt.subplot(N,1,1)
plt.plot(t, s, 'r')
plt.title("Input signal: $S(t)=cos(22\pi t^2) + 6t^2$")
plt.xlabel("Time [s]")

for n, imf in enumerate(IMF):
    plt.subplot(N,1,n+2)
    plt.plot(t, imf, 'g')
    plt.title("IMF "+str(n+1))
    plt.xlabel("Time [s]")

plt.tight_layout()
plt.savefig('simple_example')
plt.show()

 

如果没有pyemd文件夹的话,可以试试网上其它帖子所说的

pip install EMD-signal

因为我之前PyEMD和EMD-signal都试了,也不清楚这个文件夹是哪个命令创建的。

求三连~~~(如果问题解决了的话)

你可能感兴趣的:(python)