Notebook
In [86]:
import numpy as np
import pandas as pd
import numbers

# adopted from https://www.mathworks.com/matlabcentral/fileexchange/36487-weighted-generalized-hurst-exponent
def genhurstw(S, q = 1.0, delta = np.inf, maxT = 20, minT = 5, ddim = 0):
    import numpy as np
    import pandas as pd
    import numbers

    q        = float(q) if isinstance(q, numbers.Integral) else q
    delta    = float(delta) if isinstance(delta, numbers.Integral) else delta

    S        = np.array(S) if isinstance(S, list) else (S.values if isinstance(S, (pd.DataFrame, pd.Series, pd.Panel, pd.Panel4D)) else S)
    q        = np.array(q) if isinstance(q, (list, numbers.Number)) else (q.values.copy() if isinstance(q, (pd.DataFrame, pd.Series, pd.Panel, pd.Panel4D)) else q)
    delta    = np.array(delta) if isinstance(delta, (list, numbers.Number)) else (delta.values.copy() if isinstance(delta, (pd.DataFrame, pd.Series, pd.Panel, pd.Panel4D)) else delta)

    lpidxd   = S.shape[:ddim]
    rpidxd   = S.shape[(ddim + 1):]
    lpidxi   = (slice(None, None, None),) * ddim
    rpidxi   = (slice(None, None, None),) * (S.ndim - ddim - 1)
    rs1d     = ((1,) * ddim) + (-1,) + ((1,) * (S.ndim - ddim - 1))

    q        = q.reshape(-1).reshape(rs1d)
    delta    = delta.reshape(-1).reshape(rs1d)

    L        = S.shape[ddim]
    lq       = q.shape[ddim]
    deltas   = delta.shape[ddim]
    H        = np.empty(lpidxd + (maxT - minT + 1, lq, deltas) + rpidxd, dtype = float)

    cc       = np.empty(lpidxd + (2,) + rpidxd, dtype = float)

    k        = 0
    for Tmax in range(minT, maxT + 1):
        x = np.arange(1, Tmax + 1, dtype = float).reshape(rs1d)
        mcord = np.empty(lpidxd + (Tmax, lq, deltas) + rpidxd, dtype = float)

        for tt in range(1, Tmax + 1):
            dV    = S[lpidxi + (slice(tt, L, tt),) + rpidxi] - S[lpidxi + (slice(0, L - tt, tt),) + rpidxi]
            VV    = S[lpidxi + (slice(0, L, tt),) + rpidxi]

            N     = float(dV.shape[ddim]) + 1.0
            Np1   = N + 1.0

            X     = np.arange(1.0, Np1, dtype = float).reshape(rs1d)
            Y     = VV


            mx    = np.sum(X, axis = ddim) / N
            SSxx  = np.sum(X ** 2, axis = ddim) - N * (mx ** 2)

            my    = np.sum(Y, axis = ddim) / N
            SSxy  = np.sum(X * Y, axis = ddim) - N * mx * my


            cc[lpidxi + (0,) + rpidxi] = SSxy/SSxx
            cc[lpidxi + (1,) + rpidxi] = my - cc[lpidxi + (0,) + rpidxi] * mx

            ddVd  = dV - cc[lpidxi + (0,) + rpidxi]
            VVVd  = VV - cc[lpidxi + (0,) + rpidxi] * X - cc[lpidxi + (1,) + rpidxi] # X = 1:N

            for d in range(0, deltas):
                cdelta  = delta[lpidxi + (d,) + rpidxi]

                if np.isfinite(cdelta):
                    # extra coputation but this gives the same results as below for Inf values

                    aph = 1.0 / cdelta

                    r   = np.arange(0, Np1, dtype = float).reshape(rs1d)
                    w   = np.exp(-aph * r[lpidxi + (slice(0, -2),) + rpidxi]) * (1.0 - np.exp(-aph)) / (1.0 - np.exp(-aph * (N - 1)))
                    w1  = np.exp(-aph * r[lpidxi + (slice(0, -1),) + rpidxi]) * (1.0 - np.exp(-aph)) / (1.0 - np.exp(-aph * N))

                    for qq in range(0, lq):
                        mcord[lpidxi + (tt - 1, qq, d) + rpidxi] = np.sum(w * (np.abs(ddVd) ** q[lpidxi + (qq,) + rpidxi]), axis = ddim) / np.sum(w1 * (np.abs(VVVd) ** q[lpidxi + (qq,) + rpidxi]), axis = ddim)
                else:
                    for qq in range(0, lq):
                        mcord[lpidxi + (tt - 1, qq, d) + rpidxi] = np.mean(np.abs(ddVd) ** q[lpidxi + (qq,) + rpidxi], axis = ddim) / np.mean(np.abs(VVVd) ** q[lpidxi + (qq,) + rpidxi], axis = ddim)

        mx   = np.mean(np.log10(x), axis = ddim)
        SSxx = np.sum(np.log10(x) ** 2, axis = ddim) - Tmax * (mx ** 2)
        for d in range(0, deltas):
            for qq in range(0, lq):
                my   = np.mean(np.log10(mcord[lpidxi + (slice(None), qq, d) + rpidxi]), axis = ddim)
                SSxy = np.sum(np.log10(x) * np.log10(mcord[lpidxi + (slice(None), qq, d) + rpidxi]), axis = ddim)  - Tmax * mx * my
                H[lpidxi + (k, qq, d) + rpidxi] = SSxy/SSxx

        k = k + 1

    mH = np.empty(lpidxd + (lq,) + rpidxd + (deltas,), dtype = float)
    sH = np.empty(lpidxd + (lq,) + rpidxd + (deltas,), dtype = float)
    
    for d in range(0, deltas):
        for qq in range(0, lq):
            mH[lpidxi + (qq,) + rpidxi + (d,)] = np.mean(H[lpidxi + (slice(None), qq, d) + rpidxi], axis = ddim) / q[lpidxi + (qq,) + rpidxi]
            sH[lpidxi + (qq,) + rpidxi + (d,)] = np.std(H[lpidxi + (slice(None), qq, d) + rpidxi], axis = ddim) / q[lpidxi + (qq,) + rpidxi]

    return mH, sH
