How to calculate a Gaussian kernel matrix efficiently in numpy?

前端 未结 12 2269
名媛妹妹
名媛妹妹 2020-11-29 20:54
def GaussianMatrix(X,sigma):
    row,col=X.shape
    GassMatrix=np.zeros(shape=(row,row))
    X=np.asarray(X)
    i=0
    for v_i in X:
        j=0
        for v_j i         


        
12条回答
  •  独厮守ぢ
    2020-11-29 21:13

    I tried using numpy only. Here is the code

    def get_gauss_kernel(size=3,sigma=1):
        center=(int)(size/2)
        kernel=np.zeros((size,size))
        for i in range(size):
           for j in range(size):
              diff=np.sqrt((i-center)**2+(j-center)**2)
              kernel[i,j]=np.exp(-(diff**2)/(2*sigma**2))
        return kernel/np.sum(kernel)
    

    You can visualise the result using:

    plt.imshow(get_gauss_kernel(5,1))
    

提交回复
热议问题