以下代码给出了我想要的输出格式,但对角线上缺少1个。
>>> xlist = [2,3]
>>>[{'key': np.zeros(shape=(4, x, x))} for x in xlist]
这是当前的输出:
`
Out[610]: [{'key': array([[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]])},
{'key': array([[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]]])}]
`
但我希望每个矩阵都包含这样的对角线:
[[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]]
我在这个主题上尝试了几种变体无济于事:
>>> [{'key': np.fill_diagonal(y, 1.0) for y in np.zeros(shape=(4, x,x))} for x in xlist]
Out[613]: [{'key': None}, {'key': None}]
我试图用尽可能少的for循环来做这件事。提前谢谢!