yuuho.wiki

カオスの欠片を集めて知恵の泉を作る

ユーザ用ツール

サイト用ツール


tips:python:start

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
tips:python:start [2021/12/10 06:27] – [Python] yuuhotips:python:start [2025/03/19 21:56] (現在) – [Python] yuuho
行 7: 行 7:
  
 === 配下ページ === === 配下ページ ===
-  * 環境構築+  * [[.:env:start|環境構築]]
   * [[.:numpy:start|NumPy]]   * [[.:numpy:start|NumPy]]
-  * cv2+  * [[.:opencv:start|opencv]]
   * [[.:pytorch:start|PyTorch]]   * [[.:pytorch:start|PyTorch]]
   * [[.:matplotlib:start|matplotlib]]   * [[.:matplotlib:start|matplotlib]]
行 16: 行 16:
   * [[.:pptx:start|python-pptx]]   * [[.:pptx:start|python-pptx]]
   * [[.:detectron2:start|detectron2]]   * [[.:detectron2:start|detectron2]]
 +  * [[.:autogluon:start|autogluon]]
  
  
-===== JupyterLab =====+ 
 +===== 保存関係 ===== 
 + 
 +pickle 
 +<code python> 
 +with Path('hoge.pkl').open('wb') as f: 
 +    pickle.dump(save_obj, f) 
 +     
 +with Path('hoge.pkl').open('rb') as f: 
 +    save_obj = pickle.load(f) 
 +</code> 
 + 
 +npz 
 +<code python> 
 +np.savez( Path('hoge.npz'), **{'a':array_a, 'b':array_b} ) 
 + 
 +with np.load(Path('hoge.npz'), allow_pickle=True) as load_dict: 
 +    load_dict = {k:v for k,v in load_dict.items()} 
 +</code> 
 + 
 +===== Jupyter ===== 
 +==== JupyterLab ====
 <code>jupyter lab</code>で起動.デフォルトでは''8888''ポートで立てられる. <code>jupyter lab</code>で起動.デフォルトでは''8888''ポートで立てられる.
 ポート指定して立てたい場合は ポート指定して立てたい場合は
行 47: 行 69:
 あとは ''git commit'' 時に自動的にやられる. あとは ''git commit'' 時に自動的にやられる.
  
 +==== jupyter ====
 +
 +=== サブコマンド一覧 ===
 +jupyter のサブコマンドをリストアップするには、
 +jupyter- と入力してタブ補完で探すのが良さそう。
 +jupyter のサブコマンドは jupyter-hoge という実行ファイルの形になっているので。
 +
 +=== ノートのコマンドライン実行 ===
 +
 +  * 実行結果削除\\ <code bash>jupyter nbconvert --clear-output --inplace MYNOTEBOOK.ipynb</code>
 +  * ノートの実行(ノート自体の書き換え)\\ <code bash>jupyter nbconvert --execute MYNOTEBOOK.ipynb --inplace --allow-errors</code>
 +  * ノートの実行(実行済みノートの新規作成)\\ <code bash>jupyter nbconvert --to notebook --execute MYNOTEBOOK.ipynb \
 + --output OUTPUT.ipynb --ExecutePreprocessor.timeout=2678400 --allow-errors</code>
 ===== scikit-image ===== ===== scikit-image =====
  
行 197: 行 232:
  
 ==== 三項演算子 ==== ==== 三項演算子 ====
-python の三項演算子の書き方.+python の三項演算子の書き方.\\ 
 +and-or スタイルは最後に評価されたものが返ってくる? 
 +''条件式 and 真戻り値 or 偽戻り値'' だが、真戻り値は ''bool()'' で真になるものじゃないといけない
  
 <code python> <code python>
行 297: 行 334:
 <code python> <code python>
 LT = [[*l] for l in zip(*L)] LT = [[*l] for l in zip(*L)]
 +</code>
 +
 +
 +=== 配列から同じ個数ずつ取り出し ===
 +
 +ここまでは、端数が出たとき最後の配列が少なくなる状況だった。
 +たとえば ''21=[5,5,5,5,1]'' みたいになる。これを ''21=[5,4,4,4,4]'' としたい。
 +その場合、
 +<code python>
 +# target : 配列
 +num_split = 3
 +nums = [ len(target)//num_split+int(i<len(target)%num_split) for i in range(num_split)]
 +splits = [ (slice(l[0],l[0]+n),l.append(l.pop()+n))[0] for l in [[0]] for n in nums ]
 +splitted = [target[sl] for sl in splits]
 +
 +num_split = 3
 +nums = [ len(target)//num_split+int(i<len(target)%num_split) for i in range(num_split)]
 +splitted = [ (target[l[0]:l[0]+n], l.append(l.pop()+n))[0] for l in [[0]] for n in nums ]
 +
 +</code>
 +
 +=== generatorの展開 ===
 +
 +<code python>
 +# * を使うのが良い。
 +# 複数の generator から展開してまとめるときは
 +[*hoge, *fuga, *piyo]
 +
 +# 無数のgeneratorから展開してまとめるときは
 +sum([[*g] for g in g_list],[])
 +
 </code> </code>
 ==== 内包表記の旅 ==== ==== 内包表記の旅 ====
行 568: 行 636:
     return 'hoge'     return 'hoge'
 </code> </code>
 +
 +===== デバッグテクニック =====
 +
tips/python/start.1639117623.txt.gz · 最終更新: 2021/12/10 06:27 by yuuho