Python:numpy.linalg.norm产生的结果与np.sum不同(np.abs(x)** 2,axis = -1)**(1./2)

时间:2017-05-29 17:26:57

标签: python numpy image-processing norm

我有2张大小(256,256,3)的图像,我想计算它们差异的标准-2。

# Original Image

np_ori = np.array(icon_original).reshape(1,-1)

# My reconstructed image

np_0 = np.array(icon_0).reshape(1,-1)

如果我使用numpy.linalg.norm

norm_org_0 = np.linalg.norm(np_ori-np_0)

我得到了

62735

当我使用np.sum(np.abs(x)* 2,axis = -1)**(1./2)

np.sum(np.abs(np_ori-np_0)**2,axis=-1)**(1./2)

我得到了

2207

即使我使用.reshape(-1)将其转换为矢量

,结果也是一样的

那两个不应该产生相同的结果吗?

1 个答案:

答案 0 :(得分:0)

正如Divakar提到的是一个数据类型问题。转换为float64解决了该问题。