我有几个时间序列存储在具有相同扩展名(* .corr.npy)的numpy数组中。我想用matplotlib在同一个图中绘制它。
现在我正在密谋:
import pylab as plt
import numpy as num
a=num.load('100.corr.npy')
b=num.load('2345.corr.npy')
...
plt.plot(a)
plt.plot(b)
...
plt.savefig('corr', papertype='a4', orientation='portrait', format='ps')
但是由于我有很多阵列,我想为绘图做一个循环。任何人都可以帮我吗?
答案 0 :(得分:4)
这是glob
标准模块闪耀的地方!
它将生成符合简单格式规则的文件列表。
在你的情况下:
import glob
import numpy as np
array_files = glob.glob('*.corr.npy')
for fname in array_files:
x = np.load(fname)
plt.plot(x)
glob.glob
将在当前工作目录中运行,因此您可能希望使用绝对路径:
ROOT_DIR = '/some/path/to/array/files/'
array_files = glob.glob(os.path.join(ROOT_DIR, '*.corr.npy'))
我看到您使用num
作为numpy
的别名。我认为np
是numpy别名的事实上的标准,所以你可以考虑使用它。