我試圖在將兩個變數轉換為陣列時保持計算欄位的精度。在計算值時,它的資料型別為<class 'numpy.float64'>,當轉換為陣列時,它的資料型別仍為<class 'numpy.float64'>,但是該值分別從-0.2484613592984996小數點后的16 個數字移動到小數點后的 5 個數字-0.24846。
這是我正在使用的代碼,我float在創建陣列以維護資料型別時嘗試使用:
ham_log = np.log(ham / data_len)
spam_log = np.log(spam / data_len)
log_class_priors = np.array([ham_log, spam_log]).astype(float)
uj5u.com熱心網友回復:
正如我在評論中所解釋的,陣列的精度不會改變。改變的是值的列印方式。下面是一個例子:
import numpy as np
np.random.seed(0)
a = np.random.rand(2)
print(f'a = \n{a}')
輸出:
a =
[0.5488135 0.71518937]
但是當我改變 numpy 的列印選項時,我得到的是:
np.set_printoptions(precision=16)
print(f'a = \n{a}')
輸出:
a =
[0.5488135039273248 0.7151893663724195]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/335467.html
上一篇:numpy洗牌一小部分子陣列
