[英]Removing NaN rows from a three dimensional array
如何使用索引从下面的数组中删除NaN
行(因为我需要从不同的数组中删除相同的行。
array([[[nan, 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]],
[[ 0., 0., 0., 0.],
[ 0., nan, 0., 0.],
[ 0., 0., 0., 0.]]])
我通过使用命令获取要删除的行的索引
a[np.isnan(a).any(axis=2)]
但是使用我通常在2D阵列上使用的东西不会产生所需的结果,从而失去阵列结构。
a[~np.isnan(a).any(axis=2)]
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
如何使用从第一个命令获得的索引删除我想要的行?
你需要重塑:
a[~np.isnan(a).any(axis=2)].reshape(a.shape[0], -1, a.shape[2])
但请注意,每个2D子阵列的NaN行数应该相同才能获得新的3D阵列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.