Remrinのpython攻略日記

python3に入門しました。python3についてあれこれとサンプルコードとか。

python

matplotlibで図形

matplotlibで図形を描く方法。 plot()関数が呼ばれると背後でfigure()が呼ばれ、続いてaxes()が呼ばれてfigureの中に軸をつくる。 plot()関数を呼ばずにfigure()やaxes()で図、軸を設定できる。 import matplotlib.pyplot as plt c1 = plt.Circle((0, 0), ra…

csvライブラリ

csvモジュールの使い方について。 以下の内容のtest.csvを準備しました。 1,20 2,30 3,40 4,50 ○csvファイルの読み取り (1)各行はリストとして読み込まれる。 import csv with open("test.csv", "r") as f: data = csv.reader(f) print(data) <_csv.reader object at 0x...> for i in d</_csv.reader>…

matplotlibの色名一覧

matplotlibの色名一覧 この色名一覧はpythonで書かれていて、同じページにコードも載っています。 あとでゆっくりコードを読んでみようと思います。 # coding: utf-8 from __future__ import division import matplotlib.pyplot as plt from matplotlib impo…

matplotlibで散布図

matplotlibで散布図を描く方法について。 Definition : plt.scatter( x, y, # x座標, y座標の配列 s=None, # マーカーのサイズ c=None, # マーカーの色 marker=None, # マーカーの形 cmap=None, # cがfloat型のときのカラーマップ norm=None, # cをfloat型配…

エラー

構文解釈時のよくあるエラーについて。 AttributeError: ・'~' object has no attribute '~' 属性名、メソッド名などが間違っている。存在しないのに呼び出した。 lとrや大文字小文字などスペルミスを見直す。 ドットを打ち込んで属性の候補一覧からTAB補…

pythonで統計

pythonを使って統計処理をします。 ○1変数の基本統計量 要素数 平均mean 範囲 最頻値mode 中央値median 分散variance 標準偏差standard deviation # -*- coding: utf-8 -*- from collections import Counter def mean(seq): return sum(seq) / len(seq) # 平…

pythonで円周率を求める

pythonで円周率を求めるアルゴリズム ○ライプニッツの方法 収束が遅い。 100万回計算して、6桁くらい。 pi4 = 0 for i in range(1000000): pi4 += (1 / (i * 4 + 1) - 1 / (i * 4 + 3)) print(pi4 * 4) # 3.141592153589902 ○区分求積を使う。 収束が速い。 …

pythonの集合型 set

pythonの集合型setの使い方について。 ・重複のない配列。 ・順序がないのでs[1]のようなインデックス指定ができない。 ・inメソッドによる検索が高速 ○生成 # coding: utf-8 s1 = set() # 空のset print(s1) # set() print(type(s1)) # <class 'set'> s2 = {1, 1, 2, 2, </class>…

はてなブログ用の表組みの自動生成

少量のデータなら手打ちでいいですが、大量の表形式のデータをブログに書く手間を省きたいものです。ということで、サンプルです。 ○例1 百人一首のを収めたテキストファイルから、はてなブログ用の表組みを出力します。 ここのページにデータがあります。 …

pandasの使い方(4)ファイルの読み込み

pandasを利用したファイルの読み込みについて。 HTMLの表組み(TABLE)をDataFrameオブジェクトのリストで取得。 Definition : read_html(io, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, tuplei…

pythonでファイルの読み書き

pythonでファイルの読み書きです。 python3で外部ファイルを開くときはcodecsモジュールは不要です。 パスが通ったディレクトリにhyaku.txtがあることを前提にしています。 なければ、メモ帳などで適当に複数行の文字を書き込んだりで。 今回は百人一首を書…

pickleライブラリ

python用のデータをファイルに保存する。 Python オブジェクトの直列化および直列化されたオブジェクトの復元。 バイナリ形式でpython固有のフォーマット。 長所: ・ほとんどの組み込み方やクラスも保存できる。 (lambda関数などはpickle化できない) ・型…

pandasの使い方(1)

pandasライブラリの使い方。 pandasはSeries(1次元)とDataFrame(2次元)という2つのデータ構造を持つ。 今回はまずSeriesの使い方。 ○シリーズ(1次元配列)を作る。 import pandas as pd l = [3, 4, 5, 6, 7] series = pd.Series(l) print(series) # 0 3 # …

python開発環境の準備とspyder

anacondaを使う人が多いようですが、私はWinpythonを使っています。 名前的にwindows向けな気がしただけで選びました。 パソコンは5年くらい前のVAIOで、OSはWindows7です。Winpythonはspyder、ライブラリも同梱でインストールも楽でした。 かなりの数のラ…

collectionsライブラリ

標準ライブラリのcollectionsには便利なデータ型があります。 namedtuple() タプル風 名前付きフィールドを持つタプルを作成するファクトリ関数 deque リスト風 両端における append や pop を高速に行えるリスト風のコンテナ ChainMap 辞書風 複数のマッピ…

BeautifulSoup4の使い方

htmlの構文解釈のライブラリです。 ○htmlの準備 # -*- coding: utf-8 -*- import urllib.request from bs4 import BeautifulSoup url = "http://python-remrin.hatenadiary.jp/" f = urllib.request.urlopen(url) html = f.read().decode('utf-8') soup = Be…

urllibライブラリの使い方

urllibはURLにアクセスするライブラリです。 urllibモジュールは、Python 3 で urllib.request, urllib.parse, urllib.error に分割されて名称変更されました。 ・urllib.request は URL を開いて読むためのモジュールです ・urllib.error は urllib.request…

pythonのdict型

・辞書型。マッピング型とも言う。 ・シーケンスに似ているが、順序なし。 ・key:valueのセットで辞書登録。key…識別子。indexがわりに使う。 ・keyでも、valueでも、key:valueでもiteration可能。 ・keyはimmutable(数値、タプル、文字列など)だが、valueは…

pythonのタプル

pythonのタプルについて・シーケンス型の1つ。 ・リストと似ているが、タプルはcount, index以外のメソッドがない。 ・リストは[]、タプルは()または括弧なし。 ・immutableな型で、値の変更ができない。 ・要素を変更できない。ソートもできない。 ・index…

matplotlibで棒グラフ

matplotlibで棒グラフの描き方 Definition : bar(left, #それぞれの棒の左端の配列 height, #高さの配列 width=0.8, #棒の太さ bottom=None, #複数の棒グラフを積み上げるときの土台を示す。 hold=None, # data=None, # **kwargs) ○基本 import matplotlib.p…

pythonでの数値

python3の数値は整数(int型)、小数(float型)、複素数(complex型)の3つ。 論理型(bool型)も数値の1つと言える。(True=1, False=0) ○整数型 桁数は無限 16進数 先頭に0x 8進数 先頭に0o 2進数 先頭に0b(b:binary) ・int関数 文字列や小数を整数に直す関数…

matplotlibでヒストグラム

matplotlibでヒストグラムを書く。Definition: hist(x, #データ。yなし。 bins=None, #bin(棒)の数。省略すると10 range=None, #binの表示範囲をタプルで。 normed=False, #Trueとすると正規化(合計値を1とする) weights=None, # cumulative=False, #True:累…

python記事の目次

python記事の目次 python導入など ・pythonの導入とspyder ・pythonのバージョン ・ソースコードの貼り方 pythonの使い方 ・変数の型 ・数値 ・文字列操作 ・文字列の削除 ・日本語文字列操作(ひらがな判定など) ・リスト操作 ・タプル ・辞書型 dict ・集…

日本語文字列操作 ひらがな判定など

日本語の文字列の操作について。英字に比べて非常に扱いにくい印象です。文字列をソートしたり、ひらがな・カタカナ判定、ひらがな・カタカナ変換などを作ってみました。 # coding: utf-8 hiragana = "ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすず…

python3の変数の型

python3の変数の型について数値型:int, float, complexの3つ 論理型:bool 文字列型:str コンテナ型:list, tuple, dict, set シーケンス型:list, tuple, 文字列、rangeimmutable≒ハッシュ可能 int, str, tuple, frozenset整数変換 int()関数 小数変換 f…

pythonの文字列

python3での文字列の操作など ・シーケンス型の1つ。 ・シングルクオーテーション('abc')、ダブルクオーテーション("abc")のどちらでも。 ・シングルクオーテーションの中では「"」は文字として扱える。逆も。 ・immutableなのでs[2]="a"のような代入はでき…

文字列の削除 split(), strip(), replace(), translate(), re.sub()

pythonでの文字列の削除の方法 ○split() 区切り文字(delimiter)を区切りとして、文字列を分割しリストを返す。 maxsplit=1のように、オプションで最大分割回数を指定できる。 区切り文字を指定しないときは、空白文字で区切る。 その際、連続した空白文字は…

range()

pythonのrange()の使い方python3では、rangeは0から始まり、指定値未満の連続整数を生成するジェネレータを返す。 要素を確認したいときはlist(range(3))などとする。 type(range(3)) #class 'range' range(3) #range(0, 3) range(3.5) #TypeError :小数は扱…

allとany

pythonのallとanyについて。 ○all(iterable) iterableがすべてTrueのときのみTrueを返す。 iterableが空(empty)のときはTrueを返す。○any(iterable) iterableが1つでもTrueを含むとTrueを返す。 iterableが空のときはFalseを返す。基本例 all([True, True, T…

pythonのリスト操作

pythonのlist型はよく使うのに覚えることがたくさん。 調べる手間を省きたいので備忘録です。 list型の概要 ・シーケンス型の一つで、iterable ・numpyのndarrayなどの配列と違い、バラバラなメモリに紐つけで末尾追加が可能。 ・要素(element)は数値に限ら…

matplotlibで折れ線グラフ

計算結果をビジュアルで見るには、やはりグラフを描くのが一番ですね。 ということで、matplotlibの使い方を簡単に紹介します。 import matplotlib.pyplot as plt listx = [1, 2, 3, 4] listy = [1, 3, 4, 2] plt.plot(listx, listy) たったこれだけで、折れ…

pythonでクイックソートのアルゴリズム

pythonでクイックソートのアルゴリズムを考えてみた。

三角形の内接円、外接円、面積、角度

pythonで外接円の中心と半径を求めるプログラムを作ってみた

pythonのライブラリ

pythonを使うメリットの1つに豊富なモジュールがあります。 私が使ったモジュール、気になったモジュールです。(1)標準ライブラリ(python標準ライブラリ) モジュール 内容 math 数学関連 三角比、π、切り上げなど decimal 小数や大きな数の正確な計算 fr…

pythonと英語

pythonの学習では英語での表現も多く、pythonと同時に英語の勉強にもなりますね。 ということで、よく使う単語や表現などを挙げて行きます。 (1)算術・数学 English Japanese average 平均、代表値 mean, median, modeなど axis 軸 x axis:x軸 coordinate…

pythonのバージョン

pythonは2系と3系で文法が異なっていて、互換性はありません。 私もpythonに入門しようと思い、いくつかののサイトを巡ってみると初心者むけのサイトほどpython2系のみに対応しているなど、混乱を招きやすい状態です。サンプルコードをコピペしてもエラーを…