首页 > 解决方案 > 为什么在切片 numpy ndarrays 时出现此下溢错误?

问题描述

我正在尝试使用 pyplot 制作网格图像——特别是我可以将其用作二维数组的“画廊”,其中包含一些尺寸均匀的较小图像。我基本上成功了,但是我用来放置网格的空白图像上会出现随机噪声。即使当我进入 4x4 输入图像时也会发生这种情况:(

当我运行它时,我收到错误消息

C:\Users\[me]\anaconda3\lib\site-packages\matplotlib\image.py:491: 
RuntimeWarning: underflow encountered in true_divide
  vrange /= ((a_max - a_min) / frac)

从相对有序的噪音中,我认为这将是一个溢出错误,但我猜不是......这里发生了什么,我该如何解决?

import numpy as np
import matplotlib.pyplot as plt

def grid_binim(a):
    bweight = 1
    bcolor = .5
    #shift = 0
    plt.figure()
    plt.axis("off")
    n = a.shape[0]
    size = n*n + 2*n*bweight
    out = np.ndarray((size,size))
    for i in range(n):
        pixeli = n*i+(i)*bweight*2
        out[pixeli,:] = bcolor
        out[pixeli+n+1,:] = bcolor
        for j in range(n):
            pixelj = n*j+(j)*bweight*2
            out[pixeli:pixeli+n+1,pixelj] = bcolor
            out[pixeli:pixeli+n+1,pixelj+n+1] = bcolor
            
    plt.imshow(out,cmap=plt.cm.gray,vmin=0.0,vmax=1.0)

blank = np.zeros((4,4,4,4))
grid_binim(blank)

标签: pythonmultidimensional-arrayruntime-errornumpy-ndarrayunderflow

解决方案


推荐阅读