Yaleで、遊んで学ぶ日々。
Yaleで、遊んで学ぶ日々。
囲碁、ときどきプログラミング、ところにより経済。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
import os
import time
import urlparse
import datetime
import csv
import urllib2
import urllib
import BeautifulSoup
import re
# 0 ベクトル, リストの繰り返し #
[0] * 10
['a', 'b', 'c'] * 3
# ディレクトリの中身一覧 #
os.listdir("Desktop")
# パスから拡張子を分割(返り値は長さ2のリスト)#
os.path.splitext("Desktop/folder/subfolder/file.txt")
# パスからファイル名だけを抜き出し #
os.path.basename("Desktop/folder/subfolder/file.txt")
# パスの結合 #
os.path.join("Desktop", "folder/file.pdf")
# URLの結合 #
urlparse.urljoin("http://jiy.blog.shinobi.jp/", "Entry/274/")
# しばらく止める(単位は秒)#
time.sleep(5)
# 文字列の頭とお尻のスペースを消す #
' abc def g '.strip()
' abc def g '.lstrip()
' abc def g '.rstrip()
# 現在の時間 #
# そのまま文字列として使おうとするとエラーが起こることがあるので、strtime関数で文字列にする。
import datetime
tm = datetime.datetime.today()
tm
tm.strftime('%Y-%m-%d_%H-%M-%S')
# リスト内で、特定の値に等しい要素番号の最小値 #
['A', 'B', 'B', 'C'].index('B')
# 辞書(dictionary)のkeyの一覧 #
d = { "name":"tarou" , "address":"tokyo", "age":30, "hobby":["igo", "chess", "shogi"] }
d.keys()
# 集合演算 #
# list() でリストに変換できる。
set(range(5)) & set(range(3))
set(['a', 'b']) | set(['a', 'c', 'd'])
set(range(4)) - set([2])
# リスト内の重複を取り除く #
# 一度集合にしてからリストにすれば良い。ただし順番は狂う。
x = ['a', 'b', 'c', 'b', 'c']
list(set(x))
# リストをCSVに保存 #
x = [ ["x", "y", "z"], [10, 5, 3], [1, "XYZ", 3], ["5", 1, "ABC"] ]
with open("test.csv", 'wb') as f:
ff = csv.writer(f)
for row in x:
ff.writerow(row)
# 辞書をCSVに保存 #
# データは辞書のリスト
data = [ {"name":"ichiro", "age":20} , {"name":"tarou", "age":15} ,{"name":"takuro", "age":30} ]
head = ("name", "age")
with open("test.csv", 'wb') as f:
ff = csv.DictWriter(f, head)
for row in data:
ff.writerow(row)
# ヘッダー行を入れるためのテクニック
data = [ {"name":"ichiro", "age":20} , {"name":"tarou", "age":15} ,{"name":"takuro", "age":30} ]
head = ("name", "age")
with open("test.csv", 'wb') as f:
ff = csv.DictWriter(f, head)
# ここ
row = dict( (n, n) for n in head )
for row in data:
ff.writerow(row)
# web pageのソースを取得 #
urllib2.urlopen("http://jiy.blog.shinobi.jp/Entry/274/").read()
# ファイルをダウンロード
urllib.urlretrieve(""http://bfile.shinobi.jp/admin/img/blogheader_logo.png"", "file.png")
# HTML ソースの処理(web scraping) #
src = urllib2.urlopen("http://jiy.blog.shinobi.jp/").read()
soup = BeautifulSoup.BeautifulSoup(src)
# タグとそのオプションを指定して検索
divs = soup("div", {"class":"EntryTitle"})
divs[0]
# タグを除去
ttl = str(divs[2])
re.sub("<[^<>]*>", "", ttl)
# タグのオプションの値を検索
imgs = soup("img")
imgs[2].get("src")
import time
import urlparse
import datetime
import csv
import urllib2
import urllib
import BeautifulSoup
import re
# 0 ベクトル, リストの繰り返し #
[0] * 10
['a', 'b', 'c'] * 3
# ディレクトリの中身一覧 #
os.listdir("Desktop")
# パスから拡張子を分割(返り値は長さ2のリスト)#
os.path.splitext("Desktop/folder/subfolder/file.txt")
# パスからファイル名だけを抜き出し #
os.path.basename("Desktop/folder/subfolder/file.txt")
# パスの結合 #
os.path.join("Desktop", "folder/file.pdf")
# URLの結合 #
urlparse.urljoin("http://jiy.blog.shinobi.jp/", "Entry/274/")
# しばらく止める(単位は秒)#
time.sleep(5)
# 文字列の頭とお尻のスペースを消す #
' abc def g '.strip()
' abc def g '.lstrip()
' abc def g '.rstrip()
# 現在の時間 #
# そのまま文字列として使おうとするとエラーが起こることがあるので、strtime関数で文字列にする。
import datetime
tm = datetime.datetime.today()
tm
tm.strftime('%Y-%m-%d_%H-%M-%S')
# リスト内で、特定の値に等しい要素番号の最小値 #
['A', 'B', 'B', 'C'].index('B')
# 辞書(dictionary)のkeyの一覧 #
d = { "name":"tarou" , "address":"tokyo", "age":30, "hobby":["igo", "chess", "shogi"] }
d.keys()
# 集合演算 #
# list() でリストに変換できる。
set(range(5)) & set(range(3))
set(['a', 'b']) | set(['a', 'c', 'd'])
set(range(4)) - set([2])
# リスト内の重複を取り除く #
# 一度集合にしてからリストにすれば良い。ただし順番は狂う。
x = ['a', 'b', 'c', 'b', 'c']
list(set(x))
# リストをCSVに保存 #
x = [ ["x", "y", "z"], [10, 5, 3], [1, "XYZ", 3], ["5", 1, "ABC"] ]
with open("test.csv", 'wb') as f:
ff = csv.writer(f)
for row in x:
ff.writerow(row)
# 辞書をCSVに保存 #
# データは辞書のリスト
data = [ {"name":"ichiro", "age":20} , {"name":"tarou", "age":15} ,{"name":"takuro", "age":30} ]
head = ("name", "age")
with open("test.csv", 'wb') as f:
ff = csv.DictWriter(f, head)
for row in data:
ff.writerow(row)
# ヘッダー行を入れるためのテクニック
data = [ {"name":"ichiro", "age":20} , {"name":"tarou", "age":15} ,{"name":"takuro", "age":30} ]
head = ("name", "age")
with open("test.csv", 'wb') as f:
ff = csv.DictWriter(f, head)
# ここ
row = dict( (n, n) for n in head )
ff.writerow(row)
ff.writerow(row)
# web pageのソースを取得 #
urllib2.urlopen("http://jiy.blog.shinobi.jp/Entry/274/").read()
# ファイルをダウンロード
urllib.urlretrieve(""http://bfile.shinobi.jp/admin/img/blogheader_logo.png"", "file.png")
# HTML ソースの処理(web scraping) #
src = urllib2.urlopen("http://jiy.blog.shinobi.jp/").read()
soup = BeautifulSoup.BeautifulSoup(src)
# タグとそのオプションを指定して検索
divs = soup("div", {"class":"EntryTitle"})
divs[0]
# タグを除去
ttl = str(divs[2])
re.sub("<[^<>]*>", "", ttl)
# タグのオプションの値を検索
imgs = soup("img")
imgs[2].get("src")
PR
Rのtable() 関数のようなこと、つまりベクトルの値の頻度分布を計算する、というのをPythonでやるには、nltkパッケージを使えばよい。標準パッケージに入っていないと思うので、python-nltkをインストールする(UbuntuならSynaptic Package Managerから可能)。
簡単な使い方
import nltk
x = ['a', 'b', 'b', 'c']
a = nltk.FreqDist(x)
dict(a)
a.max()
ちなみに、FreqDist は関数ではなくてクラスなので、a = nltk.FreqDist(x) という部分はインスタンスを生成している・・・のかな。
簡単な使い方
import nltk
x = ['a', 'b', 'b', 'c']
a = nltk.FreqDist(x)
dict(a)
a.max()
ちなみに、FreqDist は関数ではなくてクラスなので、a = nltk.FreqDist(x) という部分はインスタンスを生成している・・・のかな。
Rでベクトルの一部を取り出したい時には、要素番号を整数か論理値のベクトルで与える。
[1] "A" "E"
pythonで同じ事をやろうとするとエラーが出る。リストはインデックスとして受け付けられない。
x = ["A", "B", "C", "D", "E", "F"]
x[ [2, 5] ]
x[ [False, False, True, False, True, True] ]
Traceback (most recent call last):
ただし、先ほどののように固定要素ごとに抜き出したいのなら、サブスクリプティングという方法でできる。x[i::k] という形で、iがスタート地点、kが間隔。
x = ["A", "B", "C", "D", "E", "F"]
x[1::3]
x[0::2]
x <- c("A", "B", "C", "D", "E", "F")
x[ c(1, 5) ]
x[ c(F, F, T, F, T, T) ]
[1] "A" "E"
[1] "C" "E" "F"
だから、例えば2つおきとか3つおきとかで要素を取得したい場合は、そういうインデックスを作って代入すれば良い。例えば、第2要素から始まって3つおきに要素を抜き出すには、[2, 5] というベクトルを作って代入するか、[F, T, F, F, T, F] というベクトルを作って代入する。
x <- c("A", "B", "C", "D", "E", "F")
x[ seq(2, length(x), by=3) ]
x[ (1:length(x) %% 3) == 2 ]
[1] "B" "E"
[1] "B" "E"
pythonで同じ事をやろうとするとエラーが出る。リストはインデックスとして受け付けられない。
x = ["A", "B", "C", "D", "E", "F"]
x[ [2, 5] ]
x[ [False, False, True, False, True, True] ]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not list
ただし、先ほどののように固定要素ごとに抜き出したいのなら、サブスクリプティングという方法でできる。x[i::k] という形で、iがスタート地点、kが間隔。
x = ["A", "B", "C", "D", "E", "F"]
x[1::3]
x[0::2]
['B', 'E']
['A', 'C', 'E']
pythonで画像ファイルを処理する方法。PyPNGというモジュールが良さそう。ダウンロードはこちらから。情報はここへ。
ファイル(最新バージョンでいいと思う)をダウンロードしたら、解凍して、端末上でそのディレクトリへいき、
python setup.py install
でインストール完了。管理者権限云々でエラーが出たら、sudoをつける。インストールはあれってくらいすぐ終わる。詳しくはREADMEファイルを参照。
** ファイルの読みこみ方 **
pythonを起動して、
import png
x = png.Reader("file.png").read()
で画像を読み込める。色の情報はxの3つめの要素に入っている。たとえば、
y = list(x[2])
とすると、各ピクセルのRGB情報の記載された配列がyに格納される。
ファイル(最新バージョンでいいと思う)をダウンロードしたら、解凍して、端末上でそのディレクトリへいき、
python setup.py install
でインストール完了。管理者権限云々でエラーが出たら、sudoをつける。インストールはあれってくらいすぐ終わる。詳しくはREADMEファイルを参照。
** ファイルの読みこみ方 **
pythonを起動して、
import png
x = png.Reader("file.png").read()
で画像を読み込める。色の情報はxの3つめの要素に入っている。たとえば、
y = list(x[2])
とすると、各ピクセルのRGB情報の記載された配列がyに格納される。
pythonで、
unichr(): unicode番号を文字に変換する
ord() : 文字列をunicode番号に変換する
ただし、ordに全角文字を当てる時には、u'あ' というようにunicodeにすることが肝要。
unichr(): unicode番号を文字に変換する
ord() : 文字列をunicode番号に変換する
ただし、ordに全角文字を当てる時には、u'あ' というようにunicodeにすることが肝要。
>>> ord(u'あ')
12354
>>> unichr(12354)
u'\u3042'
>>> print unichr(12354)
Calender
12 | 2025/01 | 02 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Search in This Blog
Latest Comments
[03/30 川内のばば山田]
[03/30 川内のばば山田]
[08/06 Aterarie]
[07/05 Agazoger]
[07/01 Thomaskina]
Latest Posts
(11/16)
(04/28)
(04/16)
(04/11)
(04/05)
Latest Trackbacks
Category
Access Analysis