0

我打印了这两个数组。

array([[-7.00e+00, -9.00e+00,  0.00e+00,  1.60e+01,  0.00e+00, -9.00e+00, -7.00e+00, -1.20e+01],
       [-6.00e+00, -1.70e+01,  1.11e-15,  2.00e+01,  1.33e-15, -1.70e+01, -6.00e+00,  2.00e+00],
       [-3.00e+00, -1.90e+01,  1.00e+01,  2.80e+01,  1.00e+01, -1.90e+01, -3.00e+00,  2.40e+01],
       [ 6.00e+00,  0.00e+00,  1.40e+01,  1.60e+01,  1.40e+01,  1.78e-15,  6.00e+00,  2.40e+01],
       [-3.00e+00, -1.90e+01,  1.00e+01,  2.80e+01,  1.00e+01, -1.90e+01, -3.00e+00,  2.40e+01],
       [-6.00e+00, -1.70e+01, -1.11e-15,  2.00e+01,  4.44e-16, -1.70e+01, -6.00e+00,  2.00e+00],
       [-7.00e+00, -9.00e+00,  0.00e+00,  1.60e+01,  8.88e-16, -9.00e+00, -7.00e+00, -1.20e+01],
       [-1.40e+01, -2.20e+01,  6.00e+00,  3.20e+01,  6.00e+00, -2.20e+01, -1.40e+01, -4.00e+00]])
array([[ -9.96, -29.6 ,  -7.68,  47.32],
       [-11.7 , -17.86, -10.47,  25.97],
       [ 28.45, -22.42,  -9.69,  46.16],
       [ 42.94,  -2.22,  11.06,  40.59]])

记录它们的类型时,它们都是 float64。我想知道为什么一个是科学记数法而不是另一个。另外,如何将其设置为始终具有第二种表示法。

我的脚本顶部有这个

np.set_printoptions(linewidth=240, precision=2)

但显然它并不适用于所有情况。

4

1 回答 1

1

第一个数组的一些元素很小,比如这个:

-1.11e-15

e-15意思是“乘以 10 的 -15 次方” 。这需要大量的数字才能以普通的位置表示法显示,因此 NumPy 切换到科学计数法。为了布局一致性,这适用于整个阵列。

suppress您可以通过将打印选项设置为:让 NumPy 的数组打印逻辑将这些值视为(适当签名的)零True

numpy.set_printoptions(suppress=True)
于 2020-08-21T03:32:29.717 回答