summaryrefslogtreecommitdiff
path: root/numpy/core/numeric.py
diff options
context:
space:
mode:
authorMark Wiebe <mwwiebe@gmail.com>2011-01-28 12:43:22 -0800
committerMark Wiebe <mwwiebe@gmail.com>2011-01-28 12:49:22 -0800
commitc9d1849332ae5bf73299ea1268f6a55f78624688 (patch)
treeddb87dd09443045b1a2a5182f17dfa59ac99c12b /numpy/core/numeric.py
parent6510cce13410a9fff4d92f6390c16a7788b1a892 (diff)
downloadnumpy-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.py80
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