このページでは、Python上で配列を任意の順番に並び替える方法をご紹介していきます。
このスキルを応用することで、配列を適当にシャッフルすることも可能です。
AIの教師データ作成の際などに使えるスキルですので、ぜひやり方をマスターしておきましょう。
それではさっそくやっていきましょう!
配列を任意の順番に並び替える方法
配列を並び替える方法は以下の通りです。
とはいえ、これだけではよくわからないと思いますので、実列を紹介します。
配列並び替えのサンプルコード
では、先ほど紹介したスキルを実際に使用してみましょう。
以下がそのサンプルコードです。
import numpy as np
a=np.array([[1,2,3],
[4,5,6],
[7,8,9]])
b=[2,1,0]
c=a[b]
#c=a[[2,1,0]]でも同じこと
print(c)
こいつを実行すると配列cが以下のように出力されました。
先ほどのコードでやっていることとしては、配列aを2番目、1番目、0番目の順番に並べ替えろ、という指示を行っていますので、問題なく順番が入れ替わっていることがわかりますね。
別パターンで実行してみましょう。
import numpy as np
a=np.array([[1,2,3],
[4,5,6],
[7,8,9]])
b=[1,0,2]
c=a[b]
#c=a[[1,0,2]]でも同じこと
print(c)
こいつを実行すると今度は以下の結果が出力されました。
こちらも問題なしですね。
というわけで、配列並べ替えの方法は理解できたと思います。
次はAIでよく使うシャッフルをやってみましょう。
配列の順番をランダムにシャッフルする方法
先ほどのスキルを応用し、順番を指定する変数( b ) をランダムに生成できれば配列をシャッフルできるはずです。
というわけでまずは0から配列の要素数までの数値をランダムに被ることなく生成する方法をご紹介します。
以下がその方法です。
※a がシャッフルしたい配列変数です。randomをimportしておく必要があります。
こいつを使って配列をシャッフルするとこんな感じですね。
※cがシャッフル後の配列
まぁやっていることはさっきと同じですね。
配列シャッフルのサンプルコード
とはいえここも実例があったほうがわかりやすいと思いますので、実演してみましょう。
以下がそのサンプルコードです。
import numpy as np
import random
a=np.array([[1,2,3],
[4,5,6],
[7,8,9],
[-1,-2,-3],
[-4,-5,-6],
[-7,-8,-9]])
shaffle_list=random.sample(range(0,len(a)),len(a))
print(shaffle_list)
c=a[shaffle_list]
print(c)
以下が実行結果です。
まずはprint(shaffle_list)の結果です。
問題なく配列の要素数分のリストが被ることなく生成されていますね。
次はprint(c)の結果です。
こちらも問題なく順番が入れ替わっていますね。
複数回実行してみると毎回違う結果が出力されるはずですので、試してみましょう。
おわりに
というわけで今回はpython上の配列を任意の順番に並び変えたりランダムにシャッフルする方法をご紹介しました。
AIの教師データ作成の際などにぜひご活用ください。
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント