如何在python中删除矩阵中的第一列?

时间:2012-11-20 21:04:58

标签: python matrix

我有一个矩阵,想要删除python中的第一列。最好的方法是什么?

Ex:摆脱E的第一列。

    E E E E E
    E 1 2 3 4
    E 5 6 7 8
    E 9 1 2 3

正在从txt文件中读取矩阵。我试图使用第一行作为键,摆脱第一列并使用剩余的行作为值。

这是我到目前为止所做的:

    matrix_filename = raw_input("Enter the scoring matrix filename:  ")  
    matrix_file = open(matrix_filename, "r")  
    matrix = matrix_file.readlines()  
    keys = matrix[0]  
    vals = matrix[1:]  

我希望这些值只是数字。

谢谢,伙计们!

2 个答案:

答案 0 :(得分:1)

我将假设您的矩阵只是一个数组数组,如果是这样,则以下代码可以正常工作。但是,它不会就地删除元素,它会返回矩阵的副本,并删除第一列。

>>> m = [ [x*5+y for y in range(5)] for x in range(5) ]
>>> m2 = [ row[1:] for row in m ]
>>> print m
[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]]
>>> m2
[[1, 2, 3, 4], [6, 7, 8, 9], [11, 12, 13, 14], [16, 17, 18, 19], [21, 22, 23, 24]]

答案 1 :(得分:1)

vals = [line[1:] for line in matrix[1:]]

做同样的事情就是删除矩阵中的第一行,但是单独删除每一行。