【发布时间】:2019-11-07 17:39:29
【问题描述】:
我正在尝试从 sympy 矩阵中选择多列。但是,索引无法按预期工作。代码
import sympy as sp
stdA = sp.Matrix(
[
[-2, 1, 1, 0],
[1, 1, 0, 1]
]
)
b = sp.Matrix(
[
[3],
[2]
]
)
B1 = stdA[:, [0, 1]]
B2 = stdA[:, [0, 2]]
B3 = stdA[:, [0, 3]]
B4 = stdA[:, [1, 2]]
B5 = stdA[:, [1, 3]]
B6 = stdA[:, [2, 3]]
print("std A =", stdA)
print("b =", b)
print("B1 =", B1)
print("B2 =", B2)
print("B3 =", B3)
print("B4 =", B4)
print("B5 =", B5)
print("B6 =", B6)
打印
看到B3 的问题及其后面的矩阵了吗?它应该是B3 = Matrix([[-2, 1], [0, 1]])。我认为切片 Sympy 矩阵会产生它们的副本,所以 stdA 不应该就地改变。
是什么导致了这种错误行为,如何从具有简单索引的矩阵中选择特定列?
【问题讨论】:
标签: python-3.x matrix indexing sympy