Pythonを無料で独学できるKaggleのCourses|Lists_Tutorial

スポンサーリンク
Kaggle
【Python初心者でも分かる】データサイエンティスト協会の100本ノック|ダウンロードから読み込みまで
「データサイエンティスト協会の100本ノック」はビジネス現場で使えるデータ分析の学習に最適です。その「データサイエンティスト協会の100本ノック」のデータとPythonコードがGitHubで公開されています。 今回は、...
素人がデータサイエンティストになるための近道|社内データサイエンティスト
データサイエンティストとは、データを使って問題を解決する人のことです。 データサイエンティストって、なんかかっこいいですよね。パソコンの前で、難しそうなデータを扱って、表とかグラフにまとめて、経営陣にプレゼンする。最近...

Pythonを学びたいと思っている方に非常におすすめな学習方法があります。それは、KaggleのCoursesです。特徴としては、以下のものがあります。

  • 無料
  • 面倒な環境設定なく
  • 解説付きで
  • 体系的に学習できる

これは、活用しないわけにはいかないですよね。ただ、このKaggleのCoursesは、英語で書かれています。なので、英語が苦手な初学者にはハードルが高いと感じるかもしれません。なので、日本語でコードの解説をしていきます

まずは、以下の記事を参考に、KaggleのCoursesで独学する方法を解説しています。

Kaggle Courses|Pythonを無料で独学できる超簡単な方法

今回は、KaggleのCoursesの各論として、Python偏の「Lists」の「tutorial」を解説していきます。

Lists (tutorial)

リストと、それを使ってできること。さらに、インデクシング、スライシング、ミューテイティングを含みます。

Lists

Pythonのリストは、値の順序付けされたシーケンスを表します。ここでは、その作成方法の例を示します。

他のタイプのものもリストに入れることができます。

リストのリストを作ることもできます。

リストには、さまざまな種類の変数が混在しています。

Indexing

個々のリスト要素に角括弧でアクセスできます。

太陽に一番近い惑星は?

Pythonはゼロベースのインデックスを採用しているので、最初の要素のインデックスは0です。

次に近い惑星は?

太陽から最も遠いのはどの惑星?

リストの最後にある元素は、-1から始まる負の数でアクセスできます。

Slicing

最初の3つの惑星は何ですか?この質問には、スライシングを使って答えることができます

planets[0:3]は,インデックス0から始まり,インデックス3を含まないまでの惑星の要素を求める方法です.

始点と終点のインデックスはどちらも任意です。開始インデックスを省略した場合は,0とみなされます.したがって,上の式を次のように書き換えることができます.

終了インデックスを省くと、リストの長さとみなされてしまいます。

つまり,上の式は「インデックス3以降のすべての惑星をください」という意味になります.

スライスの際には、負のインデックスを使うこともできます。

Changing lists

リストは「可変型」、つまり「その場で」変更することができます。

リストを変更する一つの方法は、インデックスやスライス式に割り当てることです。

例えば、Marsの名前を変更したいとします。

ふむ、なかなかの口ぐせですね。それを補うために、最初の3つの惑星の名前を短くしてみましょう。

List functions

Pythonにはリストを扱うための便利な関数がいくつかあります。

len はリストの長さを表します。

sortedは、リストをソートしたものを返します

sumは期待通りの働きをしてくれます。

以前、minとmaxを使って、複数の引数の最小値や最大値を取得しました。しかし、単一のリスト引数を渡すこともできます。

Interlude: objects

これまで「オブジェクト」という言葉を何度も使ってきました。「Pythonのすべてはオブジェクトである」と読んだことがあるかもしれません。これは何を意味しているのでしょうか?

簡単に言うと、オブジェクトはいくつかのものを持ち歩きます。Pythonのドット構文を使って、そのオブジェクトにアクセスします。

例えば、Pythonでは数字は虚数部を表すimagという変数に関連付けられています。(よほど奇妙な計算をしない限り、これを使う必要はないでしょう)

