def total_correlation(Xs): pmf = [] Xs = np.asarray(Xs) for stock in range(len(Xs)): s = pd.Series(Xs[stock]) b = (s.groupby(s).transform('count') / len(s)).values pmf.append(b) pmf = np.asarray(pmf) pmf /= pmf.sum() custm = stats.rv_discrete(name='custm', values=(Xs, pmf)) d = Distribution.from_ndarray(pmf) t = T(d) return t
label='LEFT') h_r = ax.hist(seg_t2_r.flatten(), 100, range=(0, 100), histtype=u'step', alpha=1, lw=2, label='RIGHT') ax.set_xlabel('T2 (ms)') ax.set_ylabel('# COUNTS') ax.legend() plt.draw() plt.savefig(join(joint_save_folder, 'T2_hist.png'), format='png', dpi=300) # Compute Jensen-Shannon divergence pmf_l = np.divide(h_l[0], np.sum(h_l[0])) pmf_r = np.divide(h_r[0], np.sum(h_r[0])) d_l = Distribution.from_ndarray(pmf_l) d_r = Distribution.from_ndarray(pmf_r) JSD = jensen_shannon_divergence([d_l, d_r]) pd_header = ['#counts', 'JS_Divergence'] pd_list = [[np.sum(h_l[0]), JSD], [np.sum(h_r[0]), JSD]] df = pd.DataFrame(pd_list, columns=pd_header) df.to_csv(join(joint_save_folder, 'histogram_calculation.csv'))
mat = np.loadtxt('/Users/jk/Desktop/KPAGL/freqs.txt') output = np.zeros((16, 26)) for i in range(16): print(i) freq = mat[i, ] aa = freq / np.sum(freq) dat = np.reshape(aa, (4, 4, 3)) dist1 = Distribution.from_ndarray(dat) p = PID_BROJA(dist1, [[0], [1]], [2]) output[i, 0:4] = [ p.get_partial(n) for n in sorted(p._lattice, key=dit.pid.lattice.sort_key(p._lattice)) ] p = PID_WB(dist1, [[0], [1]], [2]) output[i, 4:8] = [ p.get_partial(n) for n in sorted(p._lattice, key=dit.pid.lattice.sort_key(p._lattice)) ]