Remrinのpython攻略日記

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

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…

テストデータ(2) アンスコムのカルテット

pythonプログラムの動作テスト用です。 ○アンスコムのカルテット x1 y1 x2 y2 x3 y3 x4 y4 10.0 8.04 10.0 9.14 10.0 7.46 8.0 6.58 8.0 6.95 8.0 8.14 8.0 6.77 8.0 5.76 13.0 7.58 13.0 8.74 13.0 12.74 8.0 7.71 9.0 8.81 9.0 8.77 9.0 7.11 8.0 8.84 11.…

テストデータ(1) 百人一首

pythonプログラムの動作テスト用です。 import pandas as pd url = 'http://python-remrin.hatenadiary.jp/entry/2017/04/23/000000' ## DataFrameのリストを得る。header=0のオプション指定で、最初の行をheader扱い。 fetched = pd.io.html.read_html(url)…

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…