在Python中,我以以下方式定义了我的矩阵
A = [[1, 4, 5, 12],
[-5, 8, 9, 0],
[-6, 7, 11, 19],
[-2, 7, 4, 23]]
,并希望尝试通过以下方式打印出各个列和行print(A[2][:])
和print(A[:][2])
分别为第三行和第三列。
令我惊讶的是,他们都打印了第三行。
为目的的学习,我不使用Numpy或任何数学包。
不确定为什么print(A[2][:])
和print(A[:][2])
的输出相同
这似乎遵循访问列表中各种元素的相同原则。也就是说,通过调用A[2]
,您调用的是第三个元素中的整个数据(在本例中是它自己的列表)。通过进一步声明A[2][:]
,您将调用第三个列表中的所有元素。同样的逻辑应用于A[:][2]
调用-即,在您的A列表中调用所有信息,然后您进一步规定您希望显示第三个元素-也就是第三个子列表。
要提取一列,您需要手动循环抛出所有行并提取元素,例如,使用列表推导式:
third_column = [row[2] for row in A]