scipy的datasets中提供了几组在图像和信号处理中可能会用到的数据,但是,如果想顺利使用,还需要安装一个scipy的依赖模块pooch
pip install pooch
然后就可以加载这几种数据了
from scipy.datasets import ascent,face
import matplotlib.pyplot as plt
a = ascent()
f = face()
a.shape # (512, 512)
f.shape # (768, 1024, 3)
fig = plt.figure()
fig.add_subplot(121)
plt.imshow(a)
fig.add_subplot(122)
plt.imshow(f)
plt.show()
其中,ascent是灰度图,数组维度是 512 × 512 512\times512 512×512,在使用imshow绘图时被赋予了伪彩色;face是RGB图,包括三个通道,数组维度是 768 × 1024 × 3 768\times1024\times3 768×1024×3。
electrocardiogram将返回一个5分钟长,360Hz采样频率的心电图数据
from scipy.datasets import electrocardiogram
import numpy as np
ecg = electrocardiogram()
t = np.arange(ecg.size) / 360
plt.plot(t, ecg)
plt.xlabel("time in s")
plt.ylabel("ECG in mV")
plt.show()
绘图结果如下,由于数据较多,难以看清细节,所以下图只截取了心电图的一部分
辅助函数
在第一次加载图像时,会出现Downloading file的提示,即这些数据是从网上实时下载的。为了避免麻烦,可通过download_all函数一次性下载所有数据。
一般来说,下载之后的数据会存放在下面的路径中,通过clear_cache函数,可以清空缓存文件夹。
'C:\Users\Laser\AppData\Local\scipy-data\scipy-data\Cache'.