这也许是个愚蠢的问题,但我似乎找不到答案。我有一个以前用np.save
保存的大数组,现在我想将数据加载到一个新文件中,从每个列创建一个单独的列表。唯一的问题是我的大数组中的一些行只有一个nan
值,所以数组看起来像这样(作为一个非常简化的例子):
np.array([[5,12,3],
[nan],
[10,13,9],
[nan],
[nan]])
我可以使用for循环来实现我想要的,但我想知道是否有比这更好的方法:
^{pr2}$我想要的输出如下:
depth = [5,nan,10,nan,nan]
upper = [12,nan,13,nan,nan]
lower = [3,nan,9,nan,nan]
谢谢你的帮助!我知道我应该事先修改创建数据.npy“文件,这样它每行的列数都相同,但该代码已经运行数小时,我宁愿避免这种情况!在
对于可变长度的子数组,这是dtype=object数组。在大多数情况下,这与这些子阵列的列表相同。所以大多数行动都需要迭代。在
你行动的一个变体就是清单理解
三个目标数组是以下列:
^{pr2}$另一种方法是用
^{3}$nan
填充该类型的数组,然后复制非nan值。但这也需要迭代来找到子数组的长度。在np.nan
是float,因此带有nan
的2d数组将是dtype float。在使用熊猫的较短方法:
输出:
^{pr2}$现在可以对每个列进行寻址以获得所需的输出
^{3}$如果您需要列表:
相关问题 更多 >
编程相关推荐