Пример #1
0
def _findIndices(ArrSize, FilterSize):
    N = FilterSize.shape[0]
    n = int(FilterSize.prod())
    CumSizeArr = numpy.ones([N], dtype=numpy.int32)
    CumSizeArr[1:N] = ArrSize[0:N - 1].cumprod()
    CumSize = numpy.ones([N], dtype=numpy.int32)
    CumSize[1:N] = FilterSize[0:N - 1].cumprod()

    vals = numpy.empty((n, N), dtype=numpy.int32)
    for i in range(N):
        vals[:, i] = numpy.linspace(0, n - 1, n)

    vals = vals // CumSize
    vals = vals % FilterSize
    CurrPos = summations.sum(vals * CumSizeArr, axis=1)

    return CurrPos.astype(numpy.int32)
Пример #2
0
def _findIndices(ArrSize, FilterSize):
    N = FilterSize.shape[0]
    n = int(FilterSize.prod())
    CumSizeArr = numpy.ones([N], dtype=numpy.int32)
    CumSizeArr[1:N] = ArrSize[0:N - 1].cumprod()
    CumSize = numpy.ones([N], dtype=numpy.int32)
    CumSize[1:N] = FilterSize[0:N - 1].cumprod()

    vals = numpy.empty((n, N), dtype=numpy.int32)
    for i in range(N):
        vals[:, i] = numpy.linspace(0, n - 1, n)

    vals = vals // CumSize
    vals = vals % FilterSize
    CurrPos = summations.sum(vals * CumSizeArr, axis=1)

    return CurrPos.astype(numpy.int32)
Пример #3
0
def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=float, bohrium=True):
    """
    Return evenly spaced numbers over a specified interval.

    Returns `num` evenly spaced samples, calculated over the
    interval [`start`, `stop` ].

    The endpoint of the interval can optionally be excluded.

    Parameters
    ----------
    start : scalar
        The starting value of the sequence.
    stop : scalar
        The end value of the sequence, unless `endpoint` is set to False.
        In that case, the sequence consists of all but the last of ``num + 1``
        evenly spaced samples, so that `stop` is excluded.  Note that the step
        size changes when `endpoint` is False.
    num : int, optional
        Number of samples to generate. Default is 50.
    endpoint : bool, optional
        If True, `stop` is the last sample. Otherwise, it is not included.
        Default is True.
    retstep : bool, optional
        If True, return (`samples`, `step`), where `step` is the spacing
        between samples.

    Returns
    -------
    samples : ndarray
        There are `num` equally spaced samples in the closed interval
        ``[start, stop]`` or the half-open interval ``[start, stop)``
        (depending on whether `endpoint` is True or False).
    step : float (only if `retstep` is True)
        Size of spacing between samples.


    See Also
    --------
    arange : Similiar to `linspace`, but uses a step size (instead of the
             number of samples).
    logspace : Samples uniformly distributed in log space.

    Examples
    --------
    >>> 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')
    [<matplotlib.lines.Line2D object at 0x...>]
    >>> plt.plot(x2, y + 0.5, 'o')
    [<matplotlib.lines.Line2D object at 0x...>]
    >>> plt.ylim([-0.5, 1])
    (-0.5, 1)
    >>> plt.show()

    """
    if not bohrium:
        # TODO: add copy=False to .astype()
        return numpy.linspace(start, stop, num=num, endpoint=endpoint, retstep=retstep).astype(dtype)

    num = int(num)
    if num <= 0:
        return array([], dtype=dtype)

    if endpoint:
        if num == 1:
            return array([numpy.dtype(dtype).type(start)])
        step = (stop - start) / float((num - 1))
    else:
        step = (stop - start) / float(num)

    y = arange(num, dtype=dtype)
    if step != 1: y *= step
    if start != 0: y += start

    if retstep:
        return y, step
    else:
        return y