[yt-svn] commit/yt: 8 new changesets

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Tue Jan 10 07:02:30 PST 2017


8 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/cee176b799a7/
Changeset:   cee176b799a7
Branch:      yt
User:        ngoldbaum
Date:        2017-01-05 22:44:47+00:00
Summary:     Add a wrapper for np.dot that handles units correctly
Affected #:  2 files

diff -r 6dc7c9a92d34f3e3319e37ebc1448899742f247a -r cee176b799a7065672011a7160db927aa82420b9 yt/__init__.py
--- a/yt/__init__.py
+++ b/yt/__init__.py
@@ -105,6 +105,7 @@
     uconcatenate, \
     uintersect1d, \
     uunion1d, \
+    udot, \
     loadtxt, \
     savetxt
 

diff -r 6dc7c9a92d34f3e3319e37ebc1448899742f247a -r cee176b799a7065672011a7160db927aa82420b9 yt/units/yt_array.py
--- a/yt/units/yt_array.py
+++ b/yt/units/yt_array.py
@@ -1448,6 +1448,13 @@
     """
     return YTArray(np.linalg.norm(data), data.units)
 
+def udot(op1, op2):
+    """Matrix or vector dot product that preservs units
+
+    This is a wrapper around np.dot that preserves units.
+    """
+    return YTArray(np.dot(op1.d, op2.d), op1.units*op2.units)
+
 def uvstack(arrs):
     """Stack arrays in sequence vertically (row wise) while preserving units
 


https://bitbucket.org/yt_analysis/yt/commits/695c8a1f9ea3/
Changeset:   695c8a1f9ea3
Branch:      yt
User:        ngoldbaum
Date:        2017-01-05 22:45:26+00:00
Summary:     Expose more keyword arguments for numpy unit wrappers
Affected #:  1 file

diff -r cee176b799a7065672011a7160db927aa82420b9 -r 695c8a1f9ea34c7924b7388a562e60f6b978935a yt/units/yt_array.py
--- a/yt/units/yt_array.py
+++ b/yt/units/yt_array.py
@@ -1390,17 +1390,16 @@
     v = validate_numpy_wrapper_units(v, arrs)
     return v
 
-def ucross(arr1,arr2, registry=None):
+def ucross(arr1, arr2, registry=None, axisa=-1, axisb=-1, axisc=-1, axis=None):
     """Applies the cross product to two YT arrays.
 
     This wrapper around numpy.cross preserves units.
     See the documentation of numpy.cross for full
     details.
     """
-
-    v = np.cross(arr1,arr2)
+    v = np.cross(arr1, arr2, axisa=axisa, axisb=axisb, axisc=axisc, axis=axis)
     units = arr1.units * arr2.units
-    arr = YTArray(v,units, registry=registry)
+    arr = YTArray(v, units, registry=registry)
     return arr
 
 def uintersect1d(arr1, arr2, assume_unique=False):
@@ -1441,12 +1440,14 @@
     v = validate_numpy_wrapper_units(v, [arr1, arr2])
     return v
 
-def unorm(data):
+def unorm(data, ord=None, axis=None, keepdims=False):
     """Matrix or vector norm that preserves units
 
-    This is a wrapper around np.linalg.norm that preserves units.
+    This is a wrapper around np.linalg.norm that preserves units. See
+    the documentation for that function for descriptions of the keyword
+    arguments.
     """
