np.diag 数组中不包含 0

np.diag not including 0s in the array

我有一个表达式产生以下结果:

array([[0.5],
   [0. ]])

我想制作一个对角线为 0.5 和 0 的 2X2 矩阵。但是当我使用以下代码时:

np.diag(A)

A 是上面的数组,我得到以下结果:

array([0.5])

为什么 python 不在数组中包含 A 中的第二个元素,我该如何包含它?

x 是 2d:

In [106]: x=np.array([[0.5],
     ...:    [0. ]])
In [107]: x
Out[107]: 
array([[0.5],
       [0. ]])
In [108]: x.shape
Out[108]: (2, 1)

阅读 diag 文档 - 给定一个二维数组,returns 对角线:

In [109]: np.diag(x)
Out[109]: array([0.5])

给定一个一维数组 returns 一个二维数组:

In [110]: np.diag(x[:,0])
Out[110]: 
array([[0.5, 0. ],
       [0. , 0. ]])