次のサーバはAnaconda3がインストールされている。
サーバにはOSパッケージ(Ubuntu)に含まれるpythonも入っているので、Anacondaのほうを優先的に使用するには、pathの追加設定が必要である。~/.bashrcに
# added by Anaconda3 4.3.1 installer export PATH="/opt/anaconda3/bin:$PATH" # pagerがおかしくなって、manが見られなくなったことへの対応 export PAGER=/usr/bin/lvを書いておく。(pagerの指定はなくても良い。)
ターミナル上で、
which python3
としたときに、anacondaの方を表示してあればそれでよい。
即時実行には, pythonスクリプトの先頭に
#!/usr/bin/env python3 # coding: UTF-8と書いておき(codingは念のため)、 ファイルに実行権限をつける
chmod +x xxxxxx.py以上により、コマンドラインで <<literal> <pre class="brush:bash; tab-size: 8;"> ./xxxxxxx.py </pre> </literal> で実行できる。(頭のpath名はは適当に.)
logoutしても、バックグラウンドで実行してくれるようにするには、バッチジョブとして投入する。
簡単には、
echo "./xxxxxxx.py" | batchとする。
バー"|"はパイプを表す。 シェルのヒストリー機能を利用すれば、次のジョブの投入が簡単である。
終了はメールで知らせてくれる。
ホームディレクトリに".forward"というファイルを作り、その中にメールを転送したいアドレスを書いておく。
(古臭いものもあります。)
argparseを使うと、代入するキーと値のセットをゲットできる。 順序を気にしなくても良いほか、省略可能なものと必須のものを設定できる。
# -*- coding: utf-8 -*- """ 実用的なコマンドライン引数: argparse 標準では sys.argv[0], sys.argv[1], のように順番にsys.argvに入るが、 たくさんの引数や、あってもなくてもよい引数を使いたい場合には argparseを利用するのが便利 - "-s"のようなのはなくても良い - filenameは必須 - 規則に合わない場合は使い方を表示してくれる。 """ import argparse parser = argparse.ArgumentParser() parser.add_argument("filename") parser.add_argument("-s","--stime") parser.add_argument("-e","--etime") args = parser.parse_args() print(args)
# -*- coding: utf-8 -*- """ コマンドラインで指定した期日範囲をインクリメントして実行 """ def print_arg(day=""): print(dt.strftime(day, "%Y%m%d")) from datetime import datetime as dt, timedelta import argparse parser = argparse.ArgumentParser() parser.add_argument("-s","--stime") parser.add_argument("-e","--etime") args = parser.parse_args() print(args.stime) day = dt.strptime(args.stime, "%Y%m%d") end_day = dt.strptime(args.etime, "%Y%m%d") while day < end_day: print_arg(day) day += timedelta(days=1)
data.set_index('xxx', inplace=True)
pandasで読み込み、プロットするシンプルな例の一つが、Google Driveの「べるが」のフォルダにある。
開発環境と実行環境を一体化したもの
(mathematicaのノートブックと似ている)
jupyter notebook —notebook-dir="/"
のように打つ。(notebookの前はマイナスを2つ)
ゼミなどで実行してみる場合などでは便利だろう。
対話型実行環境であるが、上述のQTConsoleが動くならそれを利用すればよい。
サーバにjupyterを立ち上げておいて、sshのポートフォワーディングを利用して手元のブラウザで実行するには、たとえば https://coderwall.com/p/ohk6cg/remote-access-to-ipython-notebooks-via-ssh のようにする。
jupyterhubをサーバにインストールすると、サーバの認証に基づいて複数ユーザが使える。
anacondaをインストールしてjupyterhub経由で利用することも可能。
立ち上げの時間がかからないことも利点
WordやPowerpointではベクトル形式の画像としてはemf形式を利用するようだ。
pythonではemf形式の出力ができない?ようなので、図はsvg形式で保存し、Inkscapeなどでemf形式に変換する。
Linuxだと
inkscape —file temp.svg —export-emf temp.emf
のような感じ。
修士共通科目「数値計算特論」用ページにあるチュートリアルページを参照
とりあえず、下記がよい。
http://www.turbare.net/transl/scipy-lecture-notes/index.html