-    return YTArray(np.linalg.norm(data), data.units)
+    return YTArray(np.linalg.norm(data, ord, axis, keepdims), data.units)
 
 def udot(op1, op2):
     """Matrix or vector dot product that preservs units


https://bitbucket.org/yt_analysis/yt/commits/869d2a3b5755/
Changeset:   869d2a3b5755
Branch:      yt
User:        ngoldbaum
Date:        2017-01-05 22:45:58+00:00
Summary:     Expose more of the unit wrappers in the public yt API
Affected #:  1 file

diff -r 695c8a1f9ea34c7924b7388a562e60f6b978935a -r 869d2a3b575519119ca7b818c18cfe96829cca3a yt/__init__.py
--- a/yt/__init__.py
+++ b/yt/__init__.py
@@ -103,9 +103,13 @@
     YTArray, \
     YTQuantity, \
     uconcatenate, \
+    ucross, \
     uintersect1d, \
     uunion1d, \
+    unorm, \
     udot, \
+    uvstack, \
+    uhstack, \
     loadtxt, \
     savetxt
 


https://bitbucket.org/yt_analysis/yt/commits/2cbb02465da7/
Changeset:   2cbb02465da7
Branch:      yt
User:        ngoldbaum
Date:        2017-01-05 22:55:53+00:00
Summary:     Expose unit-aware wrappers in the API documentation
Affected #:  1 file

diff -r 869d2a3b575519119ca7b818c18cfe96829cca3a -r 2cbb02465da79673f2bbda6cbd87311abae48b2b doc/source/reference/api/api.rst
--- a/doc/source/reference/api/api.rst
+++ b/doc/source/reference/api/api.rst
@@ -159,6 +159,13 @@
    ~yt.units.unit_registry.UnitRegistry
    ~yt.units.yt_array.YTArray
    ~yt.units.yt_array.YTQuantity
+   ~yt.units.yt_array.uconcatenate
+   ~yt.units.yt_array.uintersect1d
+   ~yt.units.yt_array.uunion1d
+   ~yt.units.yt_array.unorm
+   ~yt.units.yt_array.udot
+   ~yt.units.yt_array.uvstack
+   ~yt.units.yt_array.uhstack
 
 
 Frontends


https://bitbucket.org/yt_analysis/yt/commits/ffe99e857da5/
Changeset:   ffe99e857da5
Branch:      yt
User:        ngoldbaum
Date:        2017-01-06 16:54:15+00:00
Summary:     Fix issue with positional arguments in unorm
Affected #:  1 file

diff -r 2cbb02465da79673f2bbda6cbd87311abae48b2b -r ffe99e857da57913fbc1c0e481488831981f6269 yt/units/yt_array.py
--- a/yt/units/yt_array.py
+++ b/yt/units/yt_array.py
@@ -1447,7 +1447,8 @@
     the documentation for that function for descriptions of the keyword
     arguments.
     """
-    return YTArray(np.linalg.norm(data, ord, axis, keepdims), data.units)
+    return YTArray(np.linalg.norm(data, ord=ord, axis=axis, keepdims=keepdims),
+                   data.units)
 
 def udot(op1, op2):
     """Matrix or vector dot product that preservs units


https://bitbucket.org/yt_analysis/yt/commits/6aa7bde15ad7/
Changeset:   6aa7bde15ad7
Branch:      yt
User:        ngoldbaum
Date:        2017-01-06 17:11:27+00:00
Summary:     Add a shim so we don't break old numpy versions
Affected #:  1 file

diff -r ffe99e857da57913fbc1c0e481488831981f6269 -r 6aa7bde15ad7e0fe53e3d97038eddce9b03c4413 yt/units/yt_array.py
--- a/yt/units/yt_array.py
+++ b/yt/units/yt_array.py
@@ -16,6 +16,7 @@
 import copy
 import numpy as np
 
+from distutils.version import LooseVersion
 from functools import wraps
 from numpy import \
     add, subtract, multiply, divide, logaddexp, logaddexp2, true_divide, \
@@ -1446,9 +1447,15 @@
     This is a wrapper around np.linalg.norm that preserves units. See
     the documentation for that function for descriptions of the keyword
     arguments.
+
+    The keepdims argument is ignored if the version of numpy installed is
+    older than numpy 1.10.0.
     """
-    return YTArray(np.linalg.norm(data, ord=ord, axis=axis, keepdims=keepdims),
-                   data.units)
+    if LooseVersion(np.__version__) < LooseVersion('1.10.0'):
+        norm = np.linalg.norm(data, ord=ord, axis=axis)
+    else:
+        norm = np.linalg.norm(data, ord=ord, axis=axis, keepdims=keepdims)
+    return YTArray(norm, data.units)
 
 def udot(op1, op2):
     """Matrix or vector dot product that preservs units


https://bitbucket.org/yt_analysis/yt/commits/cdbc98e7ef88/
Changeset:   cdbc98e7ef88
Branch:      yt
User:        ngoldbaum
Date:        2017-01-06 17:15:01+00:00
Summary:     Ensure we return YTQuantity instances for norm and dot when we get back a scalar
Affected #:  1 file

diff -r 6aa7bde15ad7e0fe53e3d97038eddce9b03c4413 -r cdbc98e7ef884ca336ba87944e7fff63bca118bf yt/units/yt_array.py
--- a/yt/units/yt_array.py
+++ b/yt/units/yt_array.py
@@ -1455,6 +1455,8 @@
         norm = np.linalg.norm(data, ord=ord, axis=axis)
     else:
         norm = np.linalg.norm(data, ord=ord, axis=axis, keepdims=keepdims)
+    if norm.shape == ():
+        return YTQuantity(norm, data.units)
     return YTArray(norm, data.units)
 
 def udot(op1, op2):
@@ -1462,7 +1464,11 @@
 
     This is a wrapper around np.dot that preserves units.
     """
