我们从Python开源项目中,提取了以下27个代码示例,用于说明如何使用numpy.pv()。
def generate_price_df(ticker,financialreportingdf,stockpricedf,discountrate,marginrate): dfprice = pd.DataFrame(columns =['ticker','annualgrowthrate','lasteps','futureeps']) pd.options.display.float_format = '{:20,.2f}'.format # Find EPS Annual Compounded Growth Rate annualgrowthrate = financialreportingdf.epsgrowth.mean() #growth rate # Estimate stock price 10 years from now (Stock Price EPS * Average PE) lasteps = financialreportingdf.eps.tail(1).values[0] #presentvalue years = 10 #period futureeps = abs(np.fv(annualgrowthrate,years,0,lasteps)) dfprice.loc[0] = [ticker,annualgrowthrate,lasteps,futureeps] dfprice.set_index('ticker',inplace=True) dfprice['lastshareprice']=stockpricedf.Close.tail(1).values[0] dfprice['peratio'] = dfprice['lastshareprice']/dfprice['lasteps'] dfprice['futureshareprice'] = dfprice['futureeps']*dfprice['peratio'] dfprice['presentshareprice'] = abs(np.pv(discountrate,years,0,fv=dfprice['futureshareprice'])) dfprice['marginalizedprice'] = dfprice['presentshareprice']*(1-marginrate) return dfprice
def test_pv(self): assert_almost_equal(np.pv(0.07, 20, 12000, 0), -127128.17, 2)
def assets_required(self): rate = self.financial_planning.real_gain() return numpy.pv(rate, self.duration_of_usufruct, -self.remain_patrimony * 12)
def patrimony_necessery_in_period(self, mounth_quantities, value): rate = self.protection_manager.financial_planning.real_gain() return numpy.pv(rate, mounth_quantities, -value)
def _rbl(rate, per, pmt, pv, when): """ This function is here to simply have a different name for the 'fv' function to not interfere with the 'fv' keyword argument within the 'ipmt' function. It is the 'remaining balance on loan' which might be useful as it's own function, but is easily calculated with the 'fv' function. """ return fv(rate, (per - 1), pmt, pv, when)
def ppmt(rate, per, nper, pv, fv=0.0, when='end'): """ Compute the payment against loan principal. Parameters ---------- rate : array_like Rate of interest (per period) per : array_like, int Amount paid against the loan changes. The `per` is the period of interest. nper : array_like Number of compounding periods pv : array_like Present value fv : array_like, optional Future value when : {{'begin', 1}, {'end', 0}}, {string, int} When payments are due ('begin' (1) or 'end' (0)) See Also -------- pmt, pv, ipmt """ total = pmt(rate, nper, pv, fv, when) return total - ipmt(rate, per, nper, pv, fv, when)
def rate(nper, pmt, pv, fv, when='end', guess=0.10, tol=1e-6, maxiter=100): """ Compute the rate of interest per period. Parameters ---------- nper : array_like Number of compounding periods pmt : array_like Payment pv : array_like Present value fv : array_like Future value when : {{'begin', 1}, {'end', 0}}, {string, int}, optional When payments are due ('begin' (1) or 'end' (0)) guess : float, optional Starting guess for solving the rate of interest tol : float, optional Required tolerance for the solution maxiter : int, optional Maximum iterations in finding the solution Notes ----- The rate of interest is computed by iteratively solving the (non-linear) equation:: fv + pv*(1+rate)**nper + pmt*(1+rate*when)/rate * ((1+rate)**nper - 1) = 0 for ``rate``. References ---------- Wheeler, D. A., E. Rathke, and R. Weir (Eds.) (2009, May). Open Document Format for Office Applications (OpenDocument)v1.2, Part 2: Recalculated Formula (OpenFormula) Format - Annotated Version, Pre-Draft 12. Organization for the Advancement of Structured Information Standards (OASIS). Billerica, MA, USA. [ODT Document]. Available: http://www.oasis-open.org/committees/documents.php?wg_abbrev=office-formula OpenDocument-formula-20090508.odt """ when = _convert_when(when) (nper, pmt, pv, fv, when) = map(np.asarray, [nper, pmt, pv, fv, when]) rn = guess iter = 0 close = False while (iter < maxiter) and not close: rnp1 = rn - _g_div_gp(rn, nper, pmt, pv, fv, when) diff = abs(rnp1-rn) close = np.all(diff < tol) iter += 1 rn = rnp1 if not close: # Return nan's in array of the same shape as rn return np.nan + rn else: return rn