In [87]:
rndn = np.cumsum(np.random.normal(0.0, 1.0, (10000, 20)), axis = 0)

import matplotlib.pyplot as plt

plt.plot(rndn)
plt.ylabel('random numbers')
plt.show()
In [88]:
H = genhurstw(rndn)
H
Out[88]:
(array([[[ 0.50775929],
         [ 0.51028487],
         [ 0.50643   ],
         [ 0.49390267],
         [ 0.49220093],
         [ 0.5020002 ],
         [ 0.48522559],
         [ 0.48650505],
         [ 0.51651659],
         [ 0.49971146],
         [ 0.50526671],
         [ 0.49811832],
         [ 0.50791423],
         [ 0.49698492],
         [ 0.50544349],
         [ 0.49275732],
         [ 0.51354524],
         [ 0.50411172],
         [ 0.49830397],
         [ 0.49529498]]]), array([[[ 0.00295514],
         [ 0.00448454],
         [ 0.00455459],
         [ 0.00406818],
         [ 0.00443888],
         [ 0.00197717],
         [ 0.00218866],
         [ 0.00408676],
         [ 0.0033012 ],
         [ 0.0039891 ],
         [ 0.00582926],
         [ 0.00398655],
         [ 0.00517986],
         [ 0.00736894],
         [ 0.00349004],
         [ 0.00260616],
         [ 0.00316068],
         [ 0.00463232],
         [ 0.00407541],
         [ 0.0026194 ]]]))
