减去两个n * n Numpy矩阵会得到奇怪的结果

时间:2016-11-22 08:39:59

标签: python numpy matrix scipy

我有两个Numpy矩阵(N * N),我想减去它们:

矩阵a(为简单起见,我刚刚在此发布a[0]):

[ 1.  0.  0.  0.  0.  0.  0.  0.  0.  0.]

矩阵l1(为简单起见,我刚刚在此发布l1[0]):

[ 0.99999327  0.07987602  0.03962965  0.99967095  0.12899137  0.00232801
  0.9353088   0.90658779  0.99650294  0.99992827]

使用此代码我想减去它们:

l1_error = a[0]-l1[0]

但是我得到一些奇怪的数字:

[  6.72779132e-06  -7.98760205e-02  -3.96296547e-02  -9.99670951e-01
  -1.28991369e-01  -2.32801220e-03  -9.35308795e-01  -9.06587790e-01
  -9.96502936e-01  -9.99928265e-01]

为什么呢?使用1.0减去0.99999327应该6.72779132e-06?我检查了两者的数据类型,它们都是float64ndarray

有一点我不明白。当我创建一个随机矩阵时,使用以下代码:

2*np.random.random((3,1))-1

如果它有一列,我会采用以下格式:

[[-0.16595599]
 [ 0.44064899]
 [-0.99977125]]

但是,如果它有多个列,我会采用这种格式:

[[-0.16595599  0.44064899 -0.99977125 -0.30887855 -0.20646505
   0.07763347]
 [-0.16161097  0.370439   -0.5910955  0.11737966 -0.71922612
  -0.60379702]
 [ 0.60148914  0.93652315 -0.37315164 -0.92189043 -0.66033916
   0.75628501]]

项目或括号之间没有分号。我在这里失踪了什么?这与我的主要问题有关吗?

0 个答案:

没有答案