-    return YTArray(np.dot(op1.d, op2.d), op1.units*op2.units)
+    dot = np.dot(op1.d, op2.d)
+    units = op1.units*op2.units
+    if dot.shape == ():
+        return YTQuantity(dot, units)
+    return YTArray(dot, units)
 
 def uvstack(arrs):
     """Stack arrays in sequence vertically (row wise) while preserving units


https://bitbucket.org/yt_analysis/yt/commits/175a73a08723/
Changeset:   175a73a08723
Branch:      yt
User:        ngoldbaum
Date:        2017-01-10 15:02:01+00:00
Summary:     Merged in ngoldbaum/yt (pull request #2484)

Improvements for numpy unit wrappers
Affected #:  3 files

diff -r ed2b7fa425ca7aeaf6f4b9174e2787b342ad2ce5 -r 175a73a087238b633f6cc92f7f28d94878cd3217 doc/source/reference/api/api.rst
--- a/doc/source/reference/api/api.rst
+++ b/doc/source/reference/api/api.rst
@@ -160,6 +160,13 @@
    ~yt.units.unit_registry.UnitRegistry
    ~yt.units.yt_array.YTArray
    ~yt.units.yt_array.YTQuantity
+   ~yt.units.yt_array.uconcatenate
+   ~yt.units.yt_array.uintersect1d
+   ~yt.units.yt_array.uunion1d
+   ~yt.units.yt_array.unorm
+   ~yt.units.yt_array.udot
+   ~yt.units.yt_array.uvstack
+   ~yt.units.yt_array.uhstack
 
 Frontends
 ---------

diff -r ed2b7fa425ca7aeaf6f4b9174e2787b342ad2ce5 -r 175a73a087238b633f6cc92f7f28d94878cd3217 yt/__init__.py
--- a/yt/__init__.py
+++ b/yt/__init__.py
@@ -104,8 +104,13 @@
     YTArray, \
     YTQuantity, \
     uconcatenate, \
+    ucross, \
     uintersect1d, \
     uunion1d, \
+    unorm, \
+    udot, \
+    uvstack, \
+    uhstack, \
     loadtxt, \
     savetxt
 

diff -r ed2b7fa425ca7aeaf6f4b9174e2787b342ad2ce5 -r 175a73a087238b633f6cc92f7f28d94878cd3217 yt/units/yt_array.py
--- a/yt/units/yt_array.py
+++ b/yt/units/yt_array.py
@@ -16,6 +16,7 @@
 import copy
 import numpy as np
 
+from distutils.version import LooseVersion
 from functools import wraps
 from numpy import \
     add, subtract, multiply, divide, logaddexp, logaddexp2, true_divide, \
@@ -1390,17 +1391,16 @@
     v = validate_numpy_wrapper_units(v, arrs)
     return v
 
-def ucross(arr1,arr2, registry=None):
+def ucross(arr1, arr2, registry=None, axisa=-1, axisb=-1, axisc=-1, axis=None):
     """Applies the cross product to two YT arrays.
 
     This wrapper around numpy.cross preserves units.
     See the documentation of numpy.cross for full
     details.
     """
-
-    v = np.cross(arr1,arr2)
+    v = np.cross(arr1, arr2, axisa=axisa, axisb=axisb, axisc=axisc, axis=axis)
     units = arr1.units * arr2.units
-    arr = YTArray(v,units, registry=registry)
+    arr = YTArray(v, units, registry=registry)
     return arr
 
 def uintersect1d(arr1, arr2, assume_unique=False):
@@ -1441,12 +1441,34 @@
     v = validate_numpy_wrapper_units(v, [arr1, arr2])
     return v
 
-def unorm(data):
+def unorm(data, ord=None, axis=None, keepdims=False):
     """Matrix or vector norm that preserves units
 
-    This is a wrapper around np.linalg.norm that preserves units.
+    This is a wrapper around np.linalg.norm that preserves units. See
+    the documentation for that function for descriptions of the keyword
+    arguments.
+
+    The keepdims argument is ignored if the version of numpy installed is
+    older than numpy 1.10.0.
     """
-    return YTArray(np.linalg.norm(data), data.units)
+    if LooseVersion(np.__version__) < LooseVersion('1.10.0'):
+        norm = np.linalg.norm(data, ord=ord, axis=axis)
+    else:
+        norm = np.linalg.norm(data, ord=ord, axis=axis, keepdims=keepdims)
+    if norm.shape == ():
+        return YTQuantity(norm, data.units)
+    return YTArray(norm, data.units)
+
+def udot(op1, op2):
+    """Matrix or vector dot product that preservs units
+
+    This is a wrapper around np.dot that preserves units.
+    """
+    dot = np.dot(op1.d, op2.d)
+    units = op1.units*op2.units
+    if dot.shape == ():
+        return YTQuantity(dot, units)
+    return YTArray(dot, units)
 
 def uvstack(arrs):
     """Stack arrays in sequence vertically (row wise) while preserving units

Repository URL: https://bitbucket.org/yt_analysis/yt/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.



More information about the yt-svn mailing list