2017年11月

2章 ベクトル

ベクトルの基本的な知識。
リストでの演算。

スパースを表現するのに辞書を使う。
クラスvecの実装。

作りながらきわめる 実践DTM 大須賀淳 秀和システム

11月5日課題のコードをPEP8のコードスタイルにあわせてみた。


def makeIndex(f):
    dic = {i: tuple(set(doc.split())) for (i, doc) in enumerate(f)}
    return(dic)


def makeInverseIndex(f):
    dic = {tuple(set(doc.split())): i for (i, doc) in enumerate(f)}
    return(dic)


def orSearch(dic, query):
    s = set()
    for word in query:
        s1 = {dic[d] for d in dic if word in d}
        s.update(s1)

    return(s)


def andSearch(dic, query):
    s = set()
    key = True
    for word in query:
        s1 = {dic[d] for d in dic if word in d}
        if key:
            s.update(s1)
            key = False
        s.intersection_update(s1)

    return(s)


if __name__ == "__main__":
    f = open('stories_small.txt')
    inverseindex = makeInverseIndex(f)

#    print(inverseindex)

    query = ['in', 'is', 'human', 'come']
#    query=['human']
    s1 = orSearch(inverseindex, query)
    print(s1)

    s2 = andSearch(inverseindex, query)
    print(s2)

    f = open('stories_small.txt')
    ind = makeIndex(f)
    print(ind[tuple(s2)[0]])

Pythonクローリング&スクレイピング 加藤耕太 技術評論社
Python3ではじめるシステムトレード 森谷博之 Pan Rolling
3次元コンピュータビジョン計算ハンドブック 金谷健一、菅谷保之、金澤靖 森北出版 

行列プログラマー pythonで学ぶ線形代数 Philip N. Klein O'REILLY 

1章 体
複素数
c1=1+2j
c2=3.5+4.5j
a=1.1
print(c1+c2)
print(c1-c2)
print(c1*c2)
print(a*c1)
print(c1/c2)
print(abs(c1))
print(c1.conjugate())
print(c1.real)
print(c1.imag)

↑このページのトップヘ