我有一个形状为(5094, 512)
的数组(x_train
),我想把第二维的1d切片变成一个2d对角数组。我正在尝试下面的代码:
x_train_diag = np.zeros((5094, 512, 512))
x_train_diag = np.apply_along_axis(np.diagflat, x_train, 1)
举个例子,如果我有5094批[1,1,...,1]数据数组;相反,我想有5094批
[1 0 0
0 1 0
...
0 0 1]
我得到了这个模糊的TypeError:
TypeError: only integer scalar arrays can be converted to a scalar index
2条答案
按热度按时间agyaoht71#
你可以将numpy的高级索引与广播一起使用。下面是一个小例子:
结果:
qyyhg6bp2#
这样的东西对你有用吗?我在对角矩阵的列表上使用了堆栈。
结果: