停止Numpy的范围异常

时间:2015-08-08 22:41:26

标签: python arrays numpy

基本上我在绘制图像时,我拍摄的图纸有时会包含不适合我推到屏幕的阵列内部的元素。我已尝试在数组上使用numpy.clip,然后再将它们添加到我的主数组中,但这似乎太慢而且无法接受。

有没有办法只禁用异常(超出范围的元素根本不重要且可以安全丢失)?请注意,我不认为我可以捕获异常,因为这似乎会在该点停止绘制,这意味着包含屏幕外部元素的行下方的任何行都将丢失,这是不可接受的

为了进一步说明,我有一个表示屏幕输出的数组,它与起始窗口分辨率相匹配。它是宽x高,每个元素指定该像素的颜色。我使用scikit-image的修改版本来创建圆圈。这些圆圈可能包含超出屏幕范围的点,但我经常绘制它们,以至于我无法承担清理任何元素所需的时间(至少需要numpy.clip)屏幕外的数组。

我想在索引超出范围异常时停止numpy抛出异常,而只是继续使用数组的其余部分。

1 个答案:

答案 0 :(得分:1)

我肯定应该在询问之前进一步研究scikit-image,有一个内置选项可以指定圆圈将被绘制到的数组的形状,这将阻止这些异常。我很抱歉在发布之前没有做足够的研究,我只是变得慌乱并决定在这里问。

对于将来可能会做类似事情的人,scikit的形状绘制函数都有一个可选参数

  

形状:元组,可选

     

图像形状,用于确定输出像素坐标的最大范围。这对于超出图像大小的椭圆非常有用。默认情况下,使用椭圆的完整范围。