[python] numpy を使わずに連番配列をランダムに入れ替える

配列をランダムに取り出したいときに、インデックスの連番を配列にしてシャッフルすることがあると思います。
numpy ありなら簡単に思いつくのですが、問題は、numpy なしの場合。
あまりにも numpy に慣れてしまうと numpy なし環境で作らないといけない状況で戸惑ってしまったので記載しておきました。

例えば、IDとパスワードが入った2つの配列や、問題と正解が入った配列などです。

これをランダムに全て取りしたいときに、インデックスの配列を作ります。

この、list_idx をランダムにシャッフルすると、

そして、普通にfor文で回せばランダムに取り出せます。

結果は

と、ランダムに全ての値が取れました。

ちょっと長くなりましたが、こんな使い方をするときにnumpyなら簡単に

これで、index_list は

になります。
numpy なしの場合は。

python3系

これで、index_list は

python2系

これで、index_list は

となりました。







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください