Numpy 1D配列の2つの値を交換するには、次のコードよりも効率的なものはありますか?
input_seq = arange(64)
ix1 = randint(len(input_seq))
ixs2 = randint(len(input_seq))
temp = input_seq[ix2]
input_seq[ix2] = input_seq[ix1]
input_seq[ix1] = temp
タプルの解凍を使用できます。タプルのアンパックにより、コードで一時変数を使用しないようにすることができます(実際には、Pythonコード自体が背後で一時変数を使用していると思いますが、はるかに低いレベルにあるため、はるかに高速です)。
input_seq[ix1], input_seq[ix2] = input_seq[ix2], input_seq[ix1]
私はこの質問に重複としてフラグを立てました、 重複投稿 の回答にはより詳細があります。
Numpy配列を使用しているようです。その場合、これを行うこともできます。
input_seq[[ix1, ix2]] = input_seq[[ix2, ix1]]