In [89]:
H = genhurstw(rndn, np.array([1, 2]))
H
Out[89]:
(array([[[ 0.50775929],
         [ 0.51028487],
         [ 0.50643   ],
         [ 0.49390267],
         [ 0.49220093],
         [ 0.5020002 ],
         [ 0.48522559],
         [ 0.48650505],
         [ 0.51651659],
         [ 0.49971146],
         [ 0.50526671],
         [ 0.49811832],
         [ 0.50791423],
         [ 0.49698492],
         [ 0.50544349],
         [ 0.49275732],
         [ 0.51354524],
         [ 0.50411172],
         [ 0.49830397],
         [ 0.49529498]],
 
        [[ 0.50708785],
         [ 0.50850013],
         [ 0.50718037],
         [ 0.49436072],
         [ 0.49388323],
         [ 0.50634691],
         [ 0.4845912 ],
         [ 0.4829619 ],
         [ 0.51931597],
         [ 0.49937143],
         [ 0.50791899],
         [ 0.49717165],
         [ 0.50495545],
         [ 0.49974516],
         [ 0.50351098],
         [ 0.49476773],
         [ 0.51379102],
         [ 0.50521856],
         [ 0.50363027],
         [ 0.49690804]]]), array([[[ 0.00295514],
         [ 0.00448454],
         [ 0.00455459],
         [ 0.00406818],
         [ 0.00443888],
         [ 0.00197717],
         [ 0.00218866],
         [ 0.00408676],
         [ 0.0033012 ],
         [ 0.0039891 ],
         [ 0.00582926],
         [ 0.00398655],
         [ 0.00517986],
         [ 0.00736894],
         [ 0.00349004],
         [ 0.00260616],
         [ 0.00316068],
         [ 0.00463232],
         [ 0.00407541],
         [ 0.0026194 ]],
 
        [[ 0.00255216],
         [ 0.00369386],
         [ 0.00624071],
         [ 0.00392174],
         [ 0.00391143],
         [ 0.00146703],
         [ 0.00372853],
         [ 0.00266226],
         [ 0.00262521],
         [ 0.00439325],
         [ 0.00364989],
         [ 0.00305878],
         [ 0.00492692],
         [ 0.00643362],
         [ 0.00299036],
         [ 0.00222405],
         [ 0.00186192],
         [ 0.007151  ],
         [ 0.00302837],
         [ 0.00204545]]]))
In [90]:
H = genhurstw(rndn, np.array([1, 2]), np.exp(1000.0))
H
Out[90]:
(array([[[ 0.50775929],
         [ 0.51028487],
         [ 0.50643   ],
         [ 0.49390267],
         [ 0.49220093],
         [ 0.5020002 ],
         [ 0.48522559],
         [ 0.48650505],
         [ 0.51651659],
         [ 0.49971146],
         [ 0.50526671],
         [ 0.49811832],
         [ 0.50791423],
         [ 0.49698492],
         [ 0.50544349],
         [ 0.49275732],
         [ 0.51354524],
         [ 0.50411172],
         [ 0.49830397],
         [ 0.49529498]],
 
        [[ 0.50708785],
         [ 0.50850013],
         [ 0.50718037],
         [ 0.49436072],
         [ 0.49388323],
         [ 0.50634691],
         [ 0.4845912 ],
         [ 0.4829619 ],
         [ 0.51931597],
         [ 0.49937143],
         [ 0.50791899],
         [ 0.49717165],
         [ 0.50495545],
         [ 0.49974516],
         [ 0.50351098],
         [ 0.49476773],
         [ 0.51379102],
         [ 0.50521856],
         [ 0.50363027],
         [ 0.49690804]]]), array([[[ 0.00295514],
         [ 0.00448454],
         [ 0.00455459],
         [ 0.00406818],
         [ 0.00443888],
         [ 0.00197717],
         [ 0.00218866],
         [ 0.00408676],
         [ 0.0033012 ],
         [ 0.0039891 ],
         [ 0.00582926],
         [ 0.00398655],
         [ 0.00517986],
         [ 0.00736894],
         [ 0.00349004],
         [ 0.00260616],
         [ 0.00316068],
         [ 0.00463232],
         [ 0.00407541],
         [ 0.0026194 ]],
 
        [[ 0.00255216],
         [ 0.00369386],
         [ 0.00624071],
         [ 0.00392174],
         [ 0.00391143],
         [ 0.00146703],
         [ 0.00372853],
         [ 0.00266226],
         [ 0.00262521],
         [ 0.00439325],
         [ 0.00364989],
         [ 0.00305878],
         [ 0.00492692],
         [ 0.00643362],
         [ 0.00299036],
         [ 0.00222405],
         [ 0.00186192],
         [ 0.007151  ],
         [ 0.00302837],
         [ 0.00204545]]]))
