我有一个 4 x 4 矩阵
Q = np.zeros([4,4])
和一个数组 x = [0,1,0,1]
.
矩阵的值最初由
给出Q[np.arange(4), x] = 1 / 2
现在我尝试将
x
中的非常元素设置为
x = [0:2, 1:3, 0:2, 1:3]
这可以通过
np.s_[0:2, 1:3, 0:2, 1:3]
来完成。
例如,
Q
中的第一行是
Q[0,0:2] = 1 / 2
第二行是
Q[2,1:3] = 1 / 2
这个过程也可以通过一个简单的
loop
来实现
for i in range(4):
Q[i, x[i] : x[i] + 2] = 1 / 2
现在我的问题是这可以在不使用
loop
的情况下自动化吗?这个问题有什么巧妙的技巧吗?谢谢你的帮助。