Requests: 人間のためのHTTP

参考:
Requests: 人間のためのHTTP

import requests

r = requests.get('https://funmatu.wordpress.com/')
print(f'{r.status_code}')
print(f'{r.headers}')
print(f'{r.headers["content-type"]}') 
print(f'{r.encoding}')
print(f'{r.text}')

200
{‘Server’: ‘nginx’, ‘Date’: ‘Fri, 26 May 2017 12:25:39 GMT’, ‘Content-Type’: ‘text/html; charset=UTF-8’, ‘Transfer-Encoding’: ‘chunked’, ‘Connection’: ‘keep-alive’, ‘Vary’: ‘Accept-Encoding, Cookie’, ‘X-hacker’: “If you’re reading this, you should visit automattic.com/jobs and apply to join the fun, mention this header.”, ‘Link’: ‘; rel=shortlink’, ‘Content-Encoding’: ‘gzip’, ‘X-ac’: ‘1.kix _bur’, ‘Strict-Transport-Security’: ‘max-age=15552000’}
text/html; charset=UTF-8
UTF-8

<!–

粉末@それは風のように (日記) | Just another WordPress.com site

/* */

window._wpemojiSettings = {“baseUrl”:”https:\/\/s0.wp.com\/wp-content\/mu-plugins\/wpcom-smileys\/twemoji\/2\/72×72\/”,”ext”:”.png”,”svgUrl”:”https:\/\/s0.wp.com\/wp-content\/mu-plugins\/wpcom-smileys\/twemoji\/2\/svg\/”,”svgExt”:”.svg”,”source”:{“concatemoji”:”https:\/\/s1.wp.com\/wp-includes\/js\/wp-emoji-release.min.js?m=1488818651h&ver=4.7.5″}};
!function(a,b,c){function d(a){var b,c,d,e,f=String.fromCharCode;if(!k||!k.fillText)return!1;switch(k.clearRect(0,0,j.width,j.height),k.textBaseline=”top”,k.font=”600 32px Arial”,a){case”flag”:return k.fillText(f(55356,56826,55356,56819),0,0),!(j.toDataURL().length<3e3)&&(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,65039,8205,55356,57096),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,55356,57096),0,0),c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55357,56425,55356,57341,8205,55357,56507),0,0),d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55357,56425,55356,57341,55357,56507),0,0),e=j.toDataURL(),d!==e}return!1}function e(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i,j=b.createElement("canvas"),k=j.getContext&&j.getContext("2d");for(i=Array("flag","emoji4"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);

img.wp-smiley,
img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 .07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}

https://s1.wp.com/_static/??-eJyF0G0KwjAMBuAL2dXJxP0Rz1Lr60hdP2zaDT29FSYiVIVAIHkISeQcBDk95hNYmhLXjHhbUmN4JX8BYWmIKqGx5F5Ye5fg0tNaf6QRIjOiGkqtDDr7iguekwVzQZXu50rkJsL8lxmkoPRFRDDdUTuEw3vn7x9Y1MHu267fbfp2263NA675cvs=

.recentcomments a {
display: inline !important;
padding: 0 !important;
margin: 0 !important;
}

table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
border: 0px;
margin: 0;
}

table.recentcommentsavatartop a, table.recentcommentsavatarend a {
border: 0px !important;
background-color: transparent !important;
}

td.recentcommentsavatarend, td.recentcommentsavatartop {
padding: 0px 0px 1px 0px;
margin: 0px;
}

td.recentcommentstextend {
border: none !important;
padding: 0px 0px 2px 10px;
}

.rtl td.recentcommentstextend {
padding: 0px 10px 2px 0px;
}

td.recentcommentstexttop {
border: none;
padding: 0px 0px 0px 10px;
}

.rtl td.recentcommentstexttop {
padding: 0px 10px 0px 0px;
}

無題

ダウンロード
ダウンロード (1)

実際の結果と照らし合わせれば,b = 1, l = 4位が妥当.[330, 810]が期待される.


カテゴリー: 未分類

|
コメントをどうぞ

ipywidgets

ipywidgets

あまり使った事が無いので,

ipywidgets – GitHubのExampleをみながら触ってみる.

Jupyter Labでは動かない(widgetが表示されない)のが残念.

[1] Explore Random Graphs Using NetworkX

%matplotlib inline
import matplotlib.pyplot as plt
from ipywidgets import interact
import networkx as nx


# wrap a few graph generation functions so they have the same signature
def random_lobster(n, m, k, p):
    return nx.random_lobster(n, p, p / m)


def powerlaw_cluster(n, m, k, p):
    return nx.powerlaw_cluster_graph(n, m, p)


def erdos_renyi(n, m, k, p):
    return nx.erdos_renyi_graph(n, p)


def newman_watts_strogatz(n, m, k, p):
    return nx.newman_watts_strogatz_graph(n, k, p)


def plot_random_graph(n, m, k, p, generator):
    g = generator(n, m, k, p)
    nx.draw(g)
    plt.show()


interact(
    plot_random_graph, n=(2, 30), m=(1, 10), k=(1, 10), p=(0.0, 1.0, 0.001),
    generator={
             'lobster': random_lobster,
             'power law': powerlaw_cluster,
             'Newman-Watts-Strogatz': newman_watts_strogatz,
             u'Erdős-Rényi': erdos_renyi,
    }
)

