python - 替换 3d 数组中的缺失值
问题描述
我有一个包含缺失值的 3d 数组:
arr = np.array([[[ 1, 13],[ 2, 14],[ 3, np.nan]],[[ 4, 16],[ 5, 17],[ 6, 18]],[[ np.nan, 19],[ 8, 20],[ 9, 21]],[[10, 22],[11, 23],[12, np.nan]]])
我想执行插补来替换那些缺失值,最好使用最近的邻居。我尝试查看sklearn.impute
模块,但没有一个函数接受 3d 数组。我知道我可以展平阵列,但这会导致空间信息丢失。有没有其他选择?
编辑:阵列具有 3d 空间配置,在现实世界中可能如下所示:
layer 2
13 14 nan
16 17 18
19 20 21
22 23 nan
layer 1
1 2 3
4 5 6
nan 8 9
10 11 12
例如,value1
是 layer 1 的邻居,2
并且4
在 layer 1 中。
通过展平arr
,
[[ 1, 13],
[ 2, 14],
[ 3, np.nan],
[ 4, 16],
[ 5, 17],
[ 6, 18],
[ np.nan, 19],
[ 8, 20],
[ 9, 21],
[10, 22],
[11, 23],
[12, np.nan]]
它看起来好像比4
is 更远,但事实并非如此。和一样接近,只是在不同的维度上。1
2
1
2
4
解决方案
推荐阅读
- regex - 这个正则表达式可以提高内存效率吗
- python - Python中的包和模块不起作用
- python - 将函数应用于熊猫行内的嵌套列表
- vba - 从组合框调用变量访问 VBA 时出现问题
- r - 将多个字符串与 R 中跨数据帧的设置值匹配
- sql - 在 SQL 中重命名行计数列
- arrays - 使用 8 个不同 .wav 文件的单个按钮的随机声音发生器。每个文件命名为sound1.wav、sound2.wav.... sound8.wav
- javascript - 我的函数没有在另一个函数中调用
- facebook - 从 Dialogflow 获取用户经纬度 - FB Messenger 集成
- javascript - 如何在 x 轴上制作带有动态月份的 Chart.js