centos7,postgresql9.6でPostGis


# yum install postgis2_96

postgres=# create database geodb owner iyo;
postgres=# \c geodb
postgres=# create extension postgis;
geodb=> CREATE TABLE geotable (
id SERIAL NOT NULL PRIMARY KEY,
name varchar (255) NOT NULL,
geom geography(POINT, 4612) NOT NULL -- SRID 4612 googlemapだと900913
);
geodb=> select * from geometry_columns ;
geodb=> CREATE INDEX geom_idx ON geotable using GiST(geom);


geodb=> INSERT INTO geotable (name, geom) VALUES
('駅', ST_GeographyFromText('SRID=4326;POINT(139.777254 35.713768)'))

geodb=> CREATE TABLE gmaptable (
id SERIAL NOT NULL PRIMARY KEY,
name varchar (255) NOT NULL,
geom geometry(POINT, 900913) NOT NULL -- SRID 4612 googlemapだと900913
);

pythonでcsv

読み込んで、列順を変えて書き込む


import csv

csv_r = open("./test.csv", "r", encoding="utf-8", errors="", newline="" )
csv_w = open('output.csv', 'w')
rf = csv.reader(csv_r, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True)
wf = csv.writer(csv_w, lineterminator='\n')

order = [2,3,1]

for row in rf:
data = []
for i in order:
if i == 0:
data.append("")
continue
data.append(row[i-1])
wf.writerow(data)

csv_r.close()
csv_w.close()

DataFrameで密度分布


mport numpy as np
import pandas as pd
%matplotlib inline
from matplotlib import pyplot as plt

x = np.random.normal(50, 10, 1000)
dataframe_value = pd.DataFrame(x)
dataframe_value.plot(kind="kde", subplots=True, figsize=(10, 6))

#集約
std_data = pd.read_csv("std.csv")
grouped_data = std_data.groupby("name")
#grouped_data.head()
grouped_data.mean()
grouped_data.plot(kind="kde", subplots=True, figsize=(10, 6))

kerlでealang、elixirインストール centos7


# cd /usr/local/bin
#curl -O https://raw.githubusercontent.com/spawngrid/kerl/master/kerl
# cd kerl
# chmod a+x kerl
$ kerl list releases
$ kerl build 20.3 build20.3
$ mkdir -p ~/bin/erlang/20.3
$ kerl install build20.3 ~/bin/erlang/20.3/
$ kerl build 20.3 build20.3
$ . ~/bin/erlang/20.3/activate

$ git clone https://github.com/elixir-lang/elixir.git
$ cd elixr
$ git tag
$ git checkout -b v.1.6.5 refs/tags/v1.6.5
$ make clean test
$ echo 'export PATH=$PATH:$HOME/elixir/bin' >> ~/.bash_profile

anyenvでanacondaインストール centos7


$ git clone https://github.com/riywo/anyenv ~/.anyenv

$ vim ~/.bash_profile
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"

$ anyenv install pyenv
$ pyenv install -l | grep ana
$ pyenv install anaconda3-5.1.0
$ pyenv rehash
$ pyenv global anacond3-5.1.0
$ echo 'export="$PYENV_ROOT/versions/anaconda3-5.1.0:$PATH"' >> ~/.bash_profile
$ conda update conda
$ conda update --all

MatPlotLib


%matplotlib inline

from scipy.stats import norm
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-3, 3, 0.001)

plt.plot(x, norm.pdf(x))
plt.show()

#ファイルに保存
plt.plot(x, norm.pdf(x))
plt.plot(x, norm.pdf(x, 1.0, 0.5))
plt.savefig('MyPlot.png', format='png')

#軸の調整
axes = plt.axes()
#軸の範囲
axes.set_xlim([-5, 5])
axes.set_ylim([0, 1.0])
#軸の目盛り
axes.set_xticks([-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5])
axes.set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
#グリッドの追加
axes.grid()

#ラベル
plt.xlabel('Greebles')
plt.ylabel('Probability')

#凡例 loc=4は右下
plt.legend(['Sneetches', 'Gacks'], loc=4)
#線の種類
#bは青、-はソリッド
#rは赤、:は点線
plt.plot(x, norm.pdf(x), 'b-')
plt.plot(x, norm.pdf(x, 1.0, 0.5), 'r:')


plt.show()

numpy財務計算



現在価値
n年後に受け取るX円の現在価値、割引率r%
X/(1+r%)**n
5年後にもらえる100万円の現在価値、(国債などの利率0.8%)
>>> np.pv(0.008, 5, 0, -100)
96.094236264559825

将来価値
X円を利率r%でn年運用したn年後の将来価値
X*(1+r%)**n
>>> n = np.pv(0.008, 5, 0, -100)
>>> np.fv(0.008, 5, 0, -n)
100.0


正味現在価値
5年にわたって各年100万もらえる投資商品、割引率3%
>>> np.npv(0.03, [0,100,100,100,100,100])
457.97071871945337

内部収益率
初期投資800
各年
100,150,200,250,300,350
の収益
割引率10%
>>> np.npv(0.1, [-800,100,150,200,250,300,350])
119.7346295160028
>>> round(np.irr([-800,100,150,200,250,300,350]),4)
0.1405
判断基準
npv>0
irr>割引率