ノード数,追加ノードから既存ノードに接続するエッジ数,接続される隣接ノード数,確率をグリグリとインタラクティブに変更できる.generatorのプルダウンリストを変更すれば,ランダムグラフのモデルを変更できる.楽しい.

[2] Image Browser

from sklearn import datasets


digits = datasets.load_digits()


def browse_images(digits):
    n = len(digits.images)
    def view_image(i):
        plt.imshow(digits.images[i], cmap=plt.cm.gray_r, interpolation='nearest')
        plt.title(f'Training: {digits.target[i]}')
        plt.show()
    interact(view_image, i=(0, n-1))


browse_images(digits)

[3] Image Manipulation with skimage

from IPython.display import Image
from skimage import data, filters, io, img_as_float


img = img_as_float(data.coffee())
io.imshow(img)

matplotlib.image.AxesImage( = plt.imshow(img))

from PIL import Image

img2 = Image.fromarray(img)
img2.show()

# Stdlib imports
from io import BytesIO

# Third-party libraries
from IPython.display import Image
from ipywidgets import interact, interactive, fixed
import matplotlib as mpl
from skimage import data, filters, io, img_as_float
import numpy as np


def arr2img(arr):
    """Display a 2- or 3-d numpy array as an image."""
    if arr.ndim == 2:
        format, cmap = 'png', mpl.cm.gray
    elif arr.ndim == 3:
        format, cmap = 'jpg', None
    else:
        raise ValueError("Only 2- or 3-d arrays can be displayed as images.")
    # Don't let matplotlib autoscale the color range so we can control overall luminosity
    vmax = 255 if arr.dtype == 'uint8' else 1.0
    with BytesIO() as buffer:
        mpl.image.imsave(buffer, arr, format=format, cmap=cmap, vmin=0, vmax=vmax)
        out = buffer.getvalue()
    return Image(out)


arr2img(img)

その他:

・時計と角度

%matplotlib inline
import math
import matplotlib.pyplot as plt
from ipywidgets import interact


def circle(i, hh, mh):
    x, y = math.cos(math.radians(i)), math.sin(math.radians(i))
    mhx, mhy = math.cos(-math.radians(mh*6-90)), math.sin(-math.radians(mh*6-90))
    hhx = math.cos(-math.radians(hh*30+mh/2-90)) * 0.7
    hhy = math.sin(-math.radians(hh*30+mh/2-90)) * 0.7
    plt.plot(
        [math.cos(math.radians(j)) for j in range(360)],
        [math.sin(math.radians(j)) for j in range(360)],
        '--'
    )
    plt.scatter(x, y, c='r')
    plt.plot([0, mhx], [0, mhy], 'k-d', lw=3, ms=10, alpha=0.8)
    plt.plot([0, hhx], [0, hhy], 'k-d', lw=5, ms=10, alpha=0.9)
    for j in range(12):
        plt.text(
            math.cos(-math.radians(j*30-90)),
            math.sin(-math.radians(j*30-90)),
            f'{j}',
            fontsize=20, fontweight='bold'
        )
    plt.xticks([])
    plt.yticks([])
    plt.show()


interact(circle, i=(0, 360), hh=(0, 12), mh=(0, 60))

・ロジスティック写像

PAGE_BREAK: PageBreak

def plot_logistic(i):
    def logistic(a):
        x = [0.8]
        for i in range(400):
            x.append(a * x[-1] * (1 - x[-1]))
        return x[-100:]
    al = [2.0 + i * 0.002 for i in range(i)]
    _, ax = plt.subplots(figsize=(8, 6))
    for a in al:
        ax.plot([a]*len(logistic(a)), logistic(a), "c.", markersize=1.7)
    ax.set_title(f'i = {i}')
    plt.show()


interact(plot_logistic, i=(450, 1000))


カテゴリー: 未分類

|
コメントをどうぞ

状態の判別(異常検知,変化検出)

状態の判別(異常検知,変化検出)

どの様なスキームで捉えるかの差異で,これらのものは基本的に同じ話だろう.

目的とされる状態とそうじゃない状態を判別すると考えれば,結局「判別」の話で機械学習の一般的な問題の話だし,目的とされる状態=正常な状態,それ以外=異常な状態,というスキームで考えれば,「異常検知」という話になるし,その変化点に着目すれば,「変化検出」って話だろう.

「2値判別」なら,これはSVMの得意分野だし,2つの状態として考えれば,2クラスSVM(一般的なSVM)だけど,そもそも目的の状態が判別できれば良い訳だから,トレーニングデータとして「目的の状態」を入れれば,「それ以外」は自然に求まる.one vs the rest.それが,1クラスSVMだろう.教師ありSVMか教師なしSVMかというのは,そもそも1クラスで,教える必要がないだけの話で,逆に云えば,そのトレーニングデータにノイズが混じっていれば,それを「教える」必要がある.

「異常検知/変化検出」のスキームで考えれば,正常な状態というのをまず考える.データの周期性や相関性,自己相関性に着目すれば,スペクトル分析やマハラノビスの距離,ARMA過程やARIMA過程を考えてそこからの差異で異常や変化を捉える.それを汎化していけば,カルマンフィルタ,パーティクルフィルタ,結局ベイズモデルに帰着するんだろう.でも,そもそも異常検知とか変化検出って話って,ベースラインが明らかだからこその話で,極端な話,正常な状態(平均±標準偏差)とそれ以外といった単純に正規分布に従うと考えられるケースや,カイ二乗分布に従うと仮定して,Thresholdを求めて異常検知できる場合が多いだろう(生産管理や品質工学のテキストに必ず載っているカイ二乗分布の話).研究レベルの話はともかく,実用的には,ARIMA過程以下の話を押さえておけば十分な様な.

