gpt4 book ai didi

python - 使用切片/索引在矩阵内切换 numpy 向量

转载 作者:行者123 更新时间:2023-12-01 01:12:23 25 4
gpt4 key购买 nike

让我们考虑以下矩阵:

[v1 v2 v3 v4 v5 v6] = 
[[1., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0.],
[0., 1., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 1.],
[0., 0., 0., 0., 1., 0.]],

其中向量 [v2 v3] 和 [v5 v6] 相对于单位矩阵进行交换。

从单位矩阵开始,我们如何使用切片/索引构建先前的矩阵?

如果想明确地做到这一点,我们应该执行以下操作:

x = np.eye(6)
x[[1,2]] = x[[2,1]]
x[[4,5]] = x[[5,6]]

最佳答案

可扩展到任何N的向量解决方案:

N=2
s = np.zeros((3*N,3*N))
pattern = [[1,0,0],[0,0,1],[0,1,0]]
s.reshape(N,3,N,3)[range(N),:,range(N),:] = pattern

对于

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

关于python - 使用切片/索引在矩阵内切换 numpy 向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54732283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com