In [91]:
H = genhurstw(rndn, np.array([1, 2]), 252.0)
H
Out[91]:
(array([[[ 0.24759074],
         [ 0.29866575],
         [ 0.25112963],
         [ 0.32378721],
         [ 0.80609408],
         [ 0.50462742],
         [ 0.17387213],
         [ 0.73628828],
         [ 0.58532337],
         [ 0.77504869],
         [ 0.37150951],
         [ 0.27627649],
         [ 0.08270675],
         [ 0.89982819],
         [ 0.76429931],
         [ 0.73783665],
         [ 0.63860126],
         [ 0.6949181 ],
         [ 0.61718792],
         [ 0.43454732]],
 
        [[ 0.19703561],
         [ 0.28338804],
         [ 0.21542853],
         [ 0.30882231],
         [ 0.75217301],
         [ 0.49546333],
         [ 0.19662263],
         [ 0.67197438],
         [ 0.55567335],
         [ 0.69379954],
         [ 0.36072266],
         [ 0.2260859 ],
         [ 0.05570408],
         [ 0.81735341],
         [ 0.70250298],
         [ 0.68564142],
         [ 0.608668  ],
         [ 0.6426935 ],
         [ 0.58203575],
         [ 0.38378514]]]), array([[[ 0.01804299],
         [ 0.04146147],
         [ 0.02138639],
         [ 0.03717936],
         [ 0.01704771],
         [ 0.04196149],
         [ 0.0661469 ],
         [ 0.00508511],
         [ 0.00601873],
         [ 0.03311908],
         [ 0.03054498],
         [ 0.04046355],
         [ 0.02715158],
         [ 0.01701283],
         [ 0.01650383],
         [ 0.0503094 ],
         [ 0.0106592 ],
         [ 0.01148587],
         [ 0.00507764],
         [ 0.08385133]],
 
        [[ 0.04142519],
         [ 0.05473732],
         [ 0.02016875],
         [ 0.04380198],
         [ 0.01072625],
         [ 0.03947796],
         [ 0.05092493],
         [ 0.00504866],
         [ 0.00921266],
         [ 0.0250798 ],
         [ 0.0239555 ],
         [ 0.03729791],
         [ 0.05953256],
         [ 0.00476218],
         [ 0.00810568],
         [ 0.02752808],
         [ 0.01109128],
         [ 0.00617062],
         [ 0.01083765],
         [ 0.07096816]]]))
In [92]:
p = get_pricing(
    symbols(['SPY', 'XLP', 'XLE', 'XLK', 'XLY', 'XLU', 'XLB', 'XLF', 'XLV','XLI', 'MDY', 'EWA', 'EWC', 'EWG', 'EWH', 'EWJ', 'EWW', 'EWS', 'EWU', 'EZU', 'EFA']), 
    fields = 'price', 
    start_date = '2002-01-04',
    end_date = '2016-07-29', 
    frequency = 'daily',
)

p.fillna(method = 'ffill', inplace = True)

p = p / p.iloc[0, :]

p.plot()
Out[92]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f69ce145690>
In [93]:
H = genhurstw(p, [1, 2], 252.0)
H
Out[93]:
(array([[[ 0.28359118],
         [ 0.60771257],
         [ 0.67840775],
         [ 0.41168168],
         [ 0.43523717],
         [ 0.48194508],
         [ 0.38551136],
         [ 0.19192012],
         [ 0.44028804],
         [ 0.32700166],
         [ 0.41725853],
         [ 0.84826724],
         [ 0.83557886],
         [ 0.52629485],
         [ 0.46859352],
         [ 0.5480081 ],
         [ 0.72518117],
         [ 0.56329979],
         [ 0.54054456],
         [ 0.62891197],
         [ 0.64455918]],
 
        [[ 0.31339467],
         [ 0.61370551],
         [ 0.66625064],
         [ 0.44217391],
         [ 0.44559393],
         [ 0.44725972],
         [ 0.40090078],
         [ 0.21342443],
         [ 0.39990392],
         [ 0.33685634],
         [ 0.44855285],
         [ 0.79867051],
         [ 0.796728  ],
         [ 0.51710903],
         [ 0.46684058],
         [ 0.51627742],
         [ 0.70445076],
         [ 0.53311864],
         [ 0.47596093],
         [ 0.56879651],
         [ 0.59716814]]]), array([[[ 0.01651342],
         [ 0.04493403],
         [ 0.01788447],
         [ 0.01656134],
         [ 0.01505799],
         [ 0.01388153],
         [ 0.01651998],
         [ 0.04209255],
         [ 0.01111762],
         [ 0.01655091],
         [ 0.01305647],
         [ 0.0493337 ],
         [ 0.04591205],
         [ 0.02194719],
         [ 0.02688681],
         [ 0.00863654],
         [ 0.02978566],
         [ 0.01488892],
         [ 0.01969612],
         [ 0.01026265],
         [ 0.01046958]],
 
        [[ 0.01890506],
         [ 0.03048665],
         [ 0.03973295],
         [ 0.01440007],
         [ 0.00766343],
         [ 0.01614762],
         [ 0.02033869],
         [ 0.0414536 ],
         [ 0.00662586],
         [ 0.02843165],
         [ 0.00696983],
         [ 0.06499475],
         [ 0.06198722],
         [ 0.01838723],
         [ 0.02188691],
         [ 0.0120069 ],
         [ 0.05159391],
         [ 0.00776384],
         [ 0.02079485],
         [ 0.00759843],
         [ 0.01322262]]]))
