diff options
author | Mark Wiebe <mwwiebe@gmail.com> | 2011-01-28 12:43:22 -0800 |
---|---|---|
committer | Mark Wiebe <mwwiebe@gmail.com> | 2011-01-28 12:49:22 -0800 |
commit | c9d1849332ae5bf73299ea1268f6a55f78624688 (patch) | |
tree | ddb87dd09443045b1a2a5182f17dfa59ac99c12b /numpy/core/numeric.py | |
parent | 6510cce13410a9fff4d92f6390c16a7788b1a892 (diff) | |
download | numpy-c9d1849332ae5bf73299ea1268f6a55f78624688.tar.gz |
ENH: core: Add dtype= and order= parameters to zeros_like, ones_like, and empty_like
Diffstat (limited to 'numpy/core/numeric.py')
-rw-r--r-- | numpy/core/numeric.py | 80 |
1 files changed, 12 insertions, 68 deletions
diff --git a/numpy/core/numeric.py b/numpy/core/numeric.py index 43456b97f..fc935b4cb 100644 --- a/numpy/core/numeric.py +++ b/numpy/core/numeric.py @@ -62,17 +62,24 @@ ufunc = type(sin) # originally from Fernando Perez's IPython -def zeros_like(a): +def zeros_like(a, dtype=None, order='K'): """ Return an array of zeros with the same shape and type as a given array. - Equivalent to ``a.copy().fill(0)``. + With default paramters, is equivalent to ``a.copy().fill(0)``. Parameters ---------- a : array_like The shape and data-type of `a` define these same attributes of the returned array. + dtype : data-type, optional + Overrides the data type of the result. + order : {'C', 'F', 'A', or 'K'}, optional + Overrides the memory layout of the result. 'C' means C-order, + 'F' means F-order, 'A' means 'F' if ``a`` is Fortran contiguous, + 'C' otherwise. 'K' means match the layout of ``a`` as closely + as possible. Returns ------- @@ -105,72 +112,8 @@ def zeros_like(a): array([ 0., 0., 0.]) """ - if isinstance(a, ndarray): - res = ndarray.__new__(type(a), a.shape, a.dtype, order=a.flags.fnc) - res.fill(0) - return res - try: - wrap = a.__array_wrap__ - except AttributeError: - wrap = None - a = asarray(a) - res = zeros(a.shape, a.dtype) - if wrap: - res = wrap(res) - return res - -def empty_like(a): - """ - Return a new array with the same shape and type as a given array. - - Parameters - ---------- - a : array_like - The shape and data-type of `a` define these same attributes of the - returned array. - - Returns - ------- - out : ndarray - Array of random data with the same shape and type as `a`. - - See Also - -------- - ones_like : Return an array of ones with shape and type of input. - zeros_like : Return an array of zeros with shape and type of input. - empty : Return a new uninitialized array. - ones : Return a new array setting values to one. - zeros : Return a new array setting values to zero. - - Notes - ----- - This function does *not* initialize the returned array; to do that use - `zeros_like` or `ones_like` instead. It may be marginally faster than - the functions that do set the array values. - - Examples - -------- - >>> a = ([1,2,3], [4,5,6]) # a is array-like - >>> np.empty_like(a) - array([[-1073741821, -1073741821, 3], #random - [ 0, 0, -1073741821]]) - >>> a = np.array([[1., 2., 3.],[4.,5.,6.]]) - >>> np.empty_like(a) - array([[ -2.00000715e+000, 1.48219694e-323, -2.00000572e+000],#random - [ 4.38791518e-305, -2.00000715e+000, 4.17269252e-309]]) - - """ - if isinstance(a, ndarray): - res = ndarray.__new__(type(a), a.shape, a.dtype, order=a.flags.fnc) - return res - try: - wrap = a.__array_wrap__ - except AttributeError: - wrap = None - a = asarray(a) - res = empty(a.shape, a.dtype) - if wrap: - res = wrap(res) + res = empty_like(a, dtype=dtype, order=order) + res.fill(0) return res # end Fernando's utilities @@ -199,6 +142,7 @@ array = multiarray.array zeros = multiarray.zeros count_nonzero = multiarray.count_nonzero empty = multiarray.empty +empty_like = multiarray.empty_like fromstring = multiarray.fromstring fromiter = multiarray.fromiter fromfile = multiarray.fromfile |