我们从Python开源项目中,提取了以下39个代码示例,用于说明如何使用numpy.arcsinh()。
def test_branch_cuts(self): # check branch cuts and continuity on them yield _check_branch_cut, np.log, -0.5, 1j, 1, -1, True yield _check_branch_cut, np.log2, -0.5, 1j, 1, -1, True yield _check_branch_cut, np.log10, -0.5, 1j, 1, -1, True yield _check_branch_cut, np.log1p, -1.5, 1j, 1, -1, True yield _check_branch_cut, np.sqrt, -0.5, 1j, 1, -1, True yield _check_branch_cut, np.arcsin, [ -2, 2], [1j, 1j], 1, -1, True yield _check_branch_cut, np.arccos, [ -2, 2], [1j, 1j], 1, -1, True yield _check_branch_cut, np.arctan, [0-2j, 2j], [1, 1], -1, 1, True yield _check_branch_cut, np.arcsinh, [0-2j, 2j], [1, 1], -1, 1, True yield _check_branch_cut, np.arccosh, [ -1, 0.5], [1j, 1j], 1, -1, True yield _check_branch_cut, np.arctanh, [ -2, 2], [1j, 1j], 1, -1, True # check against bogus branch cuts: assert continuity between quadrants yield _check_branch_cut, np.arcsin, [0-2j, 2j], [ 1, 1], 1, 1 yield _check_branch_cut, np.arccos, [0-2j, 2j], [ 1, 1], 1, 1 yield _check_branch_cut, np.arctan, [ -2, 2], [1j, 1j], 1, 1 yield _check_branch_cut, np.arcsinh, [ -2, 2, 0], [1j, 1j, 1], 1, 1 yield _check_branch_cut, np.arccosh, [0-2j, 2j, 2], [1, 1, 1j], 1, 1 yield _check_branch_cut, np.arctanh, [0-2j, 2j, 0], [1, 1, 1j], 1, 1
def test_branch_cuts_complex64(self): # check branch cuts and continuity on them yield _check_branch_cut, np.log, -0.5, 1j, 1, -1, True, np.complex64 yield _check_branch_cut, np.log2, -0.5, 1j, 1, -1, True, np.complex64 yield _check_branch_cut, np.log10, -0.5, 1j, 1, -1, True, np.complex64 yield _check_branch_cut, np.log1p, -1.5, 1j, 1, -1, True, np.complex64 yield _check_branch_cut, np.sqrt, -0.5, 1j, 1, -1, True, np.complex64 yield _check_branch_cut, np.arcsin, [ -2, 2], [1j, 1j], 1, -1, True, np.complex64 yield _check_branch_cut, np.arccos, [ -2, 2], [1j, 1j], 1, -1, True, np.complex64 yield _check_branch_cut, np.arctan, [0-2j, 2j], [1, 1], -1, 1, True, np.complex64 yield _check_branch_cut, np.arcsinh, [0-2j, 2j], [1, 1], -1, 1, True, np.complex64 yield _check_branch_cut, np.arccosh, [ -1, 0.5], [1j, 1j], 1, -1, True, np.complex64 yield _check_branch_cut, np.arctanh, [ -2, 2], [1j, 1j], 1, -1, True, np.complex64 # check against bogus branch cuts: assert continuity between quadrants yield _check_branch_cut, np.arcsin, [0-2j, 2j], [ 1, 1], 1, 1, False, np.complex64 yield _check_branch_cut, np.arccos, [0-2j, 2j], [ 1, 1], 1, 1, False, np.complex64 yield _check_branch_cut, np.arctan, [ -2, 2], [1j, 1j], 1, 1, False, np.complex64 yield _check_branch_cut, np.arcsinh, [ -2, 2, 0], [1j, 1j, 1], 1, 1, False, np.complex64 yield _check_branch_cut, np.arccosh, [0-2j, 2j, 2], [1, 1, 1j], 1, 1, False, np.complex64 yield _check_branch_cut, np.arctanh, [0-2j, 2j, 0], [1, 1, 1j], 1, 1, False, np.complex64
def test_against_cmath(self): import cmath points = [-1-1j, -1+1j, +1-1j, +1+1j] name_map = {'arcsin': 'asin', 'arccos': 'acos', 'arctan': 'atan', 'arcsinh': 'asinh', 'arccosh': 'acosh', 'arctanh': 'atanh'} atol = 4*np.finfo(np.complex).eps for func in self.funcs: fname = func.__name__.split('.')[-1] cname = name_map.get(fname, fname) try: cfunc = getattr(cmath, cname) except AttributeError: continue for p in points: a = complex(func(np.complex_(p))) b = cfunc(p) assert_(abs(a - b) < atol, "%s %s: %s; cmath: %s" % (fname, p, a, b))
def age(self, z): """ Cosmic time (age) at redshift z. Parameters ---------- z : `~numpy.ndarray` Redshift Returns ------- age : `~numpy.ndarray` Age of the universe (cosmic time) at the given redshift. Unit: [Gyr] References: Ref.[thomas2000],Eq.(18) """ z = np.asarray(z) t_H = self.hubble_time t = ((2*t_H / 3 / np.sqrt(1-self.Om0)) * np.arcsinh(np.sqrt((1/self.Om0 - 1) / (1+z)**3))) return t
def asinh(v): return v.__class__(numpy.arcsinh(v))
def age(R): H0 = 2.3e-18 OmegaM0 = 0.27 yr = 365.25 * 24 * 3600 T0 = 13.7e9 return T0 - (2./3./H0/np.sqrt(1-OmegaM0)) * np.arcsinh(np.sqrt( (1/OmegaM0-1)*R**3 )) / yr # return the radius of a particle (in kpc) given its mass (in Msun) and density (in Msun/kpc3)
def age(R): H0 = 2.3e-18 OmegaM0 = 0.27 yr = 365.25 * 24 * 3600 T0 = 13.7e9 return T0 - (2./3./H0/np.sqrt(1-OmegaM0)) * np.arcsinh(np.sqrt( (1/OmegaM0-1)*R**3 )) / yr ## This private helper function returns the periodicity corrected coordinates input as a (N,3) # numpy array, and takes the box size (in units of crds) and a test length in units of box size
def test_quadratic(self): self._scipy_skip() nodes = np.asfortranarray([ [0.0, 0.0], [1.0, 2.0], [2.0, 0.0], ]) length = self._call_function_under_test(nodes) # 2 INT_0^1 SQRT(16 s^2 - 16 s + 5) ds = SQRT(5) + sinh^{-1}(2)/2 arcs2 = np.arcsinh(2.0) # pylint: disable=no-member expected = np.sqrt(5.0) + 0.5 * arcs2 local_eps = abs(SPACING(expected)) self.assertAlmostEqual(length, expected, delta=local_eps)
def HybridMag(flux_parameter, band, index=None): """Returns a hybrid property describing an asinh magnitude. ``flux_parameter`` must be a column with a flux in nanomaggies. ``band`` is the band name, to determine the softening parameter. If ``flux_parameter`` is and array, ``index`` defines the position of ``band`` within the array. """ @hybrid_property def hybridMag(self): if index is not None: flux = getattr(self, flux_parameter)[index] else: flux = getattr(self, flux_parameter) flux *= 1e-9 # From nanomaggies to maggies bb_band = bb[band] asinh_mag = -2.5 / np.log(10) * (np.arcsinh(flux / (2. * bb_band)) + np.log(bb_band)) return asinh_mag @hybridMag.expression def hybridMag(cls): if index is not None: # It needs to be index + 1 because Postgresql arrays are 1-indexed. flux = getattr(cls, flux_parameter)[index + 1] else: flux = getattr(cls, flux_parameter) flux *= 1e-9 bb_band = bb[band] xx = flux / (2. * bb_band) asinh_mag = (-2.5 / func.log(10) * (func.log(xx + func.sqrt(func.pow(xx, 2) + 1)) + func.log(bb_band))) return cast(asinh_mag, Float) return hybridMag
def compute_psi(b2, l_eff_a, f_ch, channel_index, interfering_index, rs): """ compute_psi computes the psi coefficient of the analytical formula. :param b2: Fiber dispersion coefficient in ps/THz/km. Scalar :param l_eff_a: Asymptotic effective length in km. Scalar :param f_ch: Baseband channels center frequencies in THz. Array of size 1xNch :param channel_index: Index of the channel. Scalar :param interfering_index: Index of the interfering signal. Scalar :param rs: Channels' Symbol Rates in TBaud. Array of size 1xNch :return: psi: the coefficient """ b2 = np.abs(b2) if channel_index == interfering_index: # The signal interfere with itself rs_sig = rs[channel_index] psi = np.arcsinh(0.5 * np.pi ** 2 * l_eff_a * b2 * rs_sig ** 2) else: f_sig = f_ch[channel_index] rs_sig = rs[channel_index] f_int = f_ch[interfering_index] rs_int = rs[interfering_index] del_f = f_sig - f_int psi = np.arcsinh(np.pi ** 2 * l_eff_a * b2 * rs_sig * (del_f + 0.5 * rs_int)) psi -= np.arcsinh(np.pi ** 2 * l_eff_a * b2 * rs_sig * (del_f - 0.5 * rs_int)) return psi
def _latlon_to_tile(lat, lon, zoom): n = 2 ** zoom x = n * (lon + 180) / 360. y = n * (1 - (np.arcsinh(np.tan(np.deg2rad(lat))) / np.pi)) / 2. return int(x), int(y)
def asinhmag(flux, fluxerr, m0 = 22.5, f0=1.0, b=0.01): """ Implements http://ssg.astro.washington.edu/elsst/opsim.shtml?lightcurve_mags """ mag = m0 -(2.5/np.log(10.)) * ( np.arcsinh( flux / (f0 * 2.0 * b)) + np.log(b) ) magplu = m0 -(2.5/np.log(10.)) * ( np.arcsinh( (flux+fluxerr) / (f0 * 2.0 * b)) + np.log(b) ) magmin = m0 -(2.5/np.log(10.)) * ( np.arcsinh( (flux-fluxerr) / (f0 * 2.0 * b)) + np.log(b) ) magerr = 0.5*(magmin - magplu) return (mag, magerr)
def adjust(origin): img = origin.copy() img[img>4] = 4 img[img < -0.1] = -0.1 MIN = np.min(img) MAX = np.max(img) img = np.arcsinh(10*(img - MIN)/(MAX-MIN))/3 return img
def hz2bark(self, f): """ Method to compute Bark from Hz. Args : f : (ndarray) Array containing frequencies in Hz. Returns : Brk : (ndarray) Array containing Bark scaled values. """ Brk = 6. * np.arcsinh(f/600.) # Method from RASTA model and computable inverse function. #Brk = 13. * np.arctan(0.76*f/1000.) + 3.5 * np.arctan(f / (1000 * 7.5)) ** 2. return Brk
def test_numpy_method(): # This type of code is used frequently by PyMC3 users x = tt.dmatrix('x') data = np.random.rand(5, 5) x.tag.test_value = data for fct in [np.arccos, np.arccosh, np.arcsin, np.arcsinh, np.arctan, np.arctanh, np.ceil, np.cos, np.cosh, np.deg2rad, np.exp, np.exp2, np.expm1, np.floor, np.log, np.log10, np.log1p, np.log2, np.rad2deg, np.sin, np.sinh, np.sqrt, np.tan, np.tanh, np.trunc]: y = fct(x) f = theano.function([x], y) utt.assert_allclose(np.nan_to_num(f(data)), np.nan_to_num(fct(data)))
def impl(self, x): # If x is an int8 or uint8, numpy.arcsinh will compute the result in # half-precision (float16), where we want float32. x_dtype = str(getattr(x, 'dtype', '')) if x_dtype in ('int8', 'uint8'): return numpy.arcsinh(x, sig='f') return numpy.arcsinh(x)
def arcsinh(inp): if isinstance(inp, ooarray) and inp.dtype == object: return ooarray([arcsinh(elem) for elem in inp]) if not isinstance(inp, oofun): return np.arcsinh(inp) # TODO: move it outside of arcsinh definition def interval(arg_inf, arg_sup): raise 'interval for arcsinh is unimplemented yet' r = oofun(np.arcsinh, inp, d = lambda x: FDmisc.Diag(1.0/sqrt(x**2 + 1)), vectorized = True, interval = interval) return r
def t_from_z(self, z): """ Compute the age of the Universe from redshift. This is based on Enzo's CosmologyComputeTimeFromRedshift.C, but altered to use physical units. Similar to hubble_time, but using an analytical function. Parameters ---------- z : float Redshift. Examples -------- >>> from yt.utilities.cosmology import Cosmology >>> co = Cosmology() >>> print(co.t_from_z(0.).in_units("Gyr")) See Also -------- hubble_time """ omega_curvature = 1.0 - self.omega_matter - self.omega_lambda # 1) For a flat universe with omega_matter = 1, things are easy. if ((self.omega_matter == 1.0) and (self.omega_lambda == 0.0)): t0 = 2.0/3.0/np.power(1+z, 1.5) # 2) For omega_matter < 1 and omega_lambda == 0 see # Peebles 1993, eq. 13-3, 13-10. if ((self.omega_matter < 1) and (self.omega_lambda == 0)): eta = np.arccosh(1 + 2*(1-self.omega_matter)/self.omega_matter/(1+z)) t0 = self.omega_matter/ \ (2*np.power(1.0-self.omega_matter, 1.5))*\ (np.sinh(eta) - eta) # 3) For omega_matter > 1 and omega_lambda == 0, use sin/cos. if ((self.omega_matter > 1) and (self.omega_lambda == 0)): eta = np.arccos(1 - 2*(1-self.omega_matter)/self.omega_matter/(1+z)) t0 = self.omega_matter/(2*np.power(1.0-self.omega_matter, 1.5))*\ (eta - np.sin(eta)) # 4) For flat universe, with non-zero omega_lambda, see eq. 13-20. if ((np.fabs(omega_curvature) < 1.0e-3) and (self.omega_lambda != 0)): t0 = 2.0/3.0/np.sqrt(1-self.omega_matter)*\ np.arcsinh(np.sqrt((1-self.omega_matter)/self.omega_matter)/ \ np.power(1+z, 1.5)) # Now convert from Time * H0 to time. my_time = t0 / self.hubble_constant return my_time.in_base(self.unit_system)
def test_numpy_ufuncs(self): # test ufuncs of numpy 1.9.2. see: # http://docs.scipy.org/doc/numpy/reference/ufuncs.html # some functions are skipped because it may return different result # for unicode input depending on numpy version for name, idx in compat.iteritems(self.indices): for func in [np.exp, np.exp2, np.expm1, np.log, np.log2, np.log10, np.log1p, np.sqrt, np.sin, np.cos, np.tan, np.arcsin, np.arccos, np.arctan, np.sinh, np.cosh, np.tanh, np.arcsinh, np.arccosh, np.arctanh, np.deg2rad, np.rad2deg]: if isinstance(idx, pd.tseries.base.DatetimeIndexOpsMixin): # raise TypeError or ValueError (PeriodIndex) # PeriodIndex behavior should be changed in future version with tm.assertRaises(Exception): func(idx) elif isinstance(idx, (Float64Index, Int64Index)): # coerces to float (e.g. np.sin) result = func(idx) exp = Index(func(idx.values), name=idx.name) self.assert_index_equal(result, exp) self.assertIsInstance(result, pd.Float64Index) else: # raise AttributeError or TypeError if len(idx) == 0: continue else: with tm.assertRaises(Exception): func(idx) for func in [np.isfinite, np.isinf, np.isnan, np.signbit]: if isinstance(idx, pd.tseries.base.DatetimeIndexOpsMixin): # raise TypeError or ValueError (PeriodIndex) with tm.assertRaises(Exception): func(idx) elif isinstance(idx, (Float64Index, Int64Index)): # results in bool array result = func(idx) exp = func(idx.values) self.assertIsInstance(result, np.ndarray) tm.assertNotIsInstance(result, Index) else: if len(idx) == 0: continue else: with tm.assertRaises(Exception): func(idx)