我有一个矩阵,想要删除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:]
我希望这些值只是数字。
谢谢,伙计们!
答案 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:]]
做同样的事情就是删除矩阵中的第一行,但是单独删除每一行。