【发布时间】:2016-07-20 18:29:43
【问题描述】:
这可能是一个愚蠢的问题,但我似乎无法找到答案。我有一个以前使用np.save 保存的大型数组,现在我想将数据加载到一个新文件中,从每一列创建一个单独的列表。唯一的问题是我的大数组中的某些行只有一个 nan 值,所以数组看起来像这样(作为一个极其简化的示例):
np.array([[5,12,3],
[nan],
[10,13,9],
[nan],
[nan]])
我可以使用 for 循环来实现我想要的,但我想知道是否有比这更好的方法:
import numpy as np
results = np.load('data.npy')
depth, upper, lower = [], [], []
for item in results:
if len(item) > 1:
depth.append(item[0])
upper.append(item[1])
lower.append(item[2])
else:
depth.append(np.nan)
upper.append(np.nan)
lower.append(np.nan)
我想要的输出如下所示:
depth = [5,nan,10,nan,nan]
upper = [12,nan,13,nan,nan]
lower = [3,nan,9,nan,nan]
感谢您的帮助!我意识到我之前应该修改过创建“data.npy”文件的代码,这样每行的列数都相同,但是该代码已经需要几个小时才能运行,我宁愿避免这样做!
【问题讨论】: