matplotlibで書く
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-10, 10, 0.1)
y = x**2 + 10*x + 1
plt.plot(x,y)
plt.savefig('01')

x軸、y軸を定義してplotするだけですね。
感覚的には数式に近いような気がします。
随机应变 ABCD: Always Be Coding and … : хороший
matplotlibで書く
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-10, 10, 0.1)
y = x**2 + 10*x + 1
plt.plot(x,y)
plt.savefig('01')

x軸、y軸を定義してplotするだけですね。
感覚的には数式に近いような気がします。
Δy = 0 としてxを変化させると、極限Δx → 0 を考えることができる。これをxについて偏微分したと言う。
from sympy import *
sym.init_printing()
x=Symbol('x')
y=Symbol('y')
print(diff(sin(x),x))
print(diff(exp(x),x))
print(diff(x**4+x**3,x,2))
print(diff(x**2+x*y+2*y**2,x))
print(Derivative(y(t),t))
[vagrant@localhost python]$ python app.py
Traceback (most recent call last):
File “app.py”, line 2, in
sym.init_printing()
NameError: name ‘sym’ is not defined
あれ。。
3x^2 + 5xy + 3y^3
xで偏微分すると 6x + 5y
yで偏微分すると 5y + 9y^2
理屈は簡単ですな。
目的変数 y = CTR
独立変数 ユーザバイオグラフィック x1 … x10?
係数 w
レコード数 n
回帰モデルは
y = w0 + lΣ[k=1]wkxk
各係数wを求めたい
線形回帰モデルの場合は、独立変数を行列X、係数ベクトルWとして目的変数Yを求める
Y = XW
微分した時に距離Dがゼロになる値を複数の変数で計算する
あれ、これは、線形回帰モデルではないな。少なくとも線形ではない(と思う)
しかし、ボストンのサンプルばっかりでイマイチ掴めんな。。
odeintは1階の常微分方程式を解くのに有効な積分器
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
def func(y, x, a):
dydx = a*y
return dydx
a = 1
y0 = 1
x = np.arange(0, 3, 0.01)
y = odeint(func, y0, x, args=(a,))
plt.plot(x, y, label='exp')
plt.legend()
plt.savefig('01')

