def test_take(): a = [4, 3, 5, 7, 6, 8] indices = [0, 1, 4] iassert(afnumpy.take(a, indices), numpy.take(a, indices)) b = numpy.array(a) a = afnumpy.array(a) iassert(afnumpy.take(a, indices), numpy.take(b, indices))
def percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False): if interpolation is not 'linear': raise ValueError('Only linear interpolation is supported') if out is not None: raise ValueError('"out" parameter is not supported') if isinstance(axis, collections.Sequence): raise ValueError('axis sequences not supported') if axis is None: input = a.flatten() axis = 0 else: input = a s = afnumpy.sort(input,axis=axis) low_idx = numpy.floor(q*(s.shape[axis]-1)/100.0) high_idx = numpy.ceil(q*(s.shape[axis]-1)/100.0) u = (q*(s.shape[axis]-1)/100.0) - low_idx low = afnumpy.take(s, low_idx, axis=axis) high = afnumpy.take(s, high_idx, axis=axis) ret = u*high+(1-u)*low if keepdims is True: ret.reshape(ret.shape[:axis]+(1,)+ret.shape[axis:]) return ret
def ifftshift(x, axes=None): tmp = afnumpy.asarray(x) ndim = len(tmp.shape) if axes is None: axes = list(range(ndim)) elif isinstance(axes, numbers.Integral): axes = (axes,) y = tmp for k in axes: n = tmp.shape[k] p2 = n-(n+1)//2 mylist = afnumpy.concatenate((afnumpy.arange(p2, n), afnumpy.arange(p2))) y = afnumpy.take(y, mylist, k) return y