In [94]:
((H[0][0, :, :] - 0.5) / H[1][0, :, :]).squeeze()
Out[94]:
array([-13.10502798,   2.39712666,   9.97556977,  -5.33280111,
        -4.30089404,  -1.30064323,  -6.9303118 ,  -7.31910641,
        -5.37093014, -10.45249969,  -6.33719929,   7.05941845,
         7.30916785,   1.1980963 ,  -1.16809995,   5.5587202 ,
         7.56005173,   4.25147058,   2.05850449,  12.56128056,  13.80754491])
In [95]:
((H[0][1, :, :] - 0.5) / H[1][1, :, :]).squeeze()
Out[95]:
array([ -9.87065752,   3.72968241,   4.18420118,  -4.01568188,
        -7.09944328,  -3.26613242,  -4.87244793,  -6.91316536,
       -15.10687982,  -5.73810006,  -7.38140614,   4.59530232,
         4.78692229,   0.93048471,  -1.51503413,   1.35567237,
         3.96269146,   4.26575334,  -1.15601085,   9.05403832,   7.34863087])
In [96]:
H = genhurstw(p, [1, 2], [252.0, 126.0, 63.0, 21.0])
H
Out[96]:
(array([[[ 0.28359118,  0.37484639,  0.58185415,  0.80839943],
         [ 0.60771257,  0.71592009,  0.79240608,  0.77187657],
         [ 0.67840775,  0.58088288,  0.35333013,  0.19037364],
         [ 0.41168168,  0.52032595,  0.68479956,  0.83740573],
         [ 0.43523717,  0.48810213,  0.58403658,  0.64777368],
         [ 0.48194508,  0.44892401,  0.4791276 ,  0.6701217 ],
         [ 0.38551136,  0.30585949,  0.19037133,  0.06405369],
         [ 0.19192012,  0.13582211,  0.14127607,  0.25632472],
         [ 0.44028804,  0.49958734,  0.58131823,  0.66417903],
         [ 0.32700166,  0.38218812,  0.53758612,  0.71215837],
         [ 0.41725853,  0.50061502,  0.65712733,  0.7735761 ],
         [ 0.84826724,  0.87007666,  0.76221957,  0.52406924],
         [ 0.83557886,  0.81364681,  0.65850969,  0.39821276],
         [ 0.52629485,  0.40653025,  0.20694837,  0.01796196],
         [ 0.46859352,  0.3462179 ,  0.0944814 , -0.18958484],
         [ 0.5480081 ,  0.53385386,  0.50025774,  0.51912869],
         [ 0.72518117,  0.62833124,  0.37247273,  0.10641109],
         [ 0.56329979,  0.48383937,  0.30166957,  0.14041452],
         [ 0.54054456,  0.49325644,  0.43113554,  0.41380632],
         [ 0.62891197,  0.58237205,  0.50247947,  0.43060466],
         [ 0.64455918,  0.59716035,  0.51037102,  0.4517032 ]],
 
        [[ 0.31339467,  0.37490205,  0.53479522,  0.71632254],
         [ 0.61370551,  0.66846157,  0.7162916 ,  0.75165925],
         [ 0.66625064,  0.6309779 ,  0.43956431,  0.19568151],
         [ 0.44217391,  0.51268338,  0.61076886,  0.70180927],
         [ 0.44559393,  0.48792527,  0.57489129,  0.64399328],
         [ 0.44725972,  0.41869966,  0.4566364 ,  0.65790722],
         [ 0.40090078,  0.31957732,  0.20941467,  0.06029538],
         [ 0.21342443,  0.15042062,  0.1475392 ,  0.22838184],
         [ 0.39990392,  0.44312899,  0.53121201,  0.6407944 ],
         [ 0.33685634,  0.36527635,  0.48785353,  0.62769423],
         [ 0.44855285,  0.49769787,  0.60483521,  0.69519646],
         [ 0.79867051,  0.8586455 ,  0.78029069,  0.53146881],
         [ 0.796728  ,  0.8075636 ,  0.66606878,  0.3738748 ],
         [ 0.51710903,  0.41964141,  0.2454347 , -0.00410502],
         [ 0.46684058,  0.37558891,  0.17060885, -0.18836555],
         [ 0.51627742,  0.49050141,  0.45781075,  0.51265673],
         [ 0.70445076,  0.68496083,  0.47698351,  0.1096025 ],
         [ 0.53311864,  0.47695814,  0.30489448,  0.09094616],
         [ 0.47596093,  0.42286584,  0.36097071,  0.37971825],
         [ 0.56879651,  0.5255028 ,  0.45505082,  0.4079316 ],
         [ 0.59716814,  0.55294706,  0.47000378,  0.43631658]]]),
 array([[[ 0.01651342,  0.05255813,  0.09391809,  0.02233372],
         [ 0.04493403,  0.03867159,  0.01141447,  0.05678293],
         [ 0.01788447,  0.06951123,  0.13851209,  0.02545477],
         [ 0.01656134,  0.05738703,  0.06891012,  0.02455302],
         [ 0.01505799,  0.0361168 ,  0.0521252 ,  0.0197731 ],
         [ 0.01388153,  0.01328625,  0.02144101,  0.03910326],
         [ 0.01651998,  0.01848531,  0.03337583,  0.01425627],
         [ 0.04209255,  0.01644447,  0.02201743,  0.03377341],
         [ 0.01111762,  0.02325907,  0.01821702,  0.01155979],
         [ 0.01655091,  0.04173491,  0.08269207,  0.02979878],
         [ 0.01305647,  0.05402053,  0.08198195,  0.01717553],
         [ 0.0493337 ,  0.02685462,  0.09584297,  0.0764772 ],
         [ 0.04591205,  0.03287422,  0.09391093,  0.05426361],
         [ 0.02194719,  0.06031326,  0.09326593,  0.02949318],
         [ 0.02688681,  0.06391782,  0.12097279,  0.05981474],
         [ 0.00863654,  0.00838124,  0.01295626,  0.0272451 ],
         [ 0.02978566,  0.0605959 ,  0.13456433,  0.03223515],
         [ 0.01488892,  0.063102  ,  0.10745458,  0.03240451],
         [ 0.01969612,  0.04523965,  0.05987892,  0.03899822],
         [ 0.01026265,  0.03969989,  0.05377941,  0.02523677],
         [ 0.01046958,  0.02625478,  0.03898045,  0.01539971]],
 
        [[ 0.01890506,  0.03899358,  0.0760624 ,  0.01938475],
         [ 0.03048665,  0.02331448,  0.01866688,  0.01854867],
         [ 0.03973295,  0.0335463 ,  0.12309734,  0.04288527],
         [ 0.01440007,  0.03879883,  0.0403374 ,  0.01561191],
         [ 0.00766343,  0.03027295,  0.04836495,  0.02093041],
         [ 0.01614762,  0.01331299,  0.0226146 ,  0.03975333],
         [ 0.02033869,  0.02244047,  0.0229842 ,  0.0124614 ],
         [ 0.0414536 ,  0.01845543,  0.02588258,  0.020384  ],
         [ 0.00662586,  0.0220592 ,  0.02622757,  0.01556033],
         [ 0.02843165,  0.02309595,  0.06474267,  0.02353422],
         [ 0.00696983,  0.03333061,  0.05447477,  0.01910374],
         [ 0.06499475,  0.02429816,  0.08806262,  0.07479917],
         [ 0.06198722,  0.0247291 ,  0.09713327,  0.05303755],
         [ 0.01838723,  0.05509036,  0.08881418,  0.07405775],
         [ 0.02188691,  0.05076475,  0.09784504,  0.09009876],
         [ 0.0120069 ,  0.01012683,  0.01252536,  0.04253035],
         [ 0.05159391,  0.02472459,  0.13023605,  0.06560908],
         [ 0.00776384,  0.0476703 ,  0.09775042,  0.02892381],
         [ 0.02079485,  0.04588673,  0.05796258,  0.02154081],
         [ 0.00759843,  0.03177733,  0.04298209,  0.01471338],
         [ 0.01322262,  0.02507256,  0.04165763,  0.01695887]]]))
