我现在使用的方法看起来非常笨拙。有没有更好的方法来索引这个数组?
以下是可行的代码:
DEM = np.empty((number_of_DEM_files, DEMfile.shape[0], DEMfile.shape[1]), 'float')
for t in range(number_of_DEM_files):
DEM[t] = np.load(DEM_filename_list[t])
我尝试使用列表推导式来实现这个操作,如下所示:
DEM = np.load([DEM_filename_list[t] for t in range(number_of_DEM_files)])
但是我得到了一个语法错误。这可能吗?有没有理由这样做,或者它只是和我已经得到的一样慢?有更好的方法吗?
编辑:
DEM_filename_list看起来像这样:
DEM_filename_list = (D:/Documents/Data/grand_canyon_2015/03-11/dem1.npy,
D:/Documents/Data/grand_canyon_2015/03-11/dem2.npy,
D:/Documents/Data/grand_canyon_2015/03-11/dem3.npy,
etc)
第一行创建了一个空的三维数组。最终,我想在一个三维数组中加载和存储一系列时间序列数据,以便您可以使用DEM[t, i, j]来索引它。
其中t是时间,i是行号,j是列号。
DEM_filename_list
的类型是什么? - MazdakDEM_filename_list[:number_of_DEM_files]
会和你的列表推导式达到相同的效果。 - Padraic Cunninghamnumber_of_DEM Files
中漏了一个下划线? - stellasiafor
循环来做这个并不笨拙,尽管我不明白第一行代码的作用是什么。 - lucasnadaluttiDEM = [np.load(f) for f in DEM_filename_list]
是什么意思?您想从不同的文件中构建一个具有行值的矩阵吗? - wenzulnp.load
不接受文件名列表,只能接受一个文件名。但是你可以将加载的结果收集到一个列表或数组中。 - hpaulj