import matplotlib.pyplot as plt
import numpy as np
from scipy.integrate import odeint
from numpy import sin, cos, pi
from matplotlib.animation import FuncAnimation
def func(state, t):
dydt = np.zeros_like(state)
dydt[0] = state[1]
dydt[1] = -(G/L)*sin(state[0])
return dydt
G = 9.8
L = 1
th1 = 30.0
w1 = 0.0
state = np.radians([th1, w1])
dt = 0.05
t = np.arange(0.0, 20, dt)
sol = odeint(func, state, t)
theta = sol[:, 0]
x = L * sin(theta)
y = - L * cos(theta)
fig = plt.figure()
ax = fig.add_subplot(111, autoscale_on=False, xlim=(-L, L), ylim=(-L, L))
ax.set_aspect('equal')
ax.grid()
line, = ax.plot([], [], 'o-', lw=2)
def animate(i):
thisx = [0, x[i]]
thisy = [0, y[i]]
line.set_date(thisx, thisy)
return line,
ani = FuncAnimation(fig, animate, frames=np.arange(0, len(t)), interval=25, blit=True)
plt.savefig('01')
極限とは、xの値をある一定値αに限りなく近づけるとき
limit(sin(x)/x, x, 0)
limit(x, x, oo)
limit(1/x,x, oo)
limit(x**x, x, 0)
極限はlimit
ooは無限大
sin pai/2 = 1
from sympy import *
x = Symbol('x')
f = limit(sin(x)/x,x,oo)
print(f)
[vagrant@localhost python]$ python app.py
Traceback (most recent call last):
File “app.py”, line 1, in
from sympy import *
ModuleNotFoundError: No module named ‘sympy’
[vagrant@localhost python]$ pip install sympy
Collecting sympy
Downloading https://files.pythonhosted.org/packages/21/21/f4105795ca7f35c541d82c5b06be684dd2f5cb4f508fb487cd7aea4de776/sympy-1.4-py2.py3-none-any.whl (5.3MB)
|████████████████████████████████| 5.3MB 2.8MB/s
Collecting mpmath>=0.19 (from sympy)
Downloading https://files.pythonhosted.org/packages/ca/63/3384ebb3b51af9610086b23ea976e6d27d6d97bf140a76a365bd77a3eb32/mpmath-1.1.0.tar.gz (512kB)
|████████████████████████████████| 522kB 1.8MB/s
Building wheels for collected packages: mpmath
Building wheel for mpmath (setup.py) … done
Created wheel for mpmath: filename=mpmath-1.1.0-cp36-none-any.whl size=532240 sha256=ee5e33a6f32c6be4e88e8e90c0a201a978adcf3203bb8254e8765258844214b5
Stored in directory: /home/vagrant/.cache/pip/wheels/63/9d/8e/37c3f6506ed3f152733a699e92d8e0c9f5e5f01dea262f80ad
Successfully built mpmath
Installing collected packages: mpmath, sympy
Successfully installed mpmath-1.1.0 sympy-1.4
[vagrant@localhost python]$ python app.py
0
ほう、0なんだ。
from sympy import *
i = Symbol('i', integer=True)
n = Symbol('n', integer=True)
p = Rational(1,2)
f = summation(p**i,(i,1,n))
l = limit(f,n,oo)
print(l)
[vagrant@localhost python]$ python app.py
1
プログラミングってより、数学がわからんどダメだなー
s1 = {0, 1, 2}
s2 = {1, 2, 3}
s3 = {2, 3, 4}
s_intersection = s1 & s2
print(s_intersection)
s_intersection = s1.intersection(s2)
print(s_intersection)
[vagrant@localhost python]$ python app.py
{1, 2}
{1, 2}
あ、これは面白い
s1 = {0, 1, 2}
s2 = {1, 2, 3}
s3 = {2, 3, 4}
s_difference = s1 - s2
print(s_difference)
s_difference = s2.difference(s1)
print(s_difference)
[vagrant@localhost python]$ python app.py
{0}
{3}
どちらか一方だけに含まれる要素
symmetric_difference
s_symmetric_difference = s1.symmetric_difference(s3) print(s_symmetric_difference)
[vagrant@localhost python]$ python app.py
{0, 1, 3, 4}
すご。
和集合、積集合、部分集合などの計算の為、pythonのsetを
s = {1, 2, 2, 3, 1, 4}
print(s)
print(type(s))
[vagrant@localhost python]$ python app.py
{1, 2, 3, 4}
s = {i**2 for i in range(5)}
print(s)
s = {1, 2, 2, 3, 1, 4}
print(s)
print(len(s))
[vagrant@localhost python]$ python app.py
{0, 1, 4, 9, 16}
{1, 2, 3, 4}
4
和集合
s1 = {0, 1, 2}
s2 = {1, 2, 3}
s3 = {2, 3, 4}
s_union = s1 | s2
print(s_union)
s_union = s1.union(s2)
print(s_union)
セットで計算
s1 = {0, 1, 2}
s2 = {1, 2, 3}
s3 = {2, 3, 4}
s_union = s1.union(s2,s3)
print(s_union)
cd /usr/local/src
wget “https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE” -O mecab-0.996.tar.gz
sudo tar -zxvf mecab-0.996.tar.gz
[vagrant@localhost src]$ ls
mecab-0.996 mecab-0.996.tar.gz
sudo ./configure –with-charset=utf8
sudo wget “https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM” -O mecab-ipadic-2.7.0-20070801.tar.gz
$ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure –with-charset=utf8
$ make
$ make install
[vagrant@localhost mecab-ipadic-2.7.0-20070801]$ echo すもももももももものうち | mecab
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
ぎゃああああああああああああああああああああ
$ git clone https://github.com/rsky/php-mecab.git
$ cd php-mecab/mecab/
$ phpize
$ ./configure –with-mecab=/usr/local/src/mecab-0.996/mecab-config
$ make
$ make test
$ make install
[vagrant@localhost mecab]$ ls /usr/lib64/php/modules/ | grep mecab
mecab.so
[vagrant@localhost mecab]$ vim /etc/php.d/mecab.ini
-bash: vim: コマンドが見つかりません
[vagrant@localhost mecab]$ vi /etc/php.d/mecab.ini
[vagrant@localhost mecab]$ sudo vi /etc/php.d/mecab.ini
[vagrant@localhost mecab]$ sudo service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: httpd: Could not reliably determine the server’s fully qualified domain name, using localhost.localdomain for ServerName
[ OK ]
[vagrant@localhost mecab]$ php -m | grep mecab
mecab
ぎょえええええええええええええええええええ
$str = 'すもももももももものうち';
$mecab = new Mecab_Tagger();
$nodes = $mecab->parseToNode($str);
foreach ($nodes as $n) {
$items = $n->getFeature();
echo $items . "<br>";
}
BOS/EOS,*,*,*,*,*,*,*,*
名詞,一般,*,*,*,*,すもも,スモモ,スモモ
助詞,係助詞,*,*,*,*,も,モ,モ
名詞,一般,*,*,*,*,もも,モモ,モモ
助詞,係助詞,*,*,*,*,も,モ,モ
名詞,一般,*,*,*,*,もも,モモ,モモ
助詞,連体化,*,*,*,*,の,ノ,ノ
名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
BOS/EOS,*,*,*,*,*,*,*,*
oh my god.
import numpy as np rates = np.ones(10) * 3 print(rates ** np.arange(10))
[vagrant@localhost python]$ python myapp.py
[1.0000e+00 3.0000e+00 9.0000e+00 2.7000e+01 8.1000e+01 2.4300e+02
7.2900e+02 2.1870e+03 6.5610e+03 1.9683e+04]
np.ones は配列の全ての要素を1で初期化する