In [97]:
((H[0][0, :, :] - 0.5) / H[1][0, :, :]).squeeze()
Out[97]:
array([[ -1.31050280e+01,  -2.38124190e+00,   8.71548311e-01,
          1.38086878e+01],
       [  2.39712666e+00,   5.58342926e+00,   2.56171478e+01,
          4.78799793e+00],
       [  9.97556977e+00,   1.16359452e+00,  -1.05889581e+00,
         -1.21637863e+01],
       [ -5.33280111e+00,   3.54190681e-01,   2.68174762e+00,
          1.37419243e+01],
       [ -4.30089404e+00,  -3.29427592e-01,   1.61220648e+00,
          7.47346952e+00],
       [ -1.30064323e+00,  -3.84427414e+00,  -9.73480415e-01,
          4.35057558e+00],
       [ -6.93031180e+00,  -1.05024239e+01,  -9.27703241e+00,
         -3.05792774e+01],
       [ -7.31910641e+00,  -2.21459239e+01,  -1.62927239e+01,
         -7.21500267e+00],
       [ -5.37093014e+00,  -1.77418191e-02,   4.46385983e+00,
          1.42026015e+01],
       [ -1.04524997e+01,  -2.82286162e+00,   4.54531099e-01,
          7.11969960e+00],
       [ -6.33719929e+00,   1.13849262e-02,   1.91660868e+00,
          1.59282480e+01],
       [  7.05941845e+00,   1.37807442e+01,   2.73592903e+00,
          3.14724365e-01],
       [  7.30916785e+00,   9.54081405e+00,   1.68787253e+00,
         -1.87579167e+00],
       [  1.19809630e+00,  -1.54973801e+00,  -3.14210805e+00,
         -1.63440523e+01],
       [ -1.16809995e+00,  -2.40593451e+00,  -3.35214727e+00,
         -1.15286776e+01],
       [  5.55872020e+00,   4.03924118e+00,   1.98928394e-02,
          7.02096750e-01],
       [  7.56005173e+00,   2.11782053e+00,  -9.47704928e-01,
         -1.22099303e+01],
       [  4.25147058e+00,  -2.56103309e-01,  -1.84571405e+00,
         -1.10967711e+01],
       [  2.05850449e+00,  -1.49063064e-01,  -1.15006187e+00,
         -2.21019505e+00],
       [  1.25612806e+01,   2.07486825e+00,   4.61044770e-02,
         -2.74977113e+00],
       [  1.38075449e+01,   3.70067326e+00,   2.66056824e-01,
         -3.13621484e+00]])
