【发布时间】:2020-09-07 09:39:45
【问题描述】:
我有一个数组preds,它的值是0,1 or 2。
preds 的形状和值如下所示:
torch.Size([1, 256, 256])
tensor([[[1, 1, 0, ..., 1, 1, 2],
[1, 0, 1, ..., 1, 1, 1],
[0, 0, 0, ..., 1, 1, 1],
...,
[0, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 1]]])
我只关心第 2 和第 3 维度 (256 x 256)。我想使用matplotlib 创建一个掩码,它(分别)绘制0、1 和2。基本上我想可视化图像中我们有0的所有地方,我们在哪里有1,我们在哪里有2。我想要它的分离图。
我在想类似的东西。例如 1 类:
- 获取我们有 1 的地方的 idice 并为其赋值 1 并为其他索引分配值 0。
- 使用
plt.show绘制它
例子:
zero = (preds==0).nonzero() #index of all values which have 0
nonzero = (preds!=0).nonzero() # index of all value which are not 0
# assign 1 to all zero
# assign 0 to all nonzero
# join the above two array
# plot the array
我只是不知道如何在我的伪代码中添加这两个数组(nonzero 和 zero)。
有没有更 Pythonic 的方法呢?我不想遍历所有索引值,然后为它们赋值。
【问题讨论】:
-
用三个参数查看
np.where,首先是那个掩码。 -
@DavidBuck 实际上!这是我自己的问题。我认为我之前的问题由于某些错误而没有发布,所以我用不同的标题再次发布了它。有趣的是它出现了。
-
抱歉重复的问题。我会删除问题。我的页面没有加载,所以我认为它没有发布
-
@Divakar np.where 只有在我理解正确的情况下才返回索引。我已经有了它们。我不知道下一步该怎么做。
-
您阅读文档了吗? @硫磺
标签: python arrays numpy matrix numpy-ndarray