0

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

例如:去掉 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:]  

我希望这些值只是数字。

多谢你们!

4

2 回答 2

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]]
于 2012-11-20T21:18:12.320 回答
1
vals = [line[1:] for line in matrix[1:]]

只需执行与删除矩阵中的第一行相同的操作,但要单独删除每一行。

于 2012-11-20T21:18:20.570 回答