python seminar 2

Python

  • List
    • L[0], L[1][2]
    • nest[[1, 2], [3, 4]]
    • list.append()
    • reference
  • Dictionary
    • dic[key] = value
    • dic = {k0: v0, k1:v1, …}
    • in, has_key()
    • dic.keys(), dic.values(), dic.items(),
    • reference
  • Class
  • import
    • import hoge
    • from hoge import huga
    • import hoge as hg
  • library
    • numpy, scipy
    • matplotlib
    • networkx

Assignment

#組み合わせてもよい

#わからなければどんどんグーグルや友達と相談,もしくはこのページのコメント欄に書き込む

#面白さ求む

# Githubにまたアップする(150731フォルダ) Github repository [monnailab/slytherin_2015]

 

[mac osx]Pythonとライブラリインストールガイド

以下python3系統に合わせて書き換え予定。(2015/7/14)

 

mac用Pythonとライブラリのインストールガイド
2014.05.02

Pythonで統計解析やグラフ描画を行うために必要な道具をインストールしたいのですが,macでは元からインストールされているpythonが邪魔をしたりと問題が多いので,それをひとつずつ解決しながらインストールします。
一応新品MacBook Airで試して動作確認をしていますが,環境によって反応は違うと思います。

1.周辺ツール

 https://python-guide-ja.readthedocs.org/en/latest/starting/install/osx/
 
参照しました。

1.0

コマンドライン・デベロッパーツール
https://developer.apple.com/downloads/index.action
にアクセスして,APPLE ID認証して,「COMMAND LINE TOOLS」をダウンロードしてインストール。

 

1.1 Homebrewインストール

(参照 http://brew.sh/index_ja.html)
「ターミナル」を起動します(右上のspotlightから検索すると早い)

Homebrewはmacにいろんなツールを入れるのに便利なツール(適当)

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

をコピペしていれてenter(インターネットに繋いでおくこと)

1.3 環境変数というものを書き加えます。

環境変数は,ざっくり言えば「どこのファイルをどの順番で使うか」が書いてある文です。
(参照 https://python-guide-ja.readthedocs.org/en/latest/starting/install/osx/
http://kyuuuuuuuuuuri.hatenablog.com/entry/20130707/1373187190)
まず,

vim .bash_profile

を入れてenter。(.bash_profileという隠しファイルを編集します。)
ファイルの中身が表示されるので(下図は空白になっているが,人によって違う),「a」を押すと一番下の行が__INSERT__に変わるので,そうしたら編集する。

スクリーンショット 2014-05-03 4.07.48.png

ここでは

export PATH=/usr/local/bin:$PATH

を打ち込み,編集が終わったらESCキーを押して,「:wq」とタイプし,
スクリーンショット 2014-05-03 4.05.47.png

:wqでもとのターミナルの画面に戻るので,そうしたら

 source ~/.bashrc

と打ち込んでファイルを読み込む。
環境変数を確認したければ,echo $PATH とたたけば表示されます。/usr/local/binが初めに来ているはずです。

2 pythonインストール

ここでpython入れる。

brew install python --framework

入れてenter。2分ぐらいかかる。
ここでまた先ほどのように環境変数を変更します。

export PATH=/usr/local/share/python:$PATH

を先ほどの.bashrcの下に書き込みます。
(source ~/.bashrc 忘れないように)

3. Pythonのための外部ライブラリ(外部モジュール)を入れる

ここで外部ライブラリとは,外から持ってくる道具(箱)だと考えてください。
例えばお米を炊く時,原始的な方法だと,薪を集めて,カマドを組んで,火をおこして・・・となりますが大変です。そこで炊飯器とかガスレンジという道具(箱)があると簡単でおいしくて早いですね。外部ライブラリは炊飯器とかに該当します。Pythonには最初から炊飯器とかはついてこないので,必要な外部ライブラリを持ってきます。

今回はNumpy,Scipy, Networkx, Matplotlib, ipython
(
http://hiho-developer.hatenablog.com/entry/20131221/1387564021
参照)

2.0 pipインストール

 

pipはpythonに色々入れるのが便利になるツール。

easy_install pip

入れてenter。

2.1 numpy

pip install numpy

でオッケー。

2.2 scipy

 brew install gfortran
 easy_install cython
 brew install swig
 pip install git+http://github.com/scipy/scipy/

を順番に。scipyは数分かかります。

2.3 networkx

 pip install networkx

でオッケー。

2.4 matplotlib

(http://www.tapir.caltech.edu/~dtsang/python.html)

$ brew install pkg-config
$ brew install freetype
$ brew install libpng
$ brew install ffmpeg
$ pip install matplotlib

 

2.5 ipython

 pip install ipython

4.実行してみる

 ipython --pylab

そして

 x = arange(0, 30, 0.1)
 y = sin(x)
 plot(x, y)

 

また,IDLE.appを使うには,pythonがインストールされている場所が
/usr/local/Cellar/python/2.7.6_1
です。Finderの「移動」→「フォルダへ移動」を選択し,/usr/local/Cellar/python/2.7.6_1をうちこめば表示されます。そこにIDLEがあるはずです。DOCKにドラッグ&ドロップして登録しておくと使いやすい。

以上です。

programming introduction

Programming seminar for architectural design and research

github

Goal

  • pythonでのオブジェクト指向プログラミングを理解する
  • 自分の開発環境を持つ
  • 独学するためのはじめの一歩

languages

library

  • pip
  • numpy
  • scipy
  • networkx
  • matplotlib
  • ipython

version control

  • github
  • bitbucket
  • dropbox

assignment

150724までのassignment宿題
ファイル名は150724assignment_[自分の名前].py
Github
1)アカウントを作る。githubソフトもインストール
2)アカウントを安田に知らせる。Githubの門内研organizationにinviteします
3)inviteをメールで確認して承認する。
4)slytherin_2015のrepositoryがあるので,それを自分の作業環境にcloneする。
5)slytherin_2015/150724_assignment/[自分の名前]フォルダの中に自分の宿題ファイルを置く。(このファイルをコピーするとよい)
6)宿題が途中でも完了しても,とりあえずcommitしてsync(push)しておく。
Python
###かかった時間を関数の中にコメント(#)で記しておいてください。
1)(例)func1(x) = 2x + 1 の関数(名前はfunc1)
2)(復習)func2(x, y) = x^2 + y^2 の関数(名前はfunc2)
3)(復習)func3(n) = ‘偶数です’(nが偶数の場合)・’奇数です’(nが奇数の場合)
4)(復習)func4(n) = (n番目のフィボナッチ数)
5)(演習)func5(n) = (n番目の素数)#1番目の素数は2とする
6)(演習)func6 何か面白い関数を作る。引数(ひきすうargument:f()の()の中のパラメータ)はなんでも良い。

やったこと
string, integer, float
for, while, if
def function(hogehoge):
hogefuga
return fugafuga
list
range()
わからなければわかりそうな人に聴いてみる

reference

pyqtの中でnetworkxを表示する方法(pyplotなしで)

pyqtでnetworkxによるネットワーク図を表示したい。

しかしpyqtとmatplotlib.pyplotは一緒に使うことは複雑。
(普通はmatplotlib.backends.backend_qt5agg的なものをつかう)

どうやるか→How to draw my graphs with networkX without pyplot.

一部分だけ書くとこんな感じ

self.axes.clear()
 G = nx.Graph()
 G.add_edges_from([(1,2), (3,4), (1,3), (2,4), (1,4), (4,5)])
 nx.draw(G, ax=self.axes)
 self.canvas.draw()

nx.draw()の引数はチェックしてなかった。