在数组中查找和绘制边界的最佳方式是什么?

What is the best manner to find and plot boundaries in an array?

如果这个问题太模糊,我深表歉意,但作为一个没有编码背景的人,我很难清楚地表达我的问题。

我有两个二维数组,看起来像

[[1.509, 2.321,..., nan,nan,],
 [1.401, 3.744,...,nan, nan,],
...,
[ nan, nan, ..., nan, nan]]

我使用其中一个数组来确定 3D 图上的 Z 轴(包括在内)。我希望有一种方法可以收集 nan 开始之前的最后一个浮点数,并将该线绘制为边界。

我可以从 np.isnan(array_a) 得到一个布尔数组,但我不知道如何找到边界 True / False 的点。这个边界在我附上的图片上被勾画成了红色。

同样的问题也适用,但我有一个数组,可以为我正在绘制的点着色。我可以搜索 np.where(array_b > 1.0),其中 returns 数组索引,但我想找到包含值与不包含值的边界。这个边界在我附上的图片上画成了蓝色。

有没有人建议最好的方法是什么?提前致谢。

根据我从你的问题中了解到的情况,你正在寻找二维 NumPy 数组中第一次出现的 nan 的索引。

boundary_points = []
for i in range(len(arr)):
     boundary_points.append([i,arr[i].index(np.nan)])

你也可以试试

np.array([(s, list(row).index(np.nan)) for s,row in enumerate(arr) if np.nan in row])

这还将处理没有 nan 值的行。 :)