Python入門教材を探してる人が見る記事
「公式ドキュメント」
Python入門
Pythonプログラミング
神PDFが公開されております
上記のリンクの教材のところを見てください
以下めも
「Pythonプログラミング入門」
1 Colaboratoryによるノートブックの使い方
セルの作り方など
2 数値演算
簡単な演算
3 変数と関数の基礎
まあ基本
4 論理・比較演算と条件分岐の基礎
if文とか
5 デバッグ
printデバッグ
assertデバッグ
6 文字列
str()とint()で行ったりきたり
文字列は変更不可能なデータなので、新たに別の文字列を作成する必要がある
スライス表記
'lo' in 'hello'
word2 = word1.replace('l', '123')
7 リスト
リストとタプルを紹介
タプルは一度設定した要素を変更できない
8 条件分岐
if文について
9 辞書
キーと値を対応させるデータ構造
10 繰り返し
for文とwhile
要素の順序を把握したいときはenumerate()
pythonでは空の実行ぶんが許されいないのでpassを使う
11 関数
global変数を更新したいときはglobal宣言をする
仮引数の前の*をつけたら可変長引数
**をつけたら複数のキーワード引数を辞書として受け取ることができる
12 ファイル入出力のきほん
普通はf = open()
f.close()
withをすると、処理後に自動的にファイルのクローズをしてくれる
13 イテレータ
ファイルオブジェクトはイテレータと呼ばれるオブジェクトの一種である
next(f)はファイルから新たに1行を読んで文字列をする
関数iterが適用できるオブジェクトをイテラブルと言い、forのinの後に指定することができる
enumerateはイテレータを返す
14 コンピュータにいよるファイルやディレクトリの配置
基本
15 モジュールの使い方
from モジュール名 import モジュール内の関数名
モジュール名.をつけずに使いたい場合の記述
16 モジュールの作り方
ダウンロードしたモジュールファイルをColaboratoryで使うにはColaboratoryの実行中のファイルシステムのカレンとディレクトリにモジュールファイルをアップロードする必要がある
17 NumPyライブラリ
多次元配列を効率的に扱うライブラリ
arangeは組み込み関数range()の配列版
18 内包表記
Pythonでは各種の内包表記が利用できる
19 高階関数
いちいち定義がめんどくさい関数はlambda関数を使える
mapは各要素に適用できる
20 クラス
初期化は__init__
with文にも対応できる
継承
特殊メソッド
raiseは強制的にエラーを発生させる
21 pandasライブラリ
SQLみたいな感じ
22 scikit-learnライブラリ
n回やった
23 Jupyter notebookの使い方
まあという感じ
24 set
セットは要素の重複と順番がない
25 再帰
まあという感じ
26 簡単なデータの可視化
matplotlib
27 CSVファイルの入出力
withやpandasなど
グラフのファイル出力
28 Bokehライブラリ
データの可視化のライブラリ
29 Pythonスクリプトとコマンドライン実行
普通のファイルでの実行
30 Matploblibライブラリ
デジャブ
31 正規表現
import re
Pythonの学かたと読むべき本を体系化
Pythonライブラリ
・ArgumentParser
プログラム実行時にコマンドラインで引数を受け取る処理を簡単に実装できる標準ライブラリ。
1.argparseをインポート
2.parserを作る
3.引数を設定する
4.解析する
・imp
動的にモジュールをロードする
・tensor flow
Tensorflowは計算の形の情報を保持して、session内でrunさせたときに初めて計算がなされる。
この形の情報をgraphなどという。
Tensorflowは、多次元、定数、後から代入を受け付ける変数を備えている。
Tensorflowでは設計図作成とビルドの2つに分けて考えることができる。
Tensorflowでは2つの変数がある。placeholderとvariablesで、placeholderは事前にサイズと入れ物を作るってやつで、variableは重みと言われる変数です。
Tensorflowはグラフ構造に基づく柔軟なモデル構築が可能です。
・環境変数について
環境変数とはOSが使用できる変数のことで、そのMac内のすべてのアプリケーションから参照することができる。
環境変数をターミナルで試したいというときは$をつけて確認することができる
環境変数は自分で好きなように設定することができ、exportというコマンドを使う。
ファイルに書き込むと永続的に環境変数が設定される
PAHTの役割としては、コマンドをコマンド名だけで実行できるようにする、同じコマンドが複数インストールされている場合優先して実行するコマンドを決めるということが挙げられる。
つまり、コマンドは1つの実行ファイルである
PATHにはコマンドが格納されたフォルダのパスを指定する。
そのとき複数のフォルダを指定するときには:を用いる
左に書かれたフォルダにあるコマンドが優先的に読み込まれる
Exportコマンドでは環境変数の値を永続的に保持することはできないので、.bash_profileファイルを使用して環境変数PATHの値を保持する方法がある。
また、事前に環境変数PATHに設定されている/usr/local/binに実行ファイルを保存するという方法もある。このときは.bash_profileの作成の必要はないが、macのインストール直後は/usr/localにbinディレクトリは存在しないので作成を行う必要がある。
・Xmlファイルについて
Xmlは文章の見た目や構造を記述するためのマークアップ言語の1つ。
主にデータのやり取りや管理を簡単にする目的で使われる。
・Expフィアルについて
c++でdllを作成する際にエクスポートファイルに着く演算子
Dllとは動的なリンクによって利用されるライブラリ、つまりぶプログラムを部分ファイルのことである
windows用っぽい
・initファイルについて
Pythonスクリプトがあるディレクトリを表す役割をなす
必要なモジュールをimportするなどの初期化処理を記載する
__init__.pyが存在するディレクトリをPythonパッケージとして認識させるという機能がある
また、importされた時に__init__.pyに記述されたスクリプトが実行される
・ssh
暗号化された通信方式
・scpコマンド
サーバーとローカルの間のファイルなどの送信受信を行う
・__pycache__の役割
ファイルをインポートした時にできる
Python compiledファイルが入っている
役割としては、インポートした時の読み込みを早くするためのもので、消しても問題ない
要するにキャッシュ!
・.gitignoreファイルについて
GItによる追跡対象としないファイルを指定するための設定ファイル
プロジェクト固有で、バージョン管理する必要のないもの(中間成果物)など
プロジェクト固有ではなく発生して、バージョン管理から外したいものはグローバルなgitignoreファイルへ書いておく(OSが勝手に作るファイルや、エディタが作るバックアップファイルなど)
・setuptoolsについて
コードをpipで共有できる
・eggファイルについて
Eggはパッケージらしい
・cuda
Pythonで行列計算をする場合はNumpyを使いますが、行列数の多いときはGPUで計算のできるcudaが便利である。
・conda と pipについて
両者のパッケージの仕組みは全く異なり、基本的に互換性が一切ない。condaは複数の仮想環境下でディスクの使用料を節約するため、ハードリンクを利用している。
Anaconda下では基本的にcondaを使ってパッケージをインストールするのだが、一部のパッケージはanaconda社のレポジトリからは提供されていない。そのような時は
1.デフォルト以外のレポジトリからインストール
2.自分でconda用のパッケージを作る
3.pipを使ってインストール
で3をすると問題が起こることがある。
Condaから入れたパッケージはpipで認識されるものの、依存関係のバージョン違い、パッケージ名の違いで、上書きされてしまうことがある。また、condaはハードリンクを用いてパッケージを共有しているので1つの環境でやらかすと他の環境まで破壊されることもある。
例えば、直接PyQt5をインストールしなくても、依存関係を満たすためにpipが予期せずにパッケージを上書きしてしまう場合があり、これが厄介である。
対策
1.anaconda search XでXを提供しているチャネルが無いか探す。condo install -c channel Xなどでインストールする。
2.pipから入れたい時はPyPIのサイトから該当するパッケージを探し、依存関係を調べておく。
3.依存関係を満たしたらpip install —no-deps XでXをインストールする
別の方法として、pipからしか入れられないパッケージを入れたい時は新しいconda環境を作りそこではconda install は一切用いない。
Anacondaを使うのをやめて、Python公式サイトのpythonを使って、パッケージはpipで導入する。仮想環境はvenvやvirtualenvを使うというのがある。
Conda listを使って、同じパッケージがpip経由とconda経由で入っていたら重複して表示され、その時は何かがおかしくなっている場合が多い。
「Pythonのコード読む・書く」
webサイトより
読み方
・プログラムを動かす
・ドキュメント
・ディレクトリ構造
・ファイル構造
・略語の調査
・データ構造を知る
・関数同士の呼び出し関係
・関数を読む
・書き換えて動かす