def mean_axis(self, T=False): tmplst = [] for obj in self.datlst: obj.mean_axis(T) tmplst += [obj.mean] self.mean = h4d.handle_4d() self.mean.set_multi(tmplst, T=True)
def trapezoid(self, abcs=0,lgtd=1, T=False): from modules.numerical_utils.basic_util import trapezoid tmplst = [] for obj in self.datlst: obj.trapezoid(abcs, lgtd, T) tmplst += [obj.trap] self.trap = h4d.handle_4d() self.trap.set_multi(tmplst, T=True)
def subtract(self, abcs=2, lgtd=1, absolute=True): self.hist.input() lsts = lstsplit(self.datlst,2) retlsts= [] for a,b in lsts: if a.T == False: a.transpose() if b.T == False: b.transpose() a_arrs = a.get_data() b_arrs = b.get_data() retlst = [[], [], []] for n, a_y in enumerate(a_arrs[lgtd]): flag = False a_tmpx = a_arrs[abcs][n][0] for i, b_y in enumerate(b_arrs[lgtd]): b_tmpx = b_arrs[abcs][i][0] if a_tmpx == b_tmpx: if absolute: a_y = abs(a_y) - abs(b_y) else: a_y -= b_y flag = True break else: continue if flag: a_x = a_arrs[abcs][n] a_z = a_arrs[3-abcs-lgtd][n] retlst[abcs] += [a_x] retlst[lgtd] += [a_y] retlst[3-abcs-lgtd] += [a_z] tmp = h4d.handle_4d() tmp.T = True tmp.dinput(array(retlst)) retlsts += [tmp] self.sbt = h4d.handle_5d(retlsts)
def prof_ave(self, abcs=2, lgtd=1, errb=False): if self.T == False: self.transpose() #self.sort(abcs) #arrs = self.sorted.get_data() arrs = self.get_data() retlst = [[], [], []] currx = nan retxarr = None retzarr = None for n, y in enumerate(arrs[lgtd]): tmpx = arrs[abcs][n][0] tmpxarr = arrs[abcs][n] tmpzarr = arrs[3-abcs-lgtd][n] if tmpx == currx: sumy += y i += 1 else: if type(retxarr) != type(None): retlst[abcs] += [retxarr] retlst[lgtd] += [sumy / i] retlst[3-abcs-lgtd] += [retzarr] retxarr = tmpxarr sumy = y retzarr = tmpzarr currx = tmpx i = 1 retlst[abcs] += [retxarr] retlst[lgtd] += [sumy / i] retlst[3-abcs-lgtd] += [retzarr] self.pave = h4d.handle_4d() self.pave.T = True self.pave.dinput(array(retlst))