[yt-dev] Issue #930: np.concatenate fails for YTArrays (yt_analysis/yt)

Douglas Rudd issues-reply at bitbucket.org
Sun Oct 26 09:43:48 PDT 2014


New issue 930: np.concatenate fails for YTArrays
https://bitbucket.org/yt_analysis/yt/issue/930/npconcatenate-fails-for-ytarrays

Douglas Rudd:

YTArrays cannot be compared using numpy functions like intersect1d because np.concatenate either fails (for dimensional arrays) or for dimensionless arrays it produces a YTArray object where the units attribute is `None` (which then fails in  `__eq__`, `__lt__`, etc).

This may already be known and may be unfixable (due to the way numpy implements concatenate)...

```
#!python

import yt
import numpy as np

A = yt.YTArray(range(10))
B = yt.YTArray(range(10))
np.intersect1d(A,B)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-10-90c76c488fa7> in <module>()
----> 1 np.intersect1d(A,B)

/usr/local/lib/python2.7/site-packages/numpy/lib/arraysetops.pyc in intersect1d(ar1, ar2, assume_unique)
    248     aux = np.concatenate((ar1, ar2))
    249     aux.sort()
--> 250     return aux[:-1][aux[1:] == aux[:-1]]
    251
    252 def setxor1d(ar1, ar2, assume_unique=False):

/Users/drudd/Programs/yt/yt/units/yt_array.pyc in __eq__(self, other)
    854             return False
    855         if isinstance(other, YTArray):
--> 856             if not self.units.same_dimensions_as(other.units):
    857                 raise YTUnitOperationError("equal", self.units, other.units)
    858

AttributeError: 'NoneType' object has no attribute 'same_dimensions_as'
```





More information about the yt-dev mailing list