という訳で,個人的に覚えておけば良さそうなものだけみていく.

1.changefinder(changefinder.ChangeFinder)

2.one class SVM(sklearn.svm.OneClassSVM)

3.IsolationForest(sklearn.ensemble.IsolationForest)

4.Markov switching autoregression models(import statsmodels.api as sm)

1.changefinder(changefinder.ChangeFinder)

ARIMAの方が良い(ARIMA⊃AR)けど遅いので.

import matplotlib.pyplot as plt
import changefinder
import numpy as np
%matplotlib inline


data = np.concatenate(
    [np.random.normal(0.7, 0.05, 2000),
     np.random.normal(1.5, 0.05, 100),
     np.random.normal(0.7, 0.05, 2000),
     np.random.normal(1.5, 0.05, 300),
     np.random.normal(0.7, 0.05, 3000),
     np.random.normal(1.5, 0.05, 200),
     np.random.normal(0.7, 0.05, 3000)]
)

cf = changefinder.ChangeFinder(r=0.02, order=1, smooth=7)

ret = []
for i in data:
    score = cf.update(i)
    ret.append(score)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(ret, 'r')
ax2 = ax.twinx()
ax2.plot(data, 'c', alpha=0.7)
plt.show()

2.one class SVM(sklearn.svm.OneClassSVM)

import numpy as np
from scipy import stats
from sklearn import svm
import matplotlib.pyplot as plt

X = np.random.normal(0.7, 0.05, 2000)

clf = svm.OneClassSVM(nu=0.2, kernel="rbf", gamma=0.1)
clf.fit(X.reshape(X.size, -1), X.ravel())
scores_pred = clf.decision_function(X.reshape(X.size, -1))
threshold = stats.scoreatpercentile(scores_pred, 20)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([0, 10600], [threshold, threshold], 'r')
ax2 = ax.twinx()
ax2.plot(data, 'c', alpha=0.7)
plt.show()

y_pred = clf.predict(data.reshape(data.size, -1))

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(y_pred, 'k', alpha=0.3)
ax2 = ax.twinx()
ax2.plot(data, 'c')
plt.show()

最初の2,000点(に相当する乱数)をトレーニングデータとしている.one class SVMで正常値と異常値が綺麗に判別できている事が分かる.上図がトレーニングデータからthresholdを求めた場合で,下図がSVMによって正常な状態と判別された区間(シャドー)を示している.

3.IsolationForest(sklearn.ensemble.IsolationForest)

import numpy as np
from scipy import stats
from sklearn.ensemble import IsolationForest
import matplotlib.pyplot as plt


X = np.random.normal(0.7, 0.05, 2000)

clf = IsolationForest()
clf.fit(X.reshape(X.size, -1), X.ravel())
scores_pred = clf.decision_function(X.reshape(X.size, -1))
threshold = stats.scoreatpercentile(scores_pred, 20)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([0, 10600], [threshold, threshold], 'r')
ax2 = ax.twinx()
ax2.plot(data, 'c', alpha=0.7)
plt.show()

one class SVMと同様に.正常値と異常値が綺麗に判別できている事が分かる.この程度の単純なデータだと,違いはみられないけど,色々と調べている限りでは,Anomaly detectionの精度はIsolationForestの方が良さそう(エラーが少ない).でも,これはまさに木の性質を表していて要ると思うので,データによっては(一般的に云えば)SVMの方がロバストな気がする.

4.Markov switching autoregression models(import statsmodels.api as sm)

思ったより時間が掛かったのと,余り興味が惹かれなかったので略.

参考:

[1] オンラインで時系列の変化点検出を行うpythonライブラリ「changefinder」

[2] Outlier detection with several methods.-scikitlearn

[3] Markov switching autoregression models-statsmodels 0.8.0


カテゴリー: 未分類

|
コメントをどうぞ

Pythonで直積,順列,組み合わせ,階乗の計算

Pythonで直積,順列,組み合わせ,階乗の計算

●全要素のイテレータが欲しい場合(import itertools)

直積(デカルト積):itertools.product

例:

list(itertools.product([‘a’, ‘b’, ‘c’, ‘d’, ‘e’], repeat=2))

#= itertools.product([‘a’, ‘b’, ‘c’, ‘d’, ‘e’], [‘a’, ‘b’, ‘c’, ‘d’, ‘e’])

[(‘a’, ‘a’),
(‘a’, ‘b’),
(‘a’, ‘c’),
(‘a’, ‘d’),
(‘a’, ‘e’),
(‘b’, ‘a’),
(‘b’, ‘b’),
(‘b’, ‘c’),
(‘b’, ‘d’),
(‘b’, ‘e’),
(‘c’, ‘a’),
(‘c’, ‘b’),
(‘c’, ‘c’),
(‘c’, ‘d’),
(‘c’, ‘e’),
(‘d’, ‘a’),
(‘d’, ‘b’),
(‘d’, ‘c’),
(‘d’, ‘d’),
(‘d’, ‘e’),
(‘e’, ‘a’),
(‘e’, ‘b’),
(‘e’, ‘c’),
(‘e’, ‘d’),
(‘e’, ‘e’)]

