Pythonで機械学習(忘備録①Python言語の基礎)

IT

自分向けのメモ。よく忘れるところとか、初学時に引っかかったところなど。基本的にリンク先が非常に詳しく、自分でも役に立ったページ。

(本も紹介する)

0−1.更新履歴

2021/4/1 初版 Pytyonプログラム言語について

0−2.前提や、想定読者層

  • 一念発起してpythonや機械学習を始めた、自分みたいな境遇の人。
  • 完全なプログラム言語初心者は想定していない(私は、visual basic/VBA程度の開発経験あり)

1.python環境の構築

tarminal(MacOS)の利用

   pipコマンドでパッケージインストール実行

   pythonコマンドでpython起動

IDL(Integrated Development Environment:統合開発環境)pycharmについて

パッケージのインストールについて

コマンド打ったりしないので最初は少し戸惑った。Settings画面→Project Interpreter →パッケージ名を検索してインストール。

pycharm上からtarminalを動かす方法

ターミナルエミュレータという機能がございます。表示→ツールウィンドウ→ターミナルで起動。

   

google colabについて

2.Pythonに特徴的な記述

複数の変数を一行で更新

pythonでは一行で複数の変数への代入が可能。関数の戻り値も複数定義できる。

#一行で複数の変数に別々の値を代入
a,b,c=1,2,3
print(a,b,c)
1 2 3
#複数の値を戻り値に持つ関数
def return_double_values():
   return 'a',10
#前項の入力と同様
d,e = return_double_values()
#一つの変数で受けることもできる。タプル型になる
ret = return_double_values()
print(ret)
('a',10)

リスト内包処理

newdata=[]
#case1 data配列の中身を2倍してnewdata配列を作成
#普通の書き方
for d in data:
   newdata.append(d*2)
#リスト内容方処理の書き方
newdata = [d * 2 for d in data]

#case2 if文を含む場合
newdata=[]
#普通の書き方
for d in data:
   if d % 2 == 0:
       newdata.append(d * 2)
#リスト内包処理の書き方
newdata =[d * 2 for d in data if d % 2 == 0]

イテレーターとは

要素を1つずつ取り出せるオブジェクトだそうです。for文とすごく相性がいい。

tmp = valid_loader.__iter__()
x1,y1=tmp.next()
x2,y2=tmp.next()
print(x1,y1,x2,y2)

デバッグ

デバッグやソース解析

  • print関数でバグ周辺の変数の値を確認していく。
  • len配列の中身を確認する。
  • type関数で変数の型を探る癖をつける。パッケージごとに独自の型が存在することもしばしばある。

pythonでよく使うメソッドなど

パッケージとは

 pythonは膨大なことができるし、色んな人が追加の機能を開発したりしていて、日々できることが増えていっている。それらの機能全体を常に使えるようにすることは、メモリに圧迫を起こしたり、名称の重複が発生しやすくなるなど問題が多い。よって、その時々にやりたいことができる最低限のパッケージを展開する(import)ことが基本となる。

 とはいえ、定番のパッケージはやはりあり、いつも以下のようなおまじないで使えるようにしておくことが多い。

よく使う定番パッケージと関数

ターミナル上でフォルダ位置などを確認

  • カレントディレクトリを取得・確認: os.getcwd() ※osパッケージ
  • カレントディレクトリを変更(移動): os.chdir()

参考文献