ユーザ用ツール

サイト用ツール


プログラム:python

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
プログラム:python [2023/03/19 11:53]
kawaue [Numpy]
プログラム:python [2025/08/14 09:23] (現在)
kawaue
行 25: 行 25:
 $ conda activate hogeenv $ conda activate hogeenv
 </file> </file>
-これでpython3.8の仮想環境hogeenvができた。+これでpython3.8の仮想環境''hogeenv''ができた。
 <file> <file>
 $ conda deactivate $ conda deactivate
 </file> </file>
 で仮想環境を終了。\\ で仮想環境を終了。\\
-デフォルトでbaseという環境がactiveになるので+デフォルトで''base''という環境がactiveになるので
 <file> <file>
 conda config --set auto_activate_base False conda config --set auto_activate_base False
行 41: 行 41:
  
 ===Jupyter Notebook=== ===Jupyter Notebook===
-仮想環境をアクティベートした状態で+仮想環境をアクティベートした状態で以下のコマンドで起動。
 <file> <file>
 $ conda install jupyter $ conda install jupyter
行 47: 行 47:
 </file> </file>
  
 +Notebook上でのモジュールのインストールの仕方。\\
 +<file>
 + !pip install module
 +</file>
 +importできない時はpathの確認
 +<file>
 + !pip show module
 +</file>
 +をして、追加\\
 +<file>
 + import sys
 + sys.path.append('path')
 +</file>
 +
 +便利なコマンド\\
 +cellをdeactivate : esc + r\\
 +cellをactivate : esc + y
 ====文法==== ====文法====
 ===スコープ=== ===スコープ===
-indentの位置でスコープが決まる(?)。+indentの位置でスコープが決まる(?)。\\ 
 +コメントであってもindentの位置を変えることは許されない。(),[],{}内は改行が許されている
  
 ===宣言=== ===宣言===
 変数の宣言時に型の指定は不要(?)。 変数の宣言時に型の指定は不要(?)。
 函数の引数にも不要(?)。 函数の引数にも不要(?)。
 +
 +注:組み込み関数を上書きしようとしても何もエラーを吐かず、そのまま上書きする(?)。\\
 +例:print = 0などとしてしまうと、何もエラーを吐かずprintが関数でなくintになり、print()がエラーを吐くようになる。\\
 +対処法:del printでリセット可能。
 +
 +===文字列===
 +<nowiki>''</nowiki>と""どちらも可(!?)
 +
 +変数を文字列にして出力
 +<code>
 +print("Process %s type %d : progress %.3f %%"%(hoge,huga,piyo))
 +</code>
 +%s : 文字, %d : 整数, %.3f : float3桁まで表示。 %% : %のエスケープ
  
 ===ライブラリの読み込み方=== ===ライブラリの読み込み方===
行 71: 行 102:
 from hoge import Hoge from hoge import Hoge
 </file> </file>
 +
 +===関数===
 +以下のように宣言する。返り値を複数設定可能で、配列で渡される。
 +<file>
 +def hoge(huga,piyo):
 +    foo = huga + piyo
 +    bar = huga - piyo
 +    return foo, piyo
 +</file>
 +配列の各要素に関数を作用させたいとき\\
 +例:shapeが(1000,2)のnumpy.array num_arrayの二つ目の軸の要素の和と差のnumpu.arrayを作りたい
 +<file>
 +new_array = np.apply_along_axis(lambda element: hoge(*element), 1, num_array)
 +</file>
 +lambda : ラムダ式。ここでだけ使う関数を宣言できる。
  
 ===クラス=== ===クラス===
行 91: 行 137:
 コンストラクタの中で(self.hogeの形で)宣言した変数はメンバ変数になる。 コンストラクタの中で(self.hogeの形で)宣言した変数はメンバ変数になる。
  
-classの函数は第一引数にselfを必ず持たなくてはならない。メンバ変数hogeを呼ぶときはself.hogeの形で呼ぶ。+classの函数は第一引数に''self''を必ず持たなくてはならない。メンバ変数hogeを呼ぶときはself.hogeの形で呼ぶ。
 コンストラクタは<nowiki>__init__()</nowiki>、デストラクタは<nowiki>__del__()</nowiki>。引数が違うコンストラクタを複数定義できる。 コンストラクタは<nowiki>__init__()</nowiki>、デストラクタは<nowiki>__del__()</nowiki>。引数が違うコンストラクタを複数定義できる。
  
行 97: 行 143:
  
 ===コメントアウト=== ===コメントアウト===
-一行は先頭に#を置く。複数行は<nowiki>"""</nowiki>(ダブルクオート三つ)で囲む。+一行は先頭に#を置く。複数行は''<nowiki>"""</nowiki>''(ダブルクオート三つ)で囲む。
  
 ===for文=== ===for文===
行 105: 行 151:
 </file> </file>
 ''range(start,stop,step)''は$\mathrm{start}\leqq i<\mathrm{stop}$の間で''step''ずつカウンターを増やす。 ''range(start,stop,step)''は$\mathrm{start}\leqq i<\mathrm{stop}$の間で''step''ずつカウンターを増やす。
 +
 +===組み込み関数など===
 +type() : 型を表示する。
  
 ====デバッグ==== ====デバッグ====
-pdbを使うとよい。+pdbモジュールを使うとよい。
 <file> <file>
 import pdb import pdb
行 113: 行 162:
  
 pdb.set_trace()した行からデバッグが始まる。 pdb.set_trace()した行からデバッグが始まる。
-lコード確認 +^コマンド^説明^ 
-s現在の行を実行。次の関数の前で止まる +|l|コード確認| 
-p var 変数の中身を確認+|s|現在の行を実行。次の関数の前で止まる| 
 +|p var|変数varの中身を確認|
  
 ====Numpy==== ====Numpy====
行 126: 行 176:
 |.concatenate() | 既存の次元に対して結合| |.concatenate() | 既存の次元に対して結合|
 |.stack() | 新たな次元を作って結合| |.stack() | 新たな次元を作って結合|
 +
 +===hist===
 +a,b,c=hist
 +
 +a=value of each bin, b=bin
 +
 +====2軸plot====
 +<code>
 +run_index = 0
 +fig, ax1 = plt.subplots()
 +ax2 = ax1.twinx()
 +ax2.plot(histories2[run_index].history['lr'],label='learning rate',linestyle='--',color='green')
 +ax1.plot(histories2[run_index].history['loss'],label='training loss')
 +ax1.plot(histories2[run_index].history['val_loss'],label='validation loss')
 +plt.title('1st iteration, step 1, batch : 8192 lr : 1e-6, 1st trials')
 +ax1.set_xlabel('epoch')
 +ax1.set_ylabel('Loss')
 +ax2.set_ylabel('Learning Rate')
 +handler1, label1 = ax1.get_legend_handles_labels()
 +handler2, label2 = ax2.get_legend_handles_labels()
 +ax1.legend(handler1 + handler2, label1 + label2)
 +#plt.legend()
 +plt.figure()
 +</code>
  
 ====機械学習==== ====機械学習====
行 159: 行 233:
 </file> </file>
  
 +====Condaの使い方====
 +環境の複製
 +<code>
 +conda create --name new_environment_name --clone existing_environment_name
 +</code>
 +環境の削除
 +<code>
 +conda env remove --name myenv
 +</code>
プログラム/python.1679226783.txt.gz · 最終更新: 2023/03/19 11:53 by kawaue