我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用numpy.nanmax()。
def normalize_array (solution, prediction): ''' Use min and max of solution as scaling factors to normalize prediction, then threshold it to [0, 1]. Binarize solution to {0, 1}. This allows applying classification scores to all cases. In principle, this should not do anything to properly formatted classification inputs and outputs.''' # Binarize solution sol=np.ravel(solution) # convert to 1-d array maxi = np.nanmax((filter(lambda x: x != float('inf'), sol))) # Max except NaN and Inf mini = np.nanmin((filter(lambda x: x != float('-inf'), sol))) # Mini except NaN and Inf if maxi == mini: print('Warning, cannot normalize') return [solution, prediction] diff = maxi - mini mid = (maxi + mini)/2. new_solution = np.copy(solution) new_solution[solution>=mid] = 1 new_solution[solution<mid] = 0 # Normalize and threshold predictions (takes effect only if solution not in {0, 1}) new_prediction = (np.copy(prediction) - float(mini))/float(diff) new_prediction[new_prediction>1] = 1 # and if predictions exceed the bounds [0, 1] new_prediction[new_prediction<0] = 0 # Make probabilities smoother #new_prediction = np.power(new_prediction, (1./10)) return [new_solution, new_prediction]
def logscale_img(img_array, cap=255.0, coeff=1000.0): ''' This scales the image according to the relation: logscale_img = np.log(coeff*(img/max(img))+1)/np.log(coeff) Taken from the DS9 scaling algorithms page at: http://hea-www.harvard.edu/RD/ds9/ref/how.html According to that page: coeff = 1000.0 works well for optical images coeff = 100.0 works well for IR images ''' logscaled_img = np.log(coeff*img_array/np.nanmax(img_array)+1)/np.log(coeff) return cap*logscaled_img
def _learn_from_memories(self, replay_memories, q_network, global_step): if self._pre_learning_stage(global_step): loss = 0.0 return loss sampled_replay_memories = replay_memories.sample(sample_size=self.hyperparameters.REPLAY_MEMORIES_TRAIN_SAMPLE_SIZE, recent_memories_span=self.hyperparameters.REPLAY_MEMORIES_RECENT_SAMPLE_SPAN) consequent_states = [replay_memory.consequent_state for replay_memory in sampled_replay_memories] max_q_consequent_states = np.nanmax(q_network.forward_pass_batched(consequent_states), axis=1) train_bundles = [None] * self.hyperparameters.REPLAY_MEMORIES_TRAIN_SAMPLE_SIZE discount_factor = self.hyperparameters.Q_UPDATE_DISCOUNT_FACTOR for idx, replay_memory in enumerate(sampled_replay_memories): target_action_q_value = float(self._q_target(replay_memory=replay_memory, max_q_consequent_state=max_q_consequent_states[idx], discount_factor=discount_factor)) train_bundles[idx] = q_network.create_train_bundle(state=replay_memory.initial_state, action_index=replay_memory.action_index, target_action_q_value=target_action_q_value) loss = q_network.train(train_bundles, global_step - self.hyperparameters.REPLAY_MEMORIES_MINIMUM_SIZE_FOR_LEARNING) return loss
def _get_max_sigma(self, R): """Calculate maximum sigma of scanner RAS coordinates Parameters ---------- R : 2D array, with shape [n_voxel, n_dim] The coordinate matrix of fMRI data from one subject Returns ------- max_sigma : float The maximum sigma of scanner coordinates. """ max_sigma = 2.0 * math.pow(np.nanmax(np.std(R, axis=0)), 2) return max_sigma
def sanitize_array(array): """ Replace NaN and Inf (there should not be any!) :param array: :return: """ a = np.ravel(array) #maxi = np.nanmax((filter(lambda x: x != float('inf'), a)) # ) # Max except NaN and Inf #mini = np.nanmin((filter(lambda x: x != float('-inf'), a)) # ) # Mini except NaN and Inf maxi = np.nanmax(a[np.isfinite(a)]) mini = np.nanmin(a[np.isfinite(a)]) array[array == float('inf')] = maxi array[array == float('-inf')] = mini mid = (maxi + mini) / 2 array[np.isnan(array)] = mid return array
def check_move_neighborhood(self, mask): """Given a mask block, check if any central voxels meet move threshold. Checks whether a cube one move in each direction from the mask center contains any probabilities greater than the move threshold. Parameters ---------- mask : ndarray Block of mask probabilities, usually of the shape specified by the configured ``output_fov_shape``. Returns ------- bool """ ctr = np.asarray(mask.shape) // 2 neigh_min = ctr - self.MOVE_DELTA neigh_max = ctr + self.MOVE_DELTA + 1 neighborhood = mask[map(slice, neigh_min, neigh_max)] return np.nanmax(neighborhood) >= CONFIG.model.t_move
def evaluateToGT(self, Li, idxs): """ Evaluate the current estimate to a ground truth :param Li: current estimates :param idxs: idxs to evaluate :return: mean error, max error and MD score """ if not isinstance(idxs, numpy.ndarray): idxs = numpy.asarray(idxs) if self.gt3D is not None: gt3D_subset = self.gt3D[idxs] if Li.shape[0] == len(idxs): Li_subset = Li else: Li_subset = Li[idxs] mean_error = numpy.mean(numpy.sqrt(numpy.square((gt3D_subset - Li_subset.reshape(gt3D_subset.shape))*self.Di_scale[idxs, None, None]).sum(axis=2)), axis=1).mean() max_error = numpy.max(numpy.sqrt(numpy.square((gt3D_subset - Li_subset.reshape(gt3D_subset.shape))*self.Di_scale[idxs, None, None]).sum(axis=2))) vals = [(numpy.nanmax(numpy.sqrt(numpy.square((gt3D_subset - Li_subset.reshape(gt3D_subset.shape))*self.Di_scale[idxs, None, None]).sum(axis=2)), axis=1) <= j).sum() / float(gt3D_subset.shape[0]) for j in range(0, 80)] md_score = numpy.asarray(vals).sum() / float(80.) return mean_error, max_error, md_score else: return 0., 0., 0.
def min_max(self, mask=None): """Get the minimum and maximum value in this data. If a mask is provided we get the min and max value within the given mask. Infinities and NaN's are ignored by this algorithm. Args: mask (ndarray): the mask, we only include elements for which the mask > 0 Returns: tuple: (min, max) the minimum and maximum values """ if mask is not None: roi = mdt.create_roi(self.data, mask) return np.nanmin(roi), np.nanmax(roi) return np.nanmin(self.data), np.nanmax(self.data)
def test_extrema(): for nprocs in [1, 2, 4, 8]: ds = fake_random_ds(16, nprocs = nprocs, fields = ("density", "velocity_x", "velocity_y", "velocity_z")) for sp in [ds.sphere("c", (0.25, 'unitary')), ds.r[0.5,:,:]]: mi, ma = sp.quantities["Extrema"]("density") assert_equal(mi, np.nanmin(sp["density"])) assert_equal(ma, np.nanmax(sp["density"])) dd = ds.all_data() mi, ma = dd.quantities["Extrema"]("density") assert_equal(mi, np.nanmin(dd["density"])) assert_equal(ma, np.nanmax(dd["density"])) sp = ds.sphere("max", (0.25, 'unitary')) assert_equal(np.any(np.isnan(sp["radial_velocity"])), False) mi, ma = dd.quantities["Extrema"]("radial_velocity") assert_equal(mi, np.nanmin(dd["radial_velocity"])) assert_equal(ma, np.nanmax(dd["radial_velocity"]))
def mospat_plot_profile(f_Var, f_Height, c_Var, c_Net, c_Stn, t_ObsStationVerticalData): f_lat = t_ObsStationVerticalData[c_Net][c_Stn]['f_Lat'] f_lon = t_ObsStationVerticalData[c_Net][c_Stn]['f_Lon'] f_Elev = t_ObsStationVerticalData[c_Net][c_Stn]['f_Elevation'] f_hmax = 5000. if np.nanmax(f_Height) >= f_hmax: i_hmax = np.where(np.array(f_Height) <= np.array(f_hmax))[0][-1] f_Height = f_Height[:i_hmax] f_Var = f_Var[:i_hmax] c_var_label = ConfP.mospat_config_labels(c_Var) c_coord = ' [lat=%0.2f lon=%0.2f elev=%0.2f]' % (f_lat, f_lon, f_Elev) fig, ax = plt.subplots(figsize=(ConfP.f_PFSize[0], ConfP.f_PFSize[1])) line = ax.plot(f_Var, f_Height / 1000., color=ConfP.c_ObsColor[0], marker=ConfP.c_ObsMarker, linestyle=ConfP.c_ObsLine[0], label=c_Net) ax.set_title(c_Stn + c_coord) ax.set_ylabel('Height [km]') ax.set_xlabel(c_var_label) ax.set_ylim([0, np.nanmax(f_Height / 1000.)]) return fig, ax, line
def add_image(self, image): """ This function ... :param image: :return: """ # Create an animation to show the result of the source extraction step if self.max_frame_value is None: self.max_frame_value = np.nanmax(image) # Make a plot of the image buf = io.BytesIO() plotting.plot_box(image, path=buf, format="png", vmin=0.0, vmax=0.5*self.max_frame_value) buf.seek(0) im = imageio.imread(buf) buf.close() self.add_frame(im) # -----------------------------------------------------------------
def inpaint_biharmonic(frame, mask): """ This function ... :param frame: :param mask: :return: """ maximum = np.nanmax(frame) normalized = frame / maximum data = inpaint.inpaint_biharmonic(normalized, mask, multichannel=False) return data * maximum # ----------------------------------------------------------------- # TODO: create a better inpainting function. OpenCV has one, but this is a terrible dependency because it's hard to # install. Options: # - The below replace_nans function can be replaced by the more up to date version at: # https://github.com/OpenPIV/openpiv-python/blob/master/openpiv/src/lib.pyx # We may want to keep it in cython so that it runs faster. However, this original does not have the inverse distance # weighing as in the code below, but we can maybe add this ourselves in the cython code # - Write our own code. # SOLUTION: SEE FUNCTION ABOVE, GENERALLY, IT IS MUCH BETTER
def _calc(arr, out, ksize): gx = arr.shape[0] gy = arr.shape[1] for i in range(gx): for j in range(gy): xmn = i-ksize if xmn < 0: xmn = 0 xmx = i+ksize if xmx > gx: xmx = gx ymn = j-ksize if ymn < 0: ymn = 0 ymx = j+ksize if ymx > gy: ymx = gy out[i,j] = np.nanmax(arr[xmn:xmx,ymn:ymx])
def local_entropy(ocl_ctx, img, window_radius, num_bins=8): """ compute local entropy using a sliding window """ mf = cl.mem_flags cl_queue = cl.CommandQueue(ocl_ctx) img_np = np.array(img).astype(np.float32) img_buf = cl.Buffer(ocl_ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=img_np) min_val = np.nanmin(img) max_val = np.nanmax(img) entropy = np.zeros_like(img,dtype=np.float32) dest_buf = cl.Buffer(ocl_ctx, mf.WRITE_ONLY, entropy.nbytes) cl_dir = os.path.dirname(__file__) cl_filename = cl_dir + '/cl/local_entropy.cl' with open(cl_filename, 'r') as fd: clstr = fd.read() prg = cl.Program(ocl_ctx, clstr).build() prg.local_entropy(cl_queue, entropy.shape, None, img_buf, dest_buf, np.int32(img.shape[1]), np.int32(img.shape[0]), np.int32(window_radius), np.int32(num_bins), np.float32(min_val), np.float32(max_val)) cl.enqueue_copy(cl_queue, entropy, dest_buf) cl_queue.finish() return entropy
def minmax(X): """ Returns the MinMax Semivariance of sample X. X has to be an even-length array of point pairs like: x1, x1+h, x2, x2+h, ..., xn, xn+h. :param X: :return: """ _X = np.asarray(X) if any([isinstance(_, list) or isinstance(_, np.ndarray) for _ in _X]): return [minmax(_) for _ in _X] # check even if len(_X) % 2 > 0: raise ValueError('The sample does not have an even length: {}'.format(_X)) return (np.nanmax(_X) - np.nanmin(_X)) / np.nanmean(_X)
def test_FmtHeatmap__get_min_max_from_selected_cell_values_with_cache(): df_pn = df - 5. cache = {} fmt = pbtf.FmtHeatmap(cache=cache) res = fmt._get_min_max_from_selected_cell_values(None, None, df_pn) assert len(cache) == 1 and (None, None) in cache.keys() assert res == (np.nanmin(df_pn), np.nanmax(df_pn)) min_value, max_value = np.nanmin(df.loc[['a'], ['aa', 'bb']]), np.nanmax(df.loc[['a'], ['aa', 'bb']]) res = fmt._get_min_max_from_selected_cell_values(['a'], ['aa', 'bb'], df) assert len(cache) == 2 and (frozenset(['a']), frozenset(['aa', 'bb'])) in cache.keys() assert res == (min_value, max_value) res = fmt._get_min_max_from_selected_cell_values(['a'], ['aa', 'bb'], df) assert len(cache) == 2 and (frozenset(['a']), frozenset(['aa', 'bb'])) in cache.keys() assert res == (min_value, max_value)
def test_FmtHeatmap__get_min_max_from_selected_cell_values_without_cache(): df_pn = df - 5. cache = None fmt = pbtf.FmtHeatmap(cache=cache) res = fmt._get_min_max_from_selected_cell_values(None, None, df_pn) assert cache is None assert res == (np.nanmin(df_pn), np.nanmax(df_pn)) min_value, max_value = np.nanmin(df.loc[['a'], ['aa', 'bb']]), np.nanmax(df.loc[['a'], ['aa', 'bb']]) res = fmt._get_min_max_from_selected_cell_values(['a'], ['aa', 'bb'], df) assert cache is None assert res == (min_value, max_value) res = fmt._get_min_max_from_selected_cell_values(['a'], ['aa', 'bb'], df) assert cache is None assert res == (min_value, max_value)
def MostUnstable(self, t, p, q, td): #Determine psfc - 300mb minP = p[0] - 300. diff = p - minP ind = np.where(diff > 0) #Determine max theta-e vp = self.VaporPressure(td[ind]) t_lcl = self.TempLCL(t[ind]+273.15,td[ind]) thetae = self.theta[ind] * np.exp((3.376/t_lcl - 0.00254)*1000*q[ind]*(1. + 0.81 * q[ind])) #thetae = self.theta[ind] * np.exp((3036/t_lcl - 1.78)*(q[ind]/1000.)*(1. + (0.448/1000.) * q[ind])) indmax = np.where(thetae == np.nanmax(thetae)) #Define parcel self.t_parcel = t[indmax] self.q_parcel = q[indmax] self.theta_parcel = self.theta[indmax] self.td_parcel = td[indmax] self.p_parcel = p[0] #Lifted Parcel Temperature
def depth_callback(self,data): try: self.depth_image= self.br.imgmsg_to_cv2(data, desired_encoding="passthrough") except CvBridgeError as e: print(e) # print "depth" depth_min = np.nanmin(self.depth_image) depth_max = np.nanmax(self.depth_image) depth_img = self.depth_image.copy() depth_img[np.isnan(self.depth_image)] = depth_min depth_img = ((depth_img - depth_min) / (depth_max - depth_min) * 255).astype(np.uint8) cv2.imshow("Depth Image", depth_img) cv2.waitKey(5) # stream = open("/home/chentao/depth_test.yaml", "w") # data = {'img':depth_img.tolist()} # yaml.dump(data, stream)
def depth_callback(self,data): try: self.depth_image= self.br.imgmsg_to_cv2(data, desired_encoding="passthrough") except CvBridgeError as e: print(e) # print "depth" depth_min = np.nanmin(self.depth_image) depth_max = np.nanmax(self.depth_image) depth_img = self.depth_image.copy() depth_img[np.isnan(self.depth_image)] = depth_min depth_img = ((depth_img - depth_min) / (depth_max - depth_min) * 255).astype(np.uint8) cv2.imshow("Depth Image", depth_img) cv2.waitKey(5)
def basemap_raster_mercator(lon, lat, grid, cmin, cmax, cmap_name): # longitude/latitude extent lons = (np.amin(lon), np.amax(lon)) lats = (np.amin(lat), np.amax(lat)) # construct spherical mercator projection for region of interest m = Basemap(projection='merc',llcrnrlat=lats[0], urcrnrlat=lats[1], llcrnrlon=lons[0],urcrnrlon=lons[1]) #vmin,vmax = np.nanmin(grid),np.nanmax(grid) masked_grid = np.ma.array(grid,mask=np.isnan(grid)) fig = plt.figure(frameon=False,figsize=(12,8),dpi=72) plt.axis('off') cmap = mpl.cm.get_cmap(cmap_name) m.pcolormesh(lon,lat,masked_grid,latlon=True,cmap=cmap,vmin=cmin,vmax=cmax) str_io = StringIO.StringIO() plt.savefig(str_io,bbox_inches='tight',format='png',pad_inches=0,transparent=True) plt.close() numpy_bounds = [ (lons[0],lats[0]),(lons[1],lats[0]),(lons[1],lats[1]),(lons[0],lats[1]) ] float_bounds = [ (float(x), float(y)) for x,y in numpy_bounds ] return str_io.getvalue(), float_bounds
def basemap_barbs_mercator(u,v,lat,lon): # lon/lat extents lons = (np.amin(lon), np.amax(lon)) lats = (np.amin(lat), np.amax(lat)) # construct spherical mercator projection for region of interest m = Basemap(projection='merc',llcrnrlat=lats[0], urcrnrlat=lats[1], llcrnrlon=lons[0],urcrnrlon=lons[1]) #vmin,vmax = np.nanmin(grid),np.nanmax(grid) fig = plt.figure(frameon=False,figsize=(12,8),dpi=72*4) plt.axis('off') m.quiver(lon,lat,u,v,latlon=True) str_io = StringIO.StringIO() plt.savefig(str_io,bbox_inches='tight',format='png',pad_inches=0,transparent=True) plt.close() numpy_bounds = [ (lons[0],lats[0]),(lons[1],lats[0]),(lons[1],lats[1]),(lons[0],lats[1]) ] float_bounds = [ (float(x), float(y)) for x,y in numpy_bounds ] return str_io.getvalue(), float_bounds
def _check_vals(self, vals): """TODO Basic check of target elements (sequence of polygons). """ if self.zdata is not None: lyr = self.zdata.src.ds.GetLayerByName('src') lyr.ResetReading() lyr.SetSpatialFilter(None) src_len = lyr.GetFeatureCount() assert len(vals) == src_len, \ "Argument vals must be of length %d" % src_len else: imax = 0 for i in self.ix: mx = np.nanmax(i) if imax < mx: imax = mx assert len(vals) > imax, \ "Argument vals cannot be subscripted by given index values" return vals
def _test_covariance_visual(self): cov = self.sc.covariance cov.epsilon = .02 cov.subsampling = 10 # l = self.sc.quadtree.leaves[0] d = [] d.append(('Full', cov._calcCovarianceMatrix(method='full', nthreads=0))) d.append(('Focal', cov._calcCovarianceMatrix(method='focal'))) fig, _ = plt.subplots(1, len(d)) for i, (title, mat) in enumerate(d): print '%s Max %f' % (title, num.nanmax(mat)), mat.shape fig.axes[i].imshow(mat) fig.axes[i].set_title(title) plt.show()
def setSymColormap(self): cmap = {'ticks': [[0, (106, 0, 31, 255)], [.5, (255, 255, 255, 255)], [1., (8, 54, 104, 255)]], 'mode': 'rgb'} cmap = {'ticks': [[0, (172, 56, 56)], [.5, (255, 255, 255)], [1., (51, 53, 120)]], 'mode': 'rgb'} lvl_min = lvl_max = 0 for plot in self.plots: plt_min = num.nanmin(plot.data) plt_max = num.nanmax(plot.data) lvl_max = lvl_max if plt_max < lvl_max else plt_max lvl_min = lvl_min if plt_min > lvl_min else plt_min abs_range = max(abs(lvl_min), abs(lvl_max)) self.gradient.restoreState(cmap) self.setLevels(-abs_range, abs_range)
def setSymColormap(self): cmap = {'ticks': [[0., (0, 0, 0, 255)], [1e-3, (106, 0, 31, 255)], [.5, (255, 255, 255, 255)], [1., (8, 54, 104, 255)]], 'mode': 'rgb'} cmap = {'ticks': [[0., (0, 0, 0)], [1e-3, (172, 56, 56)], [.5, (255, 255, 255)], [1., (51, 53, 120)]], 'mode': 'rgb'} lvl_min = num.nanmin(self._plot.data) lvl_max = num.nanmax(self._plot.data) abs_range = max(abs(lvl_min), abs(lvl_max)) self.gradient.restoreState(cmap) self.setLevels(-abs_range, abs_range)
def setArray(self, incomingArray, copy=False): """ You can use the self.array directly but if you want to copy from one array into a raster we suggest you do it this way :param incomingArray: :return: """ masked = isinstance(self.array, np.ma.MaskedArray) if copy: if masked: self.array = np.ma.copy(incomingArray) else: self.array = np.ma.masked_invalid(incomingArray, copy=True) else: if masked: self.array = incomingArray else: self.array = np.ma.masked_invalid(incomingArray) self.rows = self.array.shape[0] self.cols = self.array.shape[1] self.min = np.nanmin(self.array) self.max = np.nanmax(self.array)
def _choose_cov(self, cov_type, **cov_config): """Return covariance estimator reformat clusters""" cov_est = self._cov_estimators[cov_type] if cov_type != 'clustered': return cov_est, cov_config cov_config_upd = {k: v for k, v in cov_config.items()} clusters = cov_config.get('clusters', None) if clusters is not None: clusters = self.reformat_clusters(clusters).copy() cluster_max = np.nanmax(clusters.values3d, axis=1) delta = cluster_max - np.nanmin(clusters.values3d, axis=1) if np.any(delta != 0): raise ValueError('clusters must not vary within an entity') index = clusters.panel.minor_axis reindex = clusters.entities clusters = pd.DataFrame(cluster_max.T, index=index, columns=clusters.vars) clusters = clusters.loc[reindex].astype(np.int64) cov_config_upd['clusters'] = clusters return cov_est, cov_config_upd
def get_bbox(self): """ Returns boundary box for the coordinates. Useful for setting up the map extent for plotting on a map. :return tuple: corner coordinates (llcrnrlat, urcrnrlat, llcrnrlon, urcrnrlon) """ x, y, z = zip(self) llcrnrlat = np.nanmin(y) urcrnrlat = np.nanmax(y) llcrnrlon = np.nanmin(x) urcrnrlon = np.nanmax(x) return (llcrnrlat, urcrnrlat, llcrnrlon, urcrnrlon)
def plot_counts(ax, data): """ """ hourloc = mpl.dates.HourLocator() xtickformat = mpl.dates.DateFormatter('%H:%M') ax.xaxis.set_major_formatter(xtickformat) ax.xaxis.set_major_locator(hourloc) cnts = data['CPC378_counts'][:] ix = np.where(data['WOW_IND'][:].ravel() == 1)[0] cnts[ix,:] = np.nan ax.plot_date(data['mpl_timestamp'][:].ravel(), cnts.ravel(), '-') ax.set_ylim((0, np.nanmax(cnts))) ax.set_ylabel('#') ax.set_xlabel('Time (utc)') ax.text(0.05, 0.98, 'CPC', axes_title_style, transform=ax.transAxes) return ax
def visRenderedViews(self,outDir,nViews=0): pt = Imath.PixelType(Imath.PixelType.FLOAT) renders = sorted(glob.glob(outDir + '/render_*.png')) if (nViews > 0) and (nViews < len(renders)): renders = [renders[ix] for ix in range(nViews)] for render in renders: print render rgbIm = scipy.misc.imread(render) dMap = loadDepth(render.replace('render_','depth_')) plt.figure(figsize=(12,6)) plt.subplot(121) plt.imshow(rgbIm) dMap[dMap>=10] = np.nan plt.subplot(122) plt.imshow(dMap) print(np.nanmax(dMap),np.nanmin(dMap)) plt.show()
def find_bbox(t): # given a table t find the bounding box of the ellipses for the regions boxes=[] for r in t: a=r['Maj']/scale b=r['Min']/scale th=(r['PA']+90)*np.pi/180.0 dx=np.sqrt((a*np.cos(th))**2.0+(b*np.sin(th))**2.0) dy=np.sqrt((a*np.sin(th))**2.0+(b*np.cos(th))**2.0) boxes.append([r['RA']-dx/np.cos(r['DEC']*np.pi/180.0), r['RA']+dx/np.cos(r['DEC']*np.pi/180.0), r['DEC']-dy, r['DEC']+dy]) boxes=np.array(boxes) minra=np.nanmin(boxes[:,0]) maxra=np.nanmax(boxes[:,1]) mindec=np.nanmin(boxes[:,2]) maxdec=np.nanmax(boxes[:,3]) ra=np.mean((minra,maxra)) dec=np.mean((mindec,maxdec)) size=1.2*3600.0*np.max((maxdec-mindec,(maxra-minra)*np.cos(dec*np.pi/180.0))) return ra,dec,size
def VshGR(GRlog,itmin,itmax): # Usando o perfil GR GRmin = np.nanmin(GRlog) GRminInt = GRlog[(GRlog<=(GRmin*(1+itmin/100)))] # Valores do GRmin GRminm = np.mean(GRminInt) # Media dos valores de GRmin GRmax = np.nanmax(GRlog) GRmaxInt = GRlog[(GRlog>=(GRmax*(1-itmax/100)))] # Valores de GRmax GRmaxm = np.mean(GRmaxInt) # Media dos valores de GRmax Vsh = 100*(GRlog-GRminm)/(GRmaxm-GRminm) # Volume de argila for i in range(len(Vsh)): if (Vsh[i] > 100): Vsh[i] = 100 elif (Vsh[i] < 0): Vsh[i] = 0 print GRmin, GRminm, GRmax, GRmaxm, np.nanmin(Vsh), np.nanmax(Vsh) return Vsh
def sanitize_array(array): ''' Replace NaN and Inf (there should not be any!)''' a=np.ravel(array) maxi = np.nanmax((filter(lambda x: x != float('inf'), a))) # Max except NaN and Inf mini = np.nanmin((filter(lambda x: x != float('-inf'), a))) # Mini except NaN and Inf array[array==float('inf')]=maxi array[array==float('-inf')]=mini mid = (maxi + mini)/2 array[np.isnan(array)]=mid return array
def frame_to_series(self, field, frame, columns=None): """ Convert a frame with a DatetimeIndex and sid columns into a series with a sid index, using the aggregator defined by the given field. """ if isinstance(frame, pd.DataFrame): columns = frame.columns frame = frame.values if not len(frame): return pd.Series( data=(0 if field == 'volume' else np.nan), index=columns, ).values if field in ['price', 'close']: # shortcircuit for full last row vals = frame[-1] if np.all(~np.isnan(vals)): return vals return ffill(frame)[-1] elif field == 'open': return bfill(frame)[0] elif field == 'volume': return np.nansum(frame, axis=0) elif field == 'high': return np.nanmax(frame, axis=0) elif field == 'low': return np.nanmin(frame, axis=0) else: raise ValueError("Unknown field {}".format(field))
def quickMinMax(self, data): """ Estimate the min/max values of *data* by subsampling. """ while data.size > 1e6: ax = np.argmax(data.shape) sl = [slice(None)] * data.ndim sl[ax] = slice(None, None, 2) data = data[sl] return nanmin(data), nanmax(data)
def dataBounds(self, ax, frac=1.0, orthoRange=None): if frac >= 1.0 and orthoRange is None and self.bounds[ax] is not None: return self.bounds[ax] #self.prepareGeometryChange() if self.data is None or len(self.data) == 0: return (None, None) if ax == 0: d = self.data['x'] d2 = self.data['y'] elif ax == 1: d = self.data['y'] d2 = self.data['x'] if orthoRange is not None: mask = (d2 >= orthoRange[0]) * (d2 <= orthoRange[1]) d = d[mask] d2 = d2[mask] if frac >= 1.0: self.bounds[ax] = (np.nanmin(d) - self._maxSpotWidth*0.7072, np.nanmax(d) + self._maxSpotWidth*0.7072) return self.bounds[ax] elif frac <= 0.0: raise Exception("Value for parameter 'frac' must be > 0. (got %s)" % str(frac)) else: mask = np.isfinite(d) d = d[mask] return np.percentile(d, [50 * (1 - frac), 50 * (1 + frac)])
def getMaxError(self): """ get max error over all joints :return: maximum error """ return numpy.nanmax(numpy.sqrt(numpy.square(self.gt - self.joints).sum(axis=2)))
def getMaxErrorOverSeq(self): """ get max error over all joints for each image of sequence :return: maximum error """ return numpy.nanmax(numpy.sqrt(numpy.square(self.gt - self.joints).sum(axis=2)), axis=1)
def getJointMaxError(self, jointID): """ get maximum error of one joint :param jointID: joint ID :return: maximum joint error """ return numpy.nanmax(numpy.sqrt(numpy.square(self.gt[:, jointID, :] - self.joints[:, jointID, :]).sum(axis=1)))
def getNumFramesWithinMaxDist(self, dist): """ calculate the number of frames where the maximum difference of a joint is within dist mm :param dist: distance between joint and GT :return: number of frames """ return (numpy.nanmax(numpy.sqrt(numpy.square(self.gt - self.joints).sum(axis=2)), axis=1) <= dist).sum()
def getMDscore(self, dist): """ calculate the max dist score, ie. MD=\int_0^d{\frac{|F<x|}{|F|}dx = \sum :param dist: distance between joint and GT :return: score value [0-1] """ vals = [(numpy.nanmax(numpy.sqrt(numpy.square(self.gt - self.joints).sum(axis=2)), axis=1) <= j).sum() / float(self.joints.shape[0]) for j in range(0, dist)] return numpy.asarray(vals).sum() / float(dist)
def normalize_data(self, values): normalized_values = copy.deepcopy(values) data = np.array(values, dtype=float)[:, 0:5] data_min = np.nanmin(data, 0) data_max = np.nanmax(data, 0) print data_min print data_max for i in range(len(values)): for j in range(5): normalized_values[i][j] = np.abs(values[i][j] - data_min[j]) / np.abs(data_max[j] - data_min[j]) return normalized_values, data_min, data_max
def image_as_uint8(im): """ Convert the given image to uint8 If the dtype is already uint8, it is returned as-is. If the image is float, and all values are between 0 and 1, the values are multiplied by 255. In all other situations, the values are scaled such that the minimum value becomes 0 and the maximum value becomes 255. """ if not isinstance(im, np.ndarray): raise ValueError('image must be a numpy array') dtype_str = str(im.dtype) # Already uint8? if dtype_str == 'uint8': return im # Handle float mi, ma = np.nanmin(im), np.nanmax(im) if dtype_str.startswith('float'): if mi >= 0 and ma <= 1: mi, ma = 0, 1 # Now make float copy before we scale im = im.astype('float32') # Scale the values between 0 and 255 if np.isfinite(mi) and np.isfinite(ma): if mi: im -= mi if ma != 255: im *= 255.0 / (ma - mi) assert np.nanmax(im) < 256 return im.astype(np.uint8) # currently not used ... the only use it to easly provide the global meta info