【发布时间】:2015-10-14 01:21:59
【问题描述】:
我现在这样做的方式似乎很笨拙。有没有更好的方法来索引这个数组?
这是有效的代码:
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)
第一行创建一个空的 3d 数组。最终,我试图在一个 3d 数组中加载和存储时间序列数组,以便您可以使用 DEM[t,i,j]
其中t是时间,i是行号,j是列号。
【问题讨论】:
-
DEM_filename_list的类型是什么? -
不相关但
DEM_filename_list[:number_of_DEM_files]会与您的列表组合做同样的事情 -
number_of_DEM Files中是否缺少下划线? -
我不认为为此做一个简单的
for很笨拙,尽管我不明白第一行的作用。 -
DEM = [np.load(f) for f in DEM_filename_list]怎么样?你想用来自不同文件的行值构建一个矩阵吗?
标签: python numpy list-comprehension