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 に答える