如何解决如何有效地将值“提升”到3d数组中的NaN位置?
我有一个嵌套列表的数据集,它们的长度都相同(大于120)。我只需要最新的120个有效值。 (因此,就像逐行将NaN值向上移动到末尾,然后选择最后一个120 是这样做的一种方法。)
如何有效地做到这一点? (因为我有数百万个此类样本)
[# Samples list
[ # Sample 1
[ 89.319787 1.329743 99.234670 ... 52.329743 0.319787 2.319787 ]
[ 84.319787 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
[ 12.319787 NaN 33.329743 ... 52.329743 0.319787 2.319787 ]
[ 33.319787 1.329743 23.329743 ... 52.329743 0.319787 2.319787 ]
...
[ 23.319787 1.329743 45.234670 ... 52.329743 0.32721 2.319787 ]
[ 89.319787 NaN 99.234670 ... NaN NaN 2.319787 ]
[ 84.319787 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
[ 12.319787 1.329743 NaN ... 52.329743 0.319787 2.319787 ]
[ 33.319787 1.329743 NaN ... 52.329743 NaN 2.319787 ]
],[ # Sample 2
[ 89.319787 1.329743 99.234670 ... 52.329743 0.319787 2.319787 ]
[ 84.319787 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
[ 12.319787 NaN 33.329743 ... 52.329743 0.319787 2.319787 ]
[ 33.319787 1.329743 23.329743 ... 52.329743 0.319787 2.319787 ]
...
[ 23.319787 1.329743 45.234670 ... 52.329743 0.32721 2.319787 ]
[ 89.319787 NaN 99.234670 ... NaN NaN 2.319787 ]
[ 84.319787 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
[ 12.319787 1.329743 NaN ... 52.329743 0.319787 2.319787 ]
[ 33.319787 NaN NaN ... 52.329743 NaN 2.319787 ]
],[...],[ # Sample n
[ 89.319787 1.329743 99.234670 ... 52.329743 0.319787 2.319787 ]
[ NaN 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
[ 12.319787 NaN 33.329743 ... 52.329743 0.319787 2.319787 ]
[ 33.319787 1.329743 23.329743 ... 52.329743 0.319787 2.319787 ]
...
[ 23.319787 1.329743 45.234670 ... 52.329743 0.32721 2.319787 ]
[ 89.319787 NaN 99.234670 ... NaN NaN 2.319787 ]
[ 84.319787 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
[ 12.319787 1.329743 NaN ... 52.329743 0.319787 2.319787 ]
[ 33.319787 1.329743 NaN ... 52.329743 NaN 2.319787 ]
]
]
预期结果:(这只是可以完成的一种方法,因为我只需要在每个垂直“列”中使用最新的120个有效值,而每个垂直“列”必须始终具有120个以上有效值) 注意:由于示例每个样本仅显示9行,而具有最低有效元素的垂直列包含6个非NaN元素,因此可以使用6个有效值代替120个有效值。
[# Samples list
[ # Sample 1
[ 89.319787 NaN NaN ... NaN NaN 2.319787 ]
[ 84.319787 NaN NaN ... 52.329743 NaN 2.319787 ]
[ 12.319787 1.329743 99.234670 ... 52.329743 0.319787 2.319787 ]
[ 33.319787 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
...
[ 23.319787 1.329743 33.329743 ... 52.329743 0.319787 2.319787 ]
[ 89.319787 1.329743 23.329743 ... 52.329743 0.319787 2.319787 ]
[ 84.319787 1.329743 45.234670 ... 52.329743 0.32721 2.319787 ]
[ 12.319787 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
[ 33.319787 1.329743 99.234670 ... 52.329743 0.319787 2.319787 ]
],[ # Sample 2
[ 89.319787 NaN NaN ... NaN NaN 2.319787 ]
[ 84.319787 NaN NaN ... 52.329743 NaN 2.319787 ]
[ 12.319787 NaN 99.234670 ... 52.329743 0.319787 2.319787 ]
[ 33.319787 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
...
[ 23.319787 1.329743 33.329743 ... 52.329743 0.319787 2.319787 ]
[ 89.319787 1.329743 23.329743 ... 52.329743 0.319787 2.319787 ]
[ 84.319787 1.329743 45.234670 ... 52.329743 0.32721 2.319787 ]
[ 12.319787 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
[ 33.319787 1.329743 99.234670 ... 52.329743 0.319787 2.319787 ]
],[ # Sample n
[ NaN NaN NaN ... NaN NaN 2.319787 ]
[ 84.319787 NaN NaN ... 52.329743 NaN 2.319787 ]
[ 12.319787 NaN 99.234670 ... 52.329743 0.319787 2.319787 ]
[ 33.319787 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
...
[ 23.319787 1.329743 33.329743 ... 52.329743 0.319787 2.319787 ]
[ 89.319787 1.329743 23.329743 ... 52.329743 0.319787 2.319787 ]
[ 84.319787 1.329743 45.234670 ... 52.329743 0.32721 2.319787 ]
[ 12.319787 1.329743 49.329743 ... 52.329743 0.319 2.319787 ]
[ 33.319787 1.329743 99.234670 ... 52.329743 0.319787 2.319787 ]
],]
样本数据:
samples = [[
[89.319787,1.329743,99.234670,52.329743,0.319787,2.319787],[84.319787,49.329743,0.319,[12.319787,np.nan,33.329743,[33.319787,23.329743,[23.319787,45.234670,0.32721,[89.319787,2.319787]
],[
[89.319787,[np.nan,2.319787]]]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。