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

2024-04-16 08:53:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个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]

为什么?用0.99999327减去1.0应该得到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]]

项目或括号之间没有分号。我错过了什么?这和我的主要问题有关吗?你知道吗


Tags: 项目代码numpyl1格式np矩阵数字