In [98]:
((H[0][1, :, :] - 0.5) / H[1][1, :, :]).squeeze()
Out[98]:
array([[ -9.87065752,  -3.20816822,   0.45745627,  11.15942106],
       [  3.72968241,   7.22562023,  11.58691933,  13.56751141],
       [  4.18420118,   3.9043917 ,  -0.49095857,  -7.09610823],
       [ -4.01568188,   0.32690121,   2.74605851,  12.92662599],
       [ -7.09944328,  -0.39886207,   1.54846193,   6.87962053],
       [ -3.26613242,  -6.10684407,  -1.91750475,   3.97217637],
       [ -4.87244793,  -8.04005848, -12.6428274 , -35.28533627],
       [ -6.91316536, -18.94182228, -13.61768199, -13.32506576],
       [-15.10687982,  -2.57810912,   1.19004609,   9.04829404],
       [ -5.73810006,  -5.83321505,  -0.18761146,   5.42589628],
       [ -7.38140614,  -0.06906955,   1.92447272,  10.21770866],
       [  4.59530232,  14.76019292,   3.18285664,   0.4207107 ],
       [  4.78692229,  12.43731352,   1.70970032,  -2.37803601],
       [  0.93048471,  -1.45866875,  -2.86626885,  -6.8069176 ],
       [ -1.51503413,  -2.45073746,  -3.36645719,  -7.64012203],
       [  1.35567237,  -0.93796274,  -3.36830533,   0.29759282],
       [  3.96269146,   7.48084642,  -0.17672903,  -5.95035768],
       [  4.26575334,  -0.48335871,  -1.99595589, -14.14245911],
       [ -1.15601085,  -1.68096865,  -2.39860412,  -5.58390149],
       [  9.05403832,   0.80254677,  -1.04576523,  -6.25746185],
       [  7.34863087,   2.11175369,  -0.72006544,  -3.75516791]])
In [ ]: