In [10]:
x=9
y=6
z=y**x
print "z=", z


z= 10077696

In [42]:
%pylab


Using matplotlib backend: MacOSX
Populating the interactive namespace from numpy and matplotlib

In [54]:
import statsmodels.api as sm
import matplotlib.pyplot as plt

In [29]:
import pandas as pd

filename = 'namebench_2013-12-27_0205.csv'

data = pd.read_csv(filename, header=0, 
                   names=[u'IP', u'Name', u'Test_Num', u'Record', u'Record_Type', u'Duration', u'TTL', u'Answer_Count', u'Response','Foo'])
data.shape, data.keys()


Out[29]:
((1000, 10),
 Index([u'IP', u'Name', u'Test_Num', u'Record', u'Record_Type', u'Duration', u'TTL', u'Answer_Count', u'Response', u'Foo'], dtype=object))

In [30]:
data.head()


Out[30]:
IP Name Test_Num Record Record_Type Duration TTL Answer_Count Response Foo
0 156.154.71.1 UltraDNS-2 0 nl.youtube.com. A 264.336109 300 2 youtube-ui.l.google.com. -> 173.194.44.1, 173.... NaN
1 156.154.71.1 UltraDNS-2 0 www.flickr.com. A 402.462006 133 5 flickr-panda-police.a00.yahoodns.net. -> geoyc... NaN
2 156.154.71.1 UltraDNS-2 0 news.qq.com. A 316.584110 6088 4 www.qq.com. -> qq.com.edgesuite.net. -> a1574.... NaN
3 156.154.71.1 UltraDNS-2 0 get.adobe.com. A 307.471991 2908 2 get.wip4.adobe.com. -> 192.150.16.58 NaN
4 156.154.71.1 UltraDNS-2 0 www.yandex.ru. A 337.362051 49 1 213.180.193.3, 213.180.204.3, 93.158.134.3 NaN

In [37]:
opendns_durations=data.Duration[data.Name=='OpenDNS']
google_durations=data.Duration[data.Name=='Google Public DNS']

In [39]:
set(data.Name)


Out[39]:
{'DynGuide-2', 'Google Public DNS', 'OpenDNS', 'UltraDNS-2'}

In [40]:
google_durations.shape


Out[40]:
(250,)

In [46]:
clf()
hist(google_durations,bins=20)


Out[46]:
(array([ 202.,   20.,    6.,    5.,    5.,    5.,    0.,    1.,    0.,
          0.,    2.,    0.,    0.,    0.,    1.,    0.,    0.,    0.,
          0.,    3.]),
 array([  134.5410347 ,   302.81398296,   471.08693123,   639.35987949,
         807.63282776,   975.90577602,  1144.17872429,  1312.45167255,
        1480.72462082,  1648.99756908,  1817.27051735,  1985.54346561,
        2153.81641388,  2322.08936214,  2490.36231041,  2658.63525867,
        2826.90820694,  2995.1811552 ,  3163.45410347,  3331.72705173,
        3500.        ]),
 <a list of 20 Patch objects>)

In [47]:
figure(2)
hist(opendns_durations,bins=20)


Out[47]:
(array([ 179.,   32.,   12.,    8.,    3.,    1.,    7.,    0.,    3.,
          0.,    0.,    1.,    0.,    0.,    1.,    0.,    0.,    0.,
          0.,    3.]),
 array([  114.35484886,   283.63710642,   452.91936398,   622.20162153,
         791.48387909,   960.76613665,  1130.0483942 ,  1299.33065176,
        1468.61290932,  1637.89516687,  1807.17742443,  1976.45968199,
        2145.74193954,  2315.0241971 ,  2484.30645466,  2653.58871222,
        2822.87096977,  2992.15322733,  3161.43548489,  3330.71774244,
        3500.        ]),
 <a list of 20 Patch objects>)

In [58]:
fig=figure(3)
clf()
ecdf = sm.distributions.ECDF(google_durations)
x = np.linspace(min(google_durations),max(google_durations))
y = ecdf(x)
ax = fig.add_subplot(111)
ax.set_ylabel('%')
ax.set_xlabel('ms')
ax.step(x,y)
plt.show()

In [51]:
ecdf


Out[51]:
<statsmodels.distributions.empirical_distribution.ECDF at 0x10dff9210>

In [ ]: