目次
numpy
前回、numpyのリストに要素を追加する「append」を紹介しました。
【NumPy】リストに要素を追加:append[Python]
numpy 前回、リストで関数の結果を取得できるmap関数を紹介しました。 今回はnumpyのリストに要素を追加する方法を紹介します。 いつもは普通のリストを作って、「np.ar…
今回はnumpyでリストの要素の順番をずらす「roll」という関数を紹介します。
これは何かのプログラムで使った訳ではなく、どこかで紹介されていて、どんな関数なのかなと思っていじってみたのが今回の発端です。
ということで今回使うリストを作成します。
import numpy as np
val_list = np.array(range(10))
print(val_list)
実行結果
[0 1 2 3 4 5 6 7 8 9]
「roll」はnumpyの関数なので、今回のリストはnumpyのリストで作成してあります。
それでは始めていきましょう。
使い方
「roll」を使うには「np.roll(リスト, ずらす個数)」です。
import numpy as np
val_list = np.array(range(10))
roll_1 = np.roll(val_list, 1)
print(roll_1)
実行結果
[9 0 1 2 3 4 5 6 7 8]
ずれる方向は右(インデックスが大きい方向)にずれ、端の要素は前に戻ってきます。
ちなみに元のリストが変更された訳ではなく、新しいリストとして作成されているようで、元のリストはそのままで再度取得することが可能です。
ということで3つずらして、ずらす前後のリストを見てみました。
import numpy as np
val_list = np.array(range(10))
roll_3 = np.roll(val_list, 3)
print(roll_3)
print(val_list)
実行結果
[7 8 9 0 1 2 3 4 5 6]
[0 1 2 3 4 5 6 7 8 9]
またリストの要素数よりも大きな値を指定することも可能で、その場合は単純に指定した数だけずれ続けます。
import numpy as np
val_list = np.array(range(10))
roll_15 = np.roll(val_list, 15)
print(roll_15)
実行結果
[5 6 7 8 9 0 1 2 3 4]
逆向きにずらす場合は値を「-(マイナス)」にするだけです。
import numpy as np
val_list = np.array(range(10))
roll_3_rev = np.roll(val_list, -3)
print(roll_3_rev)
実行結果
[3 4 5 6 7 8 9 0 1 2]
なかなか面白い関数ですが、どこで使うんだろうなぁと思いつつ、いじっていました。
とりあえず頭の片隅に入れておいて、活躍の場を待ちたいと思います。
次回は並列処理の「concurrent.futures」で返り値を取得する方法を紹介します。
【Python基礎】concurrent.futuresでの返り値の取得
並列処理 前回、numpyのリストの要素の順番をずらす「roll」を紹介しました。 今回は並列処理のライブラリconcurrent.futuresで返り値を取得する方法を紹介します。 con…
ではでは今回はこんな感じで。
コメント