ó 2ÄÈ[c@`sÍddlmZmZmZddlZddlZddlmZddlm Z m Z m Z m Z m Z mZdddgZd d „Zd eedd „Zd ed dd„Zd edd„ZdS(i(tdivisiontabsolute_importtprint_functionNi(tnumeric(t result_typetNaNt shares_memorytMAY_SHARE_BOUNDSt TooHardErrort asanyarraytlogspacetlinspacet geomspaceicC`slytj|ƒ}WnRtk rgdjt|ƒƒ}t|ƒ}|d7}tj|td|ƒnX|S(Ns=object of type {} cannot be safely interpreted as an integer.it stacklevel( toperatortindext TypeErrortformatttypetinttwarningstwarntDeprecationWarning(tiR tmsg((s7/tmp/pip-build-fiC0ax/numpy/numpy/core/function_base.pyt_index_deprecate s   i2c C`sšt|ƒ}|dkr+td|ƒ‚n|r;|dn|}t|ƒd}t|ƒd}t||t|ƒƒ}|dkrŽ|}ntjd|d|ƒ}||} tj| ƒ} |dkr+| |} | dkr ||}| rþ|| 9}q(|| }q;| r|| 9}q;|| }nt } || }||7}|rd|dkrd||d>> np.linspace(2.0, 3.0, num=5) array([ 2. , 2.25, 2.5 , 2.75, 3. ]) >>> np.linspace(2.0, 3.0, num=5, endpoint=False) array([ 2. , 2.2, 2.4, 2.6, 2.8]) >>> np.linspace(2.0, 3.0, num=5, retstep=True) (array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25) Graphical illustration: >>> import matplotlib.pyplot as plt >>> N = 8 >>> y = np.zeros(N) >>> x1 = np.linspace(0, 10, N, endpoint=True) >>> x2 = np.linspace(0, 10, N, endpoint=False) >>> plt.plot(x1, y, 'o') [] >>> plt.plot(x2, y + 0.5, 'o') [] >>> plt.ylim([-0.5, 1]) (-0.5, 1) >>> plt.show() is,Number of samples, %s, must be non-negative.igð?tdtypeiÿÿÿÿtcopyN( Rt ValueErrorR RtfloattNonet_nxtarangetisscalarRtastypetFalse( tstarttstoptnumtendpointtretstepRtdivtdttytdeltat _mult_inplacetstep((s7/tmp/pip-build-fiC0ax/numpy/numpy/core/function_base.pyR s<L                g$@cC`sPt||d|d|ƒ}|dkr7tj||ƒStj||ƒj|ƒS(s¨ Return numbers spaced evenly on a log scale. In linear space, the sequence starts at ``base ** start`` (`base` to the power of `start`) and ends with ``base ** stop`` (see `endpoint` below). Parameters ---------- start : float ``base ** start`` is the starting value of the sequence. stop : float ``base ** stop`` is the final value of the sequence, unless `endpoint` is False. In that case, ``num + 1`` values are spaced over the interval in log-space, of which all but the last (a sequence of length `num`) are returned. num : integer, optional Number of samples to generate. Default is 50. endpoint : boolean, optional If true, `stop` is the last sample. Otherwise, it is not included. Default is True. base : float, optional The base of the log space. The step size between the elements in ``ln(samples) / ln(base)`` (or ``log_base(samples)``) is uniform. Default is 10.0. dtype : dtype The type of the output array. If `dtype` is not given, infer the data type from the other input arguments. Returns ------- samples : ndarray `num` samples, equally spaced on a log scale. See Also -------- arange : Similar to linspace, with the step size specified instead of the number of samples. Note that, when used with a float endpoint, the endpoint may or may not be included. linspace : Similar to logspace, but with the samples uniformly distributed in linear space, instead of log space. geomspace : Similar to logspace, but with endpoints specified directly. Notes ----- Logspace is equivalent to the code >>> y = np.linspace(start, stop, num=num, endpoint=endpoint) ... # doctest: +SKIP >>> power(base, y).astype(dtype) ... # doctest: +SKIP Examples -------- >>> np.logspace(2.0, 3.0, num=4) array([ 100. , 215.443469 , 464.15888336, 1000. ]) >>> np.logspace(2.0, 3.0, num=4, endpoint=False) array([ 100. , 177.827941 , 316.22776602, 562.34132519]) >>> np.logspace(2.0, 3.0, num=4, base=2.0) array([ 4. , 5.0396842 , 6.34960421, 8. ]) Graphical illustration: >>> import matplotlib.pyplot as plt >>> N = 10 >>> x1 = np.logspace(0.1, 1, N, endpoint=True) >>> x2 = np.logspace(0.1, 1, N, endpoint=False) >>> y = np.zeros(N) >>> plt.plot(x1, y, 'o') [] >>> plt.plot(x2, y + 0.5, 'o') [] >>> plt.ylim([-0.5, 1]) (-0.5, 1) >>> plt.show() R&R'N(R RRtpowerR"(R$R%R&R'tbaseRR+((s7/tmp/pip-build-fiC0ax/numpy/numpy/core/function_base.pyR ™sN c C`s|dks|dkr'tdƒ‚nt||t|ƒƒ}|d krT|}ntj|ƒ}d}|j|jko†dknr«|j|j}}d|}ntj|ƒtj|ƒkoÔdknrò| | }}| }n|||}|||}tj |tj ƒr:|d}|d}ntj |ƒ}tj |ƒ}|t ||d|d|d d d |ƒ} | j |ƒS( sä Return numbers spaced evenly on a log scale (a geometric progression). This is similar to `logspace`, but with endpoints specified directly. Each output sample is a constant multiple of the previous. Parameters ---------- start : scalar The starting value of the sequence. stop : scalar The final value of the sequence, unless `endpoint` is False. In that case, ``num + 1`` values are spaced over the interval in log-space, of which all but the last (a sequence of length `num`) are returned. num : integer, optional Number of samples to generate. Default is 50. endpoint : boolean, optional If true, `stop` is the last sample. Otherwise, it is not included. Default is True. dtype : dtype The type of the output array. If `dtype` is not given, infer the data type from the other input arguments. Returns ------- samples : ndarray `num` samples, equally spaced on a log scale. See Also -------- logspace : Similar to geomspace, but with endpoints specified using log and base. linspace : Similar to geomspace, but with arithmetic instead of geometric progression. arange : Similar to linspace, with the step size specified instead of the number of samples. Notes ----- If the inputs or dtype are complex, the output will follow a logarithmic spiral in the complex plane. (There are an infinite number of spirals passing through two points; the output will follow the shortest such path.) Examples -------- >>> np.geomspace(1, 1000, num=4) array([ 1., 10., 100., 1000.]) >>> np.geomspace(1, 1000, num=3, endpoint=False) array([ 1., 10., 100.]) >>> np.geomspace(1, 1000, num=4, endpoint=False) array([ 1. , 5.62341325, 31.6227766 , 177.827941 ]) >>> np.geomspace(1, 256, num=9) array([ 1., 2., 4., 8., 16., 32., 64., 128., 256.]) Note that the above may not produce exact integers: >>> np.geomspace(1, 256, num=9, dtype=int) array([ 1, 2, 4, 7, 16, 32, 63, 127, 256]) >>> np.around(np.geomspace(1, 256, num=9)).astype(int) array([ 1, 2, 4, 8, 16, 32, 64, 128, 256]) Negative, decreasing, and complex inputs are allowed: >>> np.geomspace(1000, 1, num=4) array([ 1000., 100., 10., 1.]) >>> np.geomspace(-1000, -1, num=4) array([-1000., -100., -10., -1.]) >>> np.geomspace(1j, 1000j, num=4) # Straight line array([ 0. +1.j, 0. +10.j, 0. +100.j, 0.+1000.j]) >>> np.geomspace(-1+0j, 1+0j, num=5) # Circle array([-1.00000000+0.j , -0.70710678+0.70710678j, 0.00000000+1.j , 0.70710678+0.70710678j, 1.00000000+0.j ]) Graphical illustration of ``endpoint`` parameter: >>> import matplotlib.pyplot as plt >>> N = 10 >>> y = np.zeros(N) >>> plt.semilogx(np.geomspace(1, 1000, N, endpoint=True), y + 1, 'o') >>> plt.semilogx(np.geomspace(1, 1000, N, endpoint=False), y + 2, 'o') >>> plt.axis([0.5, 2000, 0, 3]) >>> plt.grid(True, color='0.7', linestyle='-', which='both', axis='both') >>> plt.show() is&Geometric sequence cannot include zeroiyð?iÿÿÿÿyR&R'R0g$@RN(RRRRRRtrealtimagtsignt issubdtypetcomplexfloatingtlog10R R"( R$R%R&R'RR*tout_signt log_starttlog_stoptresult((s7/tmp/pip-build-fiC0ax/numpy/numpy/core/function_base.pyR ís.X  " .   (t __future__RRRRRtRRRRRRRR t__all__RtTrueR#RR R R (((s7/tmp/pip-build-fiC0ax/numpy/numpy/core/function_base.pyts  . €T