【发布时间】:2019-12-02 00:48:02
【问题描述】:
我有这个三重嵌套的 for 循环,循环 3 个单独的 netcdf4 数组(对于所有意图和目的,numpy 数组)。每个数组的长度不同。目标是构建一个字典变量(名为 json),其中包含 time_count 作为最外层键,另一个字典作为值。在该字典中,键是 lat-lon 对(字符串),变量作为值(在本例中为温度)。
代码按预期工作,但速度很慢。我想知道是否有一种方法可以优化这样的嵌套循环,或者一般来说可能是一种更有效的方法来解决这个问题?
def create_json_dataset(netcdf_data):
json = {}
for time_count, temp_array in enumerate(dataset.variables['t'][:]):
json[time_count] = {}
for lat_count, lat in enumerate(dataset.variables['latitude'][:]):
for lon_count, lon in enumerate(dataset.variables['longitude'][:]):
lat_lon = str(lat) + ',' + str(lon)
json[time_count][lat_lon] = {'temperature': dataset.variables['t'][time_count, lat_count, lon_count]}
return json
【问题讨论】:
-
最好提供一些输入输出数据给别人更好的理解代码的逻辑。
-
我要做的第一件事是尽量不要使用
[:]制作副本 - 这是完全没有必要的,因为您不会尝试修改任何数据,而是创建全新的数据。
标签: python arrays loops optimization netcdf4