順列:itertools.permutations

例:

list(itertools.permutations([‘a’, ‘b’, ‘c’, ‘d’, ‘e’], 2))

[(‘a’, ‘b’),
(‘a’, ‘c’),
(‘a’, ‘d’),
(‘a’, ‘e’),
(‘b’, ‘a’),
(‘b’, ‘c’),
(‘b’, ‘d’),
(‘b’, ‘e’),
(‘c’, ‘a’),
(‘c’, ‘b’),
(‘c’, ‘d’),
(‘c’, ‘e’),
(‘d’, ‘a’),
(‘d’, ‘b’),
(‘d’, ‘c’),
(‘d’, ‘e’),
(‘e’, ‘a’),
(‘e’, ‘b’),
(‘e’, ‘c’),
(‘e’, ‘d’)]

組み合わせ:itertools.combinations

例:

list(itertools.combinations([‘a’, ‘b’, ‘c’, ‘d’, ‘e’], 2))

[(‘a’, ‘b’),
(‘a’, ‘c’),
(‘a’, ‘d’),
(‘a’, ‘e’),
(‘b’, ‘c’),
(‘b’, ‘d’),
(‘b’, ‘e’),
(‘c’, ‘d’),
(‘c’, ‘e’),
(‘d’, ‘e’)]

itertoolsはイテレータの操作には便利だが,数値計算には向いていないし,そもそも,別に速くもない.ループ構造をシンプルにしたり,特に直積(デカルト積)を求めたりする時よく使うけど(productは色々な場面で使う),単に直積を求める場合は,内包表記で2重ループの方が速かったりする.メモリ効率が良くなる以上の効果って余り無い気がする.

数が欲しい時,「len(list(itertools.permutations(range(365), k)))」みたいに書けるが,計算コストが尋常じゃない.

●数が欲しい(数値計算がしたい)場合

(import numpy, scipy.special, scipy.misc)

数値計算をする時は,まずSciPyを漁る(SciPy⊃Numpy).「scipy.special.perm()」「scipy.special.comb()」(他にscipy.misc.comb()とか)なんかがそう.numpyの方が有名過ぎて,ググってもnumpyに関する情報しか出てこない事もあるけど,まあその場合は大人しくnumpyを使う.

直積: np.outer or ブロードキャスト(data[:, np.newaxis] * data)

例:

import numpy as np

a = [1, 2]

b = [3, 4]

np.outer(a, b)

array([[3, 4],
[6, 8]])

例:

np.array(a)[:, np.newaxis] * b

array([[3, 4],
[6, 8]])

順列:scipy.special.perm

例:

import scipy.special as ss

ss.perm(10, 2)

90.0

例:

ss.perm(a+b, 2)

array([ 0., 2., 6., 12.])

(a=[1, 2], b=[3, 4], a + b→[1, 2, 3, 4],リストの足し算はオブジェクトの連結)

組み合わせ:scipy.special.comb/scipy.misc.comb

例:

ss.comb(10, 2)

45.0

例:

ss.comb(a+b, 2)

array([ 0., 1., 3., 6.])

階乗:math.factorial/scipy.misc.factorial

例:

import math

[math.factorial(i) for i in (a+b)]

[1, 2, 6, 24]

例:

import scipy.misc as sm

sm.factorial(a+b)

array([ 1., 2., 6., 24.])

●一例:誕生日のパラドックス

参考:

誕生日のパラドックス-Wikipedia

問題:

クラスに誕生日が同じ人がいる確率はどれくらいだろう.

クラスの人数が何人くらいだったらいると期待されるだろう.

回答例:

クラスの人数と累積確率のグラフを描いてみる.

n人の中で同じ誕生日の人が少なくとも2人いる場合の確率は,下式で求められる.

EQUATION: Equation ー(1)

import numpy as np
import scipy.special as ss
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

n = np.array([365]*100)
k = np.arange(100)+1
CPD = 1 - ss.perm(n, k)/365.0**k

plt.plot(CPD)
plt.xlabel('Number of People')
plt.ylabel('Probability of a pair')

with plt.xkcd():
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.plot(CPD)
    ax.plot([23, 23], [0, 0.5], '--')
    ax.plot([0, 23], [0.5, 0.5], '--')
    ax.set_xlabel('Number of People')
    ax.set_ylabel('Probability of a pair')
    plt.annotate(
        '23 people in a room \n the probability are over 50%',
        xy=(22, 0.507), arrowprops=dict(arrowstyle='-&gt;'), xytext=(30, 0.2))

plt.show()

xkcd()で遊ぶ時は,with構文を使うのが良い.前に使った時は,戻し方が分からなくて,結局Jupyter再起動したので(関連:一日一Python:色々なグラフの描き方).


カテゴリー: 未分類

|
コメントをどうぞ

model

model

元手100万円で100万円のままモデルに基づいてやったの図

単純計算で投入額の2倍の収益が期待できる.


カテゴリー: 未分類

|
コメントをどうぞ

pandas-datareaderでYahoo Financeからデータが取得できない

RemoteDataError: Unable to read URL: http://ichart.finance.yahoo.com/table.csv

Yahoo側の問題でどうしようもないが,問題は一時的なのか,恒久的なのか.どうもYahoo iCharts APIは段階的に廃止されているらしく,調べてみると今までも何回もAPIが更新されては廃止され,の繰り返しっぽい(定期的に同じ様な話題が上がっている).

