def chi2_distance(a,b):
d=1-(np.dot(a,b)/(norm(a,axis=1)*norm(b)))
return d
字符串
a和B是float 32,最多有8位小数。但我希望计算有16位小数的精度。
a.形状是r*n,B形状是(n,)
我是这样做的:
def chi2_distance(a,b):
a = a.astype(np.float64)
b = b.astype(np.float64)
d=1-(np.dot(a,b)/(norm(a,axis=1)*norm(b)))
return d
型
现在的d.dtype是float 64,但我仍然得到8十进制精度的结果!!
1条答案
按热度按时间7eumitmz1#
@hpaulj回答正确。简单地说,当你输入函数输出tolist()时,它可以显示16位小数,对于64位计算机处理器来说是64位。奇怪的是,显然numpy不能显示超过32位,但是当你将numpy转换为列表时,它可以显示16位小数。代码如下:
字符串