以这个数字为例:
1.64847910404205
如果我创建一个pandas数据框,其中包含一行和此值:
df = pd.DataFrame([{'id': 77, 'data': 1.64847910404205}])
然后遍历行(好的…并检查:
for index, row in df.iterrows():
if index > 0:
previous_row = df.iloc[index]
当然,上面的情况很奇怪:为什么我要遍历这些行来从df中提取相同的行?算了吧,我把
-1
来说明。
现在,如果我用
SciView
(部分)
IntelliJ
)
data
tab要逐个检查行,我得到:
row
data: 1.64847910404205
previous_row
data: 1.64847910404
注意到
previous_row
已被舍入。这是因为它们有不同的数据类型…
row:
type(row) #float64
previous_row:
type(previous_row) #numpy.float64
我很想知道:为什么
iloc
转换为
numpy.float64
我怎么能阻止它这样做呢?
我需要同样的精度水平,我稍后将做峰值信噪比(psnr)计算。当然,我可以把
float
到A
numpy.float64号
,但我不想失去精确性。