pandas-datareader 0.4.1では新しいAPIに対応するっぽいが.自分が必要とするストックコードが使えるかどうか.それが重要.今もうリリーステスト段階っぽいので,リリースされたらすぐに更新したい.それプラス,Yahooは不安定過ぎるので,プランBを考えておかないと.

やっぱり,FRED,世界銀行,OECDとかの方が安定しているので,データの形に癖があるのでYahooを使っていたけど,入れ替えていった方が良さそう.

参考:
[1] Python pandas datareader isn’t working [closed]-StackOverflow
[2] Issues with the data reader fetching yahoo finance – GitHub


カテゴリー: 未分類

|
コメントをどうぞ

パスカルの三角形

Programming a basic Pascal Triangle in Python – StackOverflow

def pascal(n):
    row, k = [1], [0]
    res = []
    for _ in range(n):
        res.append(row)
        row = [i + j for i, j in zip(row + k, k + row)]
    return res


pascal(5)

[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]


カテゴリー: 未分類

|
コメントをどうぞ

//


//0.gravatar.com/js/gprofiles.js?ver=201721y

/* */

https://s1.wp.com/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1380573781h

//initialize and attach hovercards to all gravatars
jQuery( document ).ready( function( $ ) {

if (typeof Gravatar === “undefined”){
return;
}

if ( typeof Gravatar.init !== “function” ) {
return;
}

Gravatar.profile_cb = function( hash, id ) {
WPGroHo.syncProfileData( hash, id );
};
Gravatar.my_hash = WPGroHo.my_hash;
Gravatar.init( ‘body’, ‘#wp-admin-bar-my-account’ );
});

/* */

https://s2.wp.com/_static/??/wp-content/js/jquery/jquery.autoresize.js,/wp-content/mu-plugins/highlander-comments/script.js?m=1479964158j

window.WPCOM_sharing_counts = {“https:\/\/funmatu.wordpress.com\/2017\/05\/26\/%e7%84%a1%e9%a1%8c-5\/”:4531,”https:\/\/funmatu.wordpress.com\/2017\/05\/25\/ipywidgets\/”:4511,”https:\/\/funmatu.wordpress.com\/2017\/05\/24\/%e7%8a%b6%e6%85%8b%e3%81%ae%e5%88%a4%e5%88%a5%ef%bc%88%e7%95%b0%e5%b8%b8%e6%a4%9c%e7%9f%a5%ef%bc%8c%e5%a4%89%e5%8c%96%e6%a4%9c%e5%87%ba%ef%bc%89\/”:4497,”https:\/\/funmatu.wordpress.com\/2017\/05\/24\/python%e3%81%a7%e7%9b%b4%e7%a9%8d%ef%bc%8c%e9%a0%86%e5%88%97%ef%bc%8c%e7%b5%84%e3%81%bf%e5%90%88%e3%82%8f%e3%81%9b%ef%bc%8c%e9%9a%8e%e4%b9%97%e3%81%ae%e8%a8%88%e7%ae%97\/”:4488,”https:\/\/funmatu.wordpress.com\/2017\/05\/23\/model\/”:4480,”https:\/\/funmatu.wordpress.com\/2017\/05\/22\/pandas-datareader%e3%81%a7yahoo-finance%e3%81%8b%e3%82%89%e3%83%87%e3%83%bc%e3%82%bf%e3%81%8c%e5%8f%96%e5%be%97%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%84\/”:4459,”https:\/\/funmatu.wordpress.com\/2017\/05\/22\/%e3%83%91%e3%82%b9%e3%82%ab%e3%83%ab%e3%81%ae%e4%b8%89%e8%a7%92%e5%bd%a2\/”:4452};

var windowOpen;
jQuery(document).on( ‘ready post-load’, function(){
jQuery( ‘a.share-facebook’ ).on( ‘click’, function() {
if ( ‘undefined’ !== typeof windowOpen ){ // If there’s another sharing window open, close it.
windowOpen.close();
}
windowOpen = window.open( jQuery(this).attr( ‘href’ ), ‘wpcomfacebook’, ‘menubar=1,resizable=1,width=600,height=400’ );
return false;
});
});

var windowOpen;
jQuery(document).on( ‘ready post-load’, function(){
jQuery( ‘a.share-twitter’ ).on( ‘click’, function() {
if ( ‘undefined’ !== typeof windowOpen ){ // If there’s another sharing window open, close it.
windowOpen.close();
}
windowOpen = window.open( jQuery(this).attr( ‘href’ ), ‘wpcomtwitter’, ‘menubar=1,resizable=1,width=600,height=350’ );
return false;
});
});

var windowOpen;
jQuery(document).on( ‘ready post-load’, function(){
jQuery( ‘a.share-tumblr’ ).on( ‘click’, function() {
if ( ‘undefined’ !== typeof windowOpen ){ // If there’s another sharing window open, close it.
windowOpen.close();
}
windowOpen = window.open( jQuery(this).attr( ‘href’ ), ‘wpcomtumblr’, ‘menubar=1,resizable=1,width=450,height=450’ );
return false;
});
});

var windowOpen;
jQuery(document).on( ‘ready post-load’, function(){
jQuery( ‘a.share-google-plus-1’ ).on( ‘click’, function() {
if ( ‘undefined’ !== typeof windowOpen ){ // If there’s another sharing window open, close it.
windowOpen.close();
}
windowOpen = window.open( jQuery(this).attr( ‘href’ ), ‘wpcomgoogle-plus-1’, ‘menubar=1,resizable=1,width=480,height=550’ );
return false;
});
});

var windowOpen;
jQuery(document).on( ‘ready post-load’, function(){
jQuery( ‘a.share-linkedin’ ).on( ‘click’, function() {
if ( ‘undefined’ !== typeof windowOpen ){ // If there’s another sharing window open, close it.
windowOpen.close();
}
windowOpen = window.open( jQuery(this).attr( ‘href’ ), ‘wpcomlinkedin’, ‘menubar=1,resizable=1,width=580,height=450’ );
return false;
});
});

https://s1.wp.com/_static/??-eJzTLy/QTc7PK0nNK9EvyClNz8wr1i+uzCtJrMjITM/IAeKS1CJMEWP94uSizIISoOIM5/yiVL2sYh19yo1yKiotzgioLMnIzwOaaJ9ra2hiZGRsYmRobJIFAFr0QPk=

(function(){
var corecss = document.createElement(‘link’);
var themecss = document.createElement(‘link’);
var corecssurl = “https://s0.wp.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css?ver=3.0.9b&#8221;;
if ( corecss.setAttribute ) {
corecss.setAttribute( “rel”, “stylesheet” );
corecss.setAttribute( “type”, “text/css” );
corecss.setAttribute( “href”, corecssurl );
} else {
corecss.rel = “stylesheet”;
corecss.href = corecssurl;
}
document.getElementsByTagName(“head”)[0].insertBefore( corecss, document.getElementById(“syntaxhighlighteranchor”) );
var themecssurl = “https://s0.wp.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeDefault.css?m=1363304414h&ver=3.0.9b&#8221;;
if ( themecss.setAttribute ) {
themecss.setAttribute( “rel”, “stylesheet” );
themecss.setAttribute( “type”, “text/css” );
themecss.setAttribute( “href”, themecssurl );
} else {
themecss.rel = “stylesheet”;
themecss.href = themecssurl;
}
//document.getElementById(“syntaxhighlighteranchor”).appendChild(themecss);
document.getElementsByTagName(“head”)[0].insertBefore( themecss, document.getElementById(“syntaxhighlighteranchor”) );
})();
SyntaxHighlighter.config.strings.expandSource = ‘ソースを表示’;
SyntaxHighlighter.config.strings.help = ‘SyntaxHighlighterについて’;
SyntaxHighlighter.config.strings.alert = ‘SyntaxHighlighter\n\n’;
SyntaxHighlighter.config.strings.noBrush = ‘指定のブラシが見つかりませんでした: ‘;
SyntaxHighlighter.config.strings.brushNotHtmlScript = ‘HTMLスクリプトのオプションのためにブラシが構成されませんでした: ‘;
SyntaxHighlighter.defaults[‘pad-line-numbers’] = false;
SyntaxHighlighter.defaults[‘toolbar’] = false;
SyntaxHighlighter.all();

// Infinite scroll support
jQuery( function( $ ) {
$( document.body ).on( ‘post-load’, function() {
SyntaxHighlighter.highlight();
} );
} );

/* <![CDATA[ */
var actionbardata = {"siteID":"16179887","siteName":"\u7c89\u672b@\u305d\u308c\u306f\u98a8\u306e\u3088\u3046\u306b (\u65e5\u8a18)","siteURL":"http:\/\/funmatu.wordpress.com","icon":"“,”canManageOptions”:””,”canCustomizeSite”:””,”isFollowing”:””,”themeSlug”:”pub\/twentyten”,”signupURL”:”https:\/\/wordpress.com\/start\/”,”loginURL”:”https:\/\/funmatu.wordpress.com\/wp-login.php?redirect_to=https%3A%2F%2Ffunmatu.wordpress.com%2F2017%2F05%2F26%2F%25e7%2584%25a1%25e9%25a1%258c-5%2F”,”themeURL”:”https:\/\/wordpress.com\/theme\/twentyten\/”,”xhrURL”:”https:\/\/funmatu.wordpress.com\/wp-admin\/admin-ajax.php”,”nonce”:”f82702385c”,”isSingular”:””,”isFolded”:””,”isLoggedIn”:””,”isMobile”:””,”subscribeNonce”:””,”referer”:”https:\/\/funmatu.wordpress.com\/”,”canFollow”:”1″,”statusMessage”:””,”customizeLink”:”https:\/\/funmatu.wordpress.com\/wp-admin\/customize.php?url=https%3A%2F%2Ffunmatu.wordpress.com%2F”,”i18n”:{“view”:”\u30b5\u30a4\u30c8\u3092\u8868\u793a”,”follow”:”\u30d5\u30a9\u30ed\u30fc”,”following”:”\u30d5\u30a9\u30ed\u30fc\u4e2d”,”edit”:”\u7de8\u96c6″,”login”:”\u30ed\u30b0\u30a4\u30f3″,”signup”:”\u767b\u9332″,”customize”:”\u30ab\u30b9\u30bf\u30de\u30a4\u30ba”,”report”:”\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u5831\u544a”,”themeInfo”:”\u30c6\u30fc\u30de\u3092\u53d6\u5f97: Twenty Ten”,”shortlink”:”\u77ed\u7e2e\u30ea\u30f3\u30af\u3092\u30b3\u30d4\u30fc”,”copied”:”\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f”,”followedText”:”\u4eca\u5f8c\u3053\u306e\u30b5\u30a4\u30c8\u306e\u65b0\u3057\u3044\u6295\u7a3f\u304c Reader \u306b\u8868\u793a\u3055\u308c\u307e\u3059″,”foldBar”:”\u3053\u306e\u30d0\u30fc\u3092\u6298\u308a\u305f\u305f\u3080″,”unfoldBar”:”\u3053\u306e\u30d0\u30fc\u3092\u5c55\u958b”,”editSubs”:”\u8cfc\u8aad\u7ba1\u7406″,”viewReader”:”\u30b5\u30a4\u30c8\u3092 Reader \u3067\u8868\u793a”,”subscribe”:”\u767b\u9332\u3059\u308b”,”enterEmail”:”\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b”,”followers”:””,”alreadyUser”:”WordPress.com \u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u3059\u3067\u306b\u304a\u6301\u3061\u3067\u3059\u304b ? \u4eca\u3059\u3050\u30ed\u30b0\u30a4\u30f3″,”stats”:”\u7d71\u8a08\u60c5\u5831″}};
/* ]]> */

/* <![CDATA[ */
var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"ja","ajaxurl":"https:\/\/funmatu.wordpress.com\/wp-admin\/admin-ajax.php","nonce":"ecdba30f21","display_exif":"1","display_geo":"1","single_image_gallery":"1","single_image_gallery_media_file":"","background_color":"black","comment":"\u30b3\u30e1\u30f3\u30c8","post_comment":"\u30b3\u30e1\u30f3\u30c8\u3092\u9001\u4fe1","write_comment":"\u30b3\u30e1\u30f3\u30c8\u3092\u3069\u3046\u305e","loading_comments":"\u30b3\u30e1\u30f3\u30c8\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059\u2026","download_original":"\u30d5\u30eb\u30b5\u30a4\u30ba\u8868\u793a {0}\u00d7{1}”,”no_comment_text”:”\u30b3\u30e1\u30f3\u30c8\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u3054\u8a18\u5165\u304f\u3060\u3055\u3044\u3002″,”no_comment_email”:”\u30b3\u30e1\u30f3\u30c8\u3059\u308b\u306b\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u3054\u8a18\u5165\u304f\u3060\u3055\u3044\u3002″,”no_comment_author”:”\u30b3\u30e1\u30f3\u30c8\u3059\u308b\u306b\u306f\u304a\u540d\u524d\u3092\u3054\u8a18\u5165\u304f\u3060\u3055\u3044\u3002″,”comment_post_error”:”\u30b3\u30e1\u30f3\u30c8\u6295\u7a3f\u306e\u969b\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u5f8c\u307b\u3069\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002″,”comment_approved”:”\u30b3\u30e1\u30f3\u30c8\u304c\u627f\u8a8d\u3055\u308c\u307e\u3057\u305f\u3002″,”comment_unapproved”:”\u30b3\u30e1\u30f3\u30c8\u306f\u627f\u8a8d\u5f85\u3061\u4e2d\u3067\u3059\u3002″,”camera”:”\u30ab\u30e1\u30e9″,”aperture”:”\u7d5e\u308a”,”shutter_speed”:”\u30b7\u30e3\u30c3\u30bf\u30fc\u30b9\u30d4\u30fc\u30c9″,”focal_length”:”\u7126\u70b9\u8ddd\u96e2″,”comment_registration”:”0″,”require_name_email”:”0″,”login_url”:”https:\/\/funmatu.wordpress.com\/wp-login.php?redirect_to=https%3A%2F%2Ffunmatu.wordpress.com%2F2017%2F05%2F26%2F%25e7%2584%25a1%25e9%25a1%258c-5%2F”,”blog_id”:”16179887″,”local_comments_commenting_as”:”\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9 \u540d\u524d \u30a6\u30a7\u30d6\u30b5\u30a4\u30c8 “,”reblog”:”\u30ea\u30d6\u30ed\u30b0″,”reblogged”:”\u30ea\u30d6\u30ed\u30b0\u6e08″,”reblog_add_thoughts”:”\u3072\u3068\u3053\u3068\u8ffd\u52a0\u3057\u307e\u305b\u3093\u304b ? (\u30aa\u30d7\u30b7\u30e7\u30f3)”,”reblogging”:”\u30ea\u30d6\u30ed\u30b0\u4e2d\u2026″,”post_reblog”:”\u30ea\u30d6\u30ed\u30b0\u3092\u6295\u7a3f”,”stats_query_args”:”blog=16179887&v=wpcom&tz=0&user_id=0&subd=funmatu”,”is_public”:”1″,”reblog_enabled”:””};
/* ]]> */

https://s0.wp.com/_static/??-eJx9UNsOgjAM/SFnwRiND8ZvmaNox+jmuoH+vYMEYnzg7fT0XJrCGJTxnJATWIEGBzIY3nsrO/hZ9VkFlx/EAo46FHhlzPjU3DiMG2LilpjSZwUbWt30xOquI/RaEsaClB8wRmpK4cptJZhEnqeEFW2ojY4+CzqwmII2nVqIxUNsXJ66y2NkbP3dokn/gUvaUK70oEUwzYZ5DhFFiuPWX+vj5VBVp/pwtl8Jl4vL
https://platform.twitter.com/widgets.js?ver=20111117

/* */

https://s2.wp.com/_static/??-eJyVzTEOwjAMheELYQwSEBgQZ0kbE1xcN3Jcqt6+XRhYQExP//Dp4VSgHdRJHfsRioyZtaJP7E4GjcT22bAlKEyo9CIjTax529UN/mPLb8dCCXIUIZs/64sqQ3W4S2TD+oi2Xrx3Rbf+uj+cL7twCsfQLZZaV/w=

//

jQuery.extend( infiniteScroll.settings.scripts, [“jquery”,”jquery-core”,”jquery-migrate”,”mobile-useragent-info”,”postmessage”,”jquery_inview”,”jetpack_resize”,”spin”,”jquery.spin”,”grofiles-cards”,”wpgroho”,”jquery.autoresize”,”highlander-comments”,”syntaxhighlighter-core”,”syntaxhighlighter-brush-python”,”devicepx”,”jetpack_likes_queuehandler”,”the-neverending-homepage”,”wpcom-masterbar-js”,”wpcom-actionbar-bar”,”jetpack-carousel”,”swfobject”,”videopress”,”twitter-widgets”,”twitter-widgets-infinity”,”twitter-widgets-pending”,”tiled-gallery”,”sharing-js”] );
jQuery.extend( infiniteScroll.settings.styles, [“wpcom-smileys”,”jetpack_likes”,”the-neverending-homepage”,”wpcom-core-compat-playlist-styles”,”mp6hacks”,”wpcom-bbpress2-staff-css”,”twentyten-wpcom-style”,”noticons”,”geo-location-flair”,”reblogging”,”infinity-twentyten”,”wpcom-actionbar-bar”,”sharedaddy”,”social-logos”,”h4-global”,”highlander-comments”,”highlander-comments-ie7″,”jetpack-carousel”,”tiled-gallery”,”jetpack-carousel-ie8fix”] );
https://widgets.wp.com/likes/master.html?ver=20170206#ver=20170206&lang=ja

    var _comscore = _comscore || [];
    _comscore.push({
    c1: “2”,
    c2: “7518284”
    });
    (function() {
    var s = document.createElement(“script”),
    el = document.getElementsByTagName(“script”)[0];
    s.defer = true;
    s.src = (document.location.protocol == “https:” ? “https://sb&#8221; : “http://b&#8221;) + “.scorecardresearch.com/beacon.js”;
    el.parentNode.insertBefore(s, el);
    })();

    //stats.wp.com/w.js?56

    _tkq = window._tkq || [];
    _stq = window._stq || [];
    _tkq.push([‘storeContext’, {‘blog_id’:’16179887′,’blog_tz’:’0′,’user_lang’:’ja’,’blog_lang’:’ja’,’user_id’:’0′}]);
    _stq.push([‘view’, {‘blog’:’16179887′,’v’:’wpcom’,’tz’:’0′,’user_id’:’0′,’subd’:’funmatu’}]);
    _stq.push([‘extra’, {‘crypt’:’UE40eW5QN0p8M2Y/RE1LVmwrVi5vQS5fVFtfdHBbPyw1VXIrU3hWLHhzVndTdktBX0ddJnpXRjVaOTd6fj1YMX4ydzR6MmRCYnxkNmcuSzEucHRfaVIsbE18QTJFUk9LWz1OJiV3cixaZ1Vnd2FoazNQWklob1RWOSw5OHwlVS9BK2xaUTddcWNURSs2RWxDUG5kK0JRQ3FoTmw0Mm0/KytwXWxCR1ZWLzBiN28tLiVoUktlfnxoU0d6Q1hKLlM2LlIzYVIvbGw0WHVSLUtmPUg/Zk5yLVlvSTVLQUolNi5KWnV6VUFIM2JDWEdJLys5LVo5ajd0SUJENmZzfEJDcWYubmxvLUdwMXREWEsv’}]);
    _stq.push([ ‘clickTrackerInit’, ‘16179887’, ‘0’ ]);

    if ( ‘object’ === typeof wpcom_mobile_user_agent_info ) {

    wpcom_mobile_user_agent_info.init();
    var mobileStatsQueryString = “”;

    if( false !== wpcom_mobile_user_agent_info.matchedPlatformName )
    mobileStatsQueryString += “&x_” + ‘mobile_platforms’ + ‘=’ + wpcom_mobile_user_agent_info.matchedPlatformName;

    if( false !== wpcom_mobile_user_agent_info.matchedUserAgentName )
    mobileStatsQueryString += “&x_” + ‘mobile_devices’ + ‘=’ + wpcom_mobile_user_agent_info.matchedUserAgentName;

    if( wpcom_mobile_user_agent_info.isIPad() )
    mobileStatsQueryString += “&x_” + ‘ipad_views’ + ‘=’ + ‘views’;

    if( “” != mobileStatsQueryString ) {
    new Image().src = document.location.protocol + ‘//pixel.wp.com/g.gif?v=wpcom-no-pv’ + mobileStatsQueryString + ‘&baba=’ + Math.random();
    }

    }

    r.json()
    

    JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    from PIL import Image
    import io
    
    r2 = requests.get('https://secure.gravatar.com/blavatar/e9d14a9fbf91b6b06889b7d3b27e09ad?s=48')
    i = Image.open(io.BytesIO(r2.content))
    i.show()
    

    sample001

    カテゴリー: 未分類 パーマリンク

    Requests: 人間のためのHTTP への1件のフィードバック

    コメントは受け付けていません。

    %d人のブロガーが「いいね」をつけました。