読者です 読者をやめる 読者になる 読者になる

内角540°

セキュリティ。SIEMとかIPSとか統計とかクラウドとか。数学以外で。

Proxy分析

覚書

その2
gokaxtukei.hatenablog.com




Proxy分析用

INPUTDATA

seq,send,count
1,45282,10
2,45326,54
3,45402,88
4,45470,1
5,45474,72
6,45597,26

OUTPUTDATA
偏差値CSV

# coding:utf-8

import pandas as pd
import numpy as np
ini = pd.read_csv("proxy_data.csv")

################################変数定義
seq = "seq"
send = "send"
count = "count"
score = []
ml = []

################################生ファイル復元
for i in ini[seq]-1:
	for record in range(0,ini[count][i]):
		score.append(ini[send][i])
		ml.append(i+1)
#score_df = pd.Series(score,ml)
score_df = pd.DataFrame({"seq":range(len(score)),"byte":score})

#print score_df
################################

print score_df.var()

def std_score(a):
	return np.round_(50+10*(a-np.average(a))/np.std(a))
def item_format(f):  #float型を桁数指定の文字列に変換する関数
	return "%5.2f"%f

#一通り計算、表示
def test(a):
	print "★得点\n",a
	print "★合計\n",np.sum(a)
	print "★平均\n",np.average(a)
	print "★分散\n",np.var(a)
	print "★標準偏差\n",np.std(a)
	print "★偏差値\n	",std_score(a)
	print "★中央値\n",np.median(a)
	print std_score(a).astype(np.int64)
	np.savetxt("bar.txt", np.c_[a,std_score(a)], delimiter=",", fmt="%.0f")

test(np.array(score_df["byte"]))
byte    4.319732e+13
seq     1.277100e+07
dtype: float64
★得点
[    45282     45282     45282 ..., 100002223 500000000 500000000]
★合計
2047141917
★平均
165372.155828
★分散
4.31938280266e+13
★標準偏差
6572201.15537
★偏差値
	[  50.   50.   50. ...,  202.  811.  811.]
★中央値
52235.0
[ 50  50  50 ..., 202 811 811]

1億件くらいまでなら行けた
(33分)