今回の記事では下記の悩みを解消します。
「range( )関数を活用した繰り返し処理を実施する方法を知りたい」
「range( )関数を使ったfor文の繰り返し処理がどのように行われてるか理解できない」
「pythonで、for i in range( ) ってよくみるけど、よくわからない」
こんな悩みを解決していきます。
今回の記事では、pythonを活用したデータサイエンスで頻出の『range( )関数を活用したfor文の繰り返し処理』について解説します。
range( )関数を活用した繰り返し処理は、データの前処理や交差検証などで頻出なので、是非、今回の記事で理解してほしいです!
なおfor文について完全初学者の人は、先ずは下記記事を読んでfor文のイメージを掴んでください。
早速解説していきます。
range( )関数を活用したfor文の繰り返し処理について
for文でrange( )関数を使用することで、「処理回数を指定した繰り返し処理」や、「Pandas DataFrameの行番号や列番号を指定した繰り返し処理」ができるようになります。
まずはrange( )関数について簡単に解説。
range( )関数の使い方
range( )関数を使うことで、連番を生成できます。
例えばrange(5)で、0, 1, 2, 3, 4 を生成できます。
range(5)をそのまま出力したり(左図)、print文で出力しようとする(右図)と、下記のように出力され、range(5)の中身を取り出すことができませんが、
range( )は「イテラブルオブジェクト」なので、「for i in range( )」のようにfor文を使うことで、range( )の中身を取り出すことができます。
下記のpythonコードで、0 , 1, 2, 3, 4 をprintできていることがわかります。
for i in range(5): print(i)
参考までにlist( )でもリスト形式で取り出すこともできます。
range( )関数の使い方が何となくわかってきたと思うので、ここからrange関数を使ったfor文の繰り返し処理について解説していきます。
range( )関数を使ったfor文の繰り返し処理の実践
今回は、奇数が格納されたリスト(odd_numbers)の要素全てを繰り返し処理でprintする場合を考えてみます。
まずリストの要素は下記のように取り出せます。
0番目の要素「1」、1番目の要素「3」を選択できていることが確認できます。
odd_numbersの要素は5個なので、range(5)でodd_numbersの中の全ての要素をprintできます。また、len( )を使って、range(len(odd_numbers))と書くこともできます。
odd_numbers = [1,3,5,7,9] for i in range(5): print(odd_numbers[i])
次は、これを応用して、odd_numbersの中の要素にプラス1して、even_numbers(偶数のリスト)に格納してみます。
下記のコードでは、「odd_numbersの要素を1つ取り出し、プラス1した値をeven_numberに代入し、even_numbersへ格納する」という処理をodd_numbersの要素全てに適用(繰り返し処理)しています。
予めeven_numbersの空のリスト [ ] を設定しておいて、appendメソッドを活用してeven_numberを格納しています。
odd_numbers = [1,3,5,7,9] even_numbers = [ ] for i in range(len(odd_numbers)): even_number = odd_numbers[i] + 1 even_numbers.append(even_number) even_numbers
このように「for文で繰り返し処理を実施後、別の変数に代入する」のは頻出なので、是非この機会に理解しておいてください。
今回の例では、range( )関数を使わずとも、リスト内の要素を直接指定してfor文で繰り返し処理することもできます。どちらのやり方も頻出ですので是非理解しておいてください。
odd_numbers = [1,3,5,7,9] even_numbers = [ ] for odd_number in odd_numbers: even_number = odd_number + 1 even_numbers.append(even_number) even_numbers
この記事は以上です。
pythonを活用したデータサイエンスでは、range( )関数を使ったfor文の繰り返し処理は頻出なので、是非今回の記事でイメージを掴んでいただければと思います。
✅ 機械学習・pythonの「勉強」について知りたい人は下記記事もお勧め
仕事で活用するための機械学習、pythonの「勉強」について解説しています。
機械学習の独学は勉強することが多く、特に挫折しがちです。。
機械学習を完全独学した私が、「社会で使える機械学習スキル」を最短で得るための勉強・勉強法について書いていますので是非読んで見てください。
皆さんのpythonに関する勉強がさらに進み、理解が深まることを願っています。