我有一个列表,我将其转换为矩阵。
m = [[0, 2, 1, 0, 0], [0, 0, 0, 3, 4], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
n = np.matrix(m)
如何根据前三行和列创建新矩阵?
具体来说,这个:
I = [[0, 2, 1], [0, 0, 0], [0, 0, 0]]
我认为以下行会起作用
I = m[0:3, 0:3]
但我收到了错误
TypeError: list indices must be integers or slices, not tuple
答案 0 :(得分:3)
您正在切割列表而不是矩阵。 list不能将元组作为参数。
使用n[0:3,0:3]
代替m[0:3, 0:3]
。
答案 1 :(得分:3)
除了用户1753919的答案,您还可以使用以下代码对列表进行切片:
In [10]: [row[0:3] for row in m[0:3]]
Out[10]: [[0, 2, 1], [0, 0, 0], [0, 0, 0]]
但我建议你用矩阵来做。因为它更简单。