2016-08-12 4 views
0

n行n列の行列(技術的にはnp.array)Lが与えられたら、k行目とk列目を削除します。予想通りこのコード行は、(それが第三行と列を通じて第一の選択)作品:Numpy:1つの行と列を削除するためのスライス行列

Lt = L[(1,2,3),(1,2,3)] 

私はKを除く動的に生成されたタプルで(1,2,3)を交換しようとすると、それは失敗します。

keep = (i for i in range(n) if i != k) 
Lt = L[keep,keep] 
# IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices 

これを正しく行うにはどうすればよいですか?

答えて

2
keep = (i for i in range(n) if i != k) 

これは、ジェネレータ式ではなく、生成されたタプル自体です。代わりに、試してみてください

keep = tuple(i for i in range(n) if i != k) 
関連する問題