オブジェクトが持ち歩くものには、機能も含まれます。オブジェクトに付随する関数をメソッドと呼びます。(イメージなど、オブジェクトに付随する機能を持たないものは属性と呼ばれます)。

例えば、数字にはbit_lengthというメソッドがあります。ここでも、ドット構文を使ってアクセスします。

実際に呼び出すには、括弧を付けます。

余談ですが 演習問題をやっていれば、実はすでにメソッドを呼び出しています。演習ノートのq1,q2,q3などは、check,hint,solutionというメソッドを持つオブジェクトです。

help関数に関数を渡すことができるのと同じように(例:help(max))、メソッドを渡すこともできます。

上記の例は、まったくわかりませんでした。これまで見てきたオブジェクトの種類(数値、関数、ブーリアン)には、使う可能性のある属性やメソッドはありませんでした。

しかし、リストには常に使うことになるいくつかのメソッドがあることがわかりました。

List methods

list.appendは、リストの末尾に項目を追加することでリストを修正します。

上のセルが出力されないのはなぜ?help(planets.append)を呼び出してドキュメントを確認してみましょう。

余談ですが、append は planets だけでなく、すべての list 型のオブジェクトが持っているメソッドなので、 help(list.append) を呼ぶこともできました。しかし、help(append)を呼ぼうとすると、Pythonは “append “という変数が存在しないことを訴えます。append “という名前はリストの中にのみ存在し、maxやlenのような組み込み関数のように独立した名前としては存在しません。
Noneの部分は、list.appendが何も返さないことを示しています。しかし、planetsの値を確認すると、このメソッドの呼び出しによってplanetsの値が変更されていることがわかります。
list.popは、リストの最後の要素を削除して返します。

Searching lists

地球は惑星の中でどの位置にありますか?list.indexメソッドを使って、そのインデックスを得ることができます。

3番目(つまりインデックス2-インデックス0!)になっています。

冥王星はどのようなインデックスで出現するのでしょうか?

ああ、そうだった…。

このような不快な驚きを避けるために、in演算子を使って、リストに特定の値が含まれているかどうかを判断することができます。

ここでは紹介していませんが、他にも興味深いリストメソッドがいくつかあります。特定のオブジェクトに付随するすべてのメソッドや属性について知りたい場合は、そのオブジェクト自体に対して help() を呼び出します。例えば、help(planets)とすると、すべてのリスト・メソッドについて知ることができます。

出力」ボタンをクリックすると、ヘルプページの全文が表示されます。リストには、__eq__や__iadd__のような変な名前のメソッドがたくさんあります。今のところはあまり気にしないでください。(このようなメソッドを直接呼び出すことはないでしょう。しかし、インデックスや比較演算子のような構文を使うときには、裏で呼び出されます)。最も興味深いメソッドは、リストの下の方にあります(append、clear、copyなど)。

Tuples

タプルはリストとほとんど同じです。異なる点は2つだけです。

  1.  タプルを作成する構文は、角括弧の代わりに括弧を使用します。

 

2. 変更できない(不変である)

タプルは、複数の戻り値を持つ関数によく使われます。

例えば、floatオブジェクトのas_integer_ratio()メソッドは、分子と分母をタプルの形で返します。

これらの複数の戻り値は、以下のように個別に割り当てることができます。

ついに、2つの変数を入れ替える古典的なStupid Python Trick™についての洞察が得られました。

Your Turn

読むだけではなく、コードを書くことで最もよく学ぶことができます。さあ、今すぐコーディングに挑戦してみましょう。

KaggleのCourses|Lists_演習編

【Python初心者でも分かる】データサイエンティスト協会の100本ノック|ダウンロードから読み込みまで

Python初心者がデータサイエンティストになるために必要な書籍
データサイエンティストに必須のプログラミング言語であるPythonですが、初心者にとってはハードルが高いです。 初心者がPyhtonを勉強するためには、書籍が手っ取り早いです。しかし、書店やECサイトには多くのPyth...



コメント

タイトルとURLをコピーしました