summaryrefslogtreecommitdiff
path: root/numpy/core/numeric.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/core/numeric.py')
-rw-r--r--numpy/core/numeric.py50
1 files changed, 36 insertions, 14 deletions
diff --git a/numpy/core/numeric.py b/numpy/core/numeric.py
index 8c4fa2980..176212d09 100644
--- a/numpy/core/numeric.py
+++ b/numpy/core/numeric.py
@@ -638,6 +638,7 @@ def correlate(a,v,mode='valid',old_behavior=True):
This function is equivalent to
>>> np.convolve(a, v[::-1], mode=mode)
+ ... #doctest: +SKIP
where ``v[::-1]`` is the reverse of `v`.
@@ -963,6 +964,9 @@ def tensordot(a, b, axes=2):
[aaaaaaacccccccc, bbbbbbbdddddddd]]], dtype=object)
>>> np.tensordot(a, A, 0) # "Left for reader" (result too long to incl.)
+ array([[[[[a, b],
+ [c, d]],
+ ...
>>> np.tensordot(a, A, (0, 1))
array([[[abbbbb, cddddd],
@@ -1413,7 +1417,7 @@ def array_str(a, max_line_width=None, precision=None, suppress_small=None):
Examples
--------
>>> np.array_str(np.arange(3))
- >>> '[0 1 2]'
+ '[0 1 2]'
"""
return array2string(a, max_line_width, precision, suppress_small, ' ', "", str)
@@ -1465,7 +1469,7 @@ def indices(dimensions, dtype=int):
--------
>>> grid = np.indices((2, 3))
>>> grid.shape
- (2,2,3)
+ (2, 2, 3)
>>> grid[0] # row indices
array([[0, 0, 0],
[1, 1, 1]])
@@ -1973,19 +1977,19 @@ def array_equiv(a1, a2):
Examples
--------
>>> np.array_equiv([1, 2], [1, 2])
- >>> True
+ True
>>> np.array_equiv([1, 2], [1, 3])
- >>> False
+ False
Showing the shape equivalence:
>>> np.array_equiv([1, 2], [[1, 2], [1, 2]])
- >>> True
+ True
>>> np.array_equiv([1, 2], [[1, 2, 1, 2], [1, 2, 1, 2]])
- >>> False
+ False
>>> np.array_equiv([1, 2], [[1, 2], [1, 3]])
- >>> False
+ False
"""
try:
@@ -2064,11 +2068,12 @@ def seterr(all=None, divide=None, over=None, under=None, invalid=None):
Examples
--------
+ >>> old_settings = np.seterr(all='ignore') #seterr to known value
>>> np.seterr(over='raise')
{'over': 'ignore', 'divide': 'ignore', 'invalid': 'ignore',
'under': 'ignore'}
>>> np.seterr(all='ignore') # reset to default
- {'over': 'raise', 'divide': 'warn', 'invalid': 'warn', 'under': 'warn'}
+ {'over': 'raise', 'divide': 'ignore', 'invalid': 'ignore', 'under': 'ignore'}
>>> np.int16(32000) * np.int16(3)
30464
@@ -2078,16 +2083,28 @@ def seterr(all=None, divide=None, over=None, under=None, invalid=None):
File "<stdin>", line 1, in <module>
FloatingPointError: overflow encountered in short_scalars
- >>> np.seterr(all='print')
+ >>> old_settings = np.seterr(all='print')
+ >>> np.geterr()
{'over': 'print', 'divide': 'print', 'invalid': 'print', 'under': 'print'}
>>> np.int16(32000) * np.int16(3)
Warning: overflow encountered in short_scalars
30464
Calling `seterr` with no arguments resets treatment for all floating-point
- errors to the defaults.
+ errors to the defaults. XXX: lies!!! code doesn't do that
+ >>> np.geterr()
+ {'over': 'ignore', 'divide': 'ignore', 'invalid': 'ignore', 'under': 'ignore'}
+ >>> np.seterr(all='warn')
+ {'over': 'ignore', 'divide': 'ignore', 'invalid': 'ignore', 'under': 'ignore'}
+ >>> np.geterr()
+ {'over': 'warn', 'divide': 'warn', 'invalid': 'warn', 'under': 'warn'}
+ >>> np.seterr() # XXX: this should reset to defaults according to docstring above
+ {'over': 'warn', 'divide': 'warn', 'invalid': 'warn', 'under': 'warn'}
+ >>> np.geterr() # XXX: but clearly it doesn't
+ {'over': 'warn', 'divide': 'warn', 'invalid': 'warn', 'under': 'warn'}
>>> old_settings = np.seterr()
+ >>> old_settings = np.seterr(all='ignore')
>>> np.geterr()
{'over': 'ignore', 'divide': 'ignore', 'invalid': 'ignore',
'under': 'ignore'}
@@ -2234,7 +2251,7 @@ def seterrcall(func):
Callback upon error:
>>> def err_handler(type, flag):
- print "Floating point error (%s), with flag %s" % (type, flag)
+ ... print "Floating point error (%s), with flag %s" % (type, flag)
...
>>> saved_handler = np.seterrcall(err_handler)
@@ -2245,13 +2262,15 @@ def seterrcall(func):
array([ Inf, Inf, Inf])
>>> np.seterrcall(saved_handler)
+ <function err_handler at 0x...>
>>> np.seterr(**save_err)
+ {'over': 'call', 'divide': 'call', 'invalid': 'call', 'under': 'call'}
Log error message:
>>> class Log(object):
- def write(self, msg):
- print "LOG: %s" % msg
+ ... def write(self, msg):
+ ... print "LOG: %s" % msg
...
>>> log = Log()
@@ -2260,9 +2279,13 @@ def seterrcall(func):
>>> np.array([1, 2, 3]) / 0.0
LOG: Warning: divide by zero encountered in divide
+ <BLANKLINE>
+ array([ Inf, Inf, Inf])
>>> np.seterrcall(saved_handler)
+ <__main__.Log object at 0x...>
>>> np.seterr(**save_err)
+ {'over': 'log', 'divide': 'log', 'invalid': 'log', 'under': 'log'}
"""
if func is not None and not callable(func):
@@ -2371,7 +2394,6 @@ class errstate(object):
nan
>>> with np.errstate(invalid='raise'):
... np.sqrt(-1)
- ...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
FloatingPointError: invalid value encountered in sqrt