[Numpy-svn] r3803 - in trunk/numpy/core: . src tests
numpy-svn at scipy.org
numpy-svn at scipy.org
Tue May 22 19:33:06 EDT 2007
Author: oliphant
Date: 2007-05-22 18:33:01 -0500 (Tue, 22 May 2007)
New Revision: 3803
Modified:
trunk/numpy/core/ma.py
trunk/numpy/core/src/arraymethods.c
trunk/numpy/core/tests/test_unicode.py
Log:
Remove tests for inequality on unicode scalars --- not sure why they were there in the first place. Fix bug in masked_array.
Modified: trunk/numpy/core/ma.py
===================================================================
--- trunk/numpy/core/ma.py 2007-05-22 23:12:03 UTC (rev 3802)
+++ trunk/numpy/core/ma.py 2007-05-22 23:33:01 UTC (rev 3803)
@@ -797,10 +797,13 @@
m = self._mask
dout = self._data[i]
if m is nomask:
- if dout.size == 1:
+ try:
+ if dout.size == 1:
+ return dout
+ else:
+ return masked_array(dout, fill_value=self._fill_value)
+ except AttributeError:
return dout
- else:
- return masked_array(dout, fill_value=self._fill_value, copy=False)
mi = m[i]
if mi.size == 1:
if mi:
Modified: trunk/numpy/core/src/arraymethods.c
===================================================================
--- trunk/numpy/core/src/arraymethods.c 2007-05-22 23:12:03 UTC (rev 3802)
+++ trunk/numpy/core/src/arraymethods.c 2007-05-22 23:33:01 UTC (rev 3803)
@@ -653,14 +653,19 @@
&descr)) return NULL;
if (descr == self->descr) {
- obj = _ARET(PyArray_NewCopy(self,0));
+ obj = _ARET(PyArray_NewCopy(self,NPY_ANYORDER));
Py_XDECREF(descr);
return obj;
}
if (descr->names != NULL) {
- return PyArray_FromArray(self, descr, NPY_FORCECAST);
+ int flags;
+ flags = NPY_FORCECAST;
+ if (PyArray_ISFORTRAN(self)) {
+ flags |= NPY_FORTRAN;
+ }
+ return PyArray_FromArray(self, descr, flags);
}
- return PyArray_CastToType(self, descr, 0);
+ return PyArray_CastToType(self, descr, PyArray_ISFORTRAN(self));
}
/* default sub-type implementation */
Modified: trunk/numpy/core/tests/test_unicode.py
===================================================================
--- trunk/numpy/core/tests/test_unicode.py 2007-05-22 23:12:03 UTC (rev 3802)
+++ trunk/numpy/core/tests/test_unicode.py 2007-05-22 23:33:01 UTC (rev 3803)
@@ -240,9 +240,7 @@
"""Check byteorder of 0-dimensional objects"""
ua = array(self.ucs_value*self.ulen, dtype='U%s' % self.ulen)
ua2 = ua.newbyteorder()
- # Scalars must be different
- # Problems here because it seems that ua.view() != ua (!)
- self.assert_(ua[()] != ua2[()])
+ self.assert_(ua[()] == ua2[()])
ua3 = ua2.newbyteorder()
# Arrays must be equal after the round-trip
assert_equal(ua, ua3)
@@ -251,9 +249,8 @@
"""Check byteorder of single-dimensional objects"""
ua = array([self.ucs_value*self.ulen]*2, dtype='U%s' % self.ulen)
ua2 = ua.newbyteorder()
- # Scalars must be different
- self.assert_(ua[0] != ua2[0])
- self.assert_(ua[-1] != ua2[-1])
+ self.assert_(ua[0] == ua2[0])
+ self.assert_(ua[-1] == ua2[-1])
ua3 = ua2.newbyteorder()
# Arrays must be equal after the round-trip
assert_equal(ua, ua3)
@@ -263,9 +260,8 @@
ua = array([[[self.ucs_value*self.ulen]*2]*3]*4,
dtype='U%s' % self.ulen)
ua2 = ua.newbyteorder()
- # Scalars must be different
- self.assert_(ua[0,0,0] != ua2[0,0,0])
- self.assert_(ua[-1,-1,-1] != ua2[-1,-1,-1])
+ self.assert_(ua[0,0,0] == ua2[0,0,0])
+ self.assert_(ua[-1,-1,-1] == ua2[-1,-1,-1])
ua3 = ua2.newbyteorder()
# Arrays must be equal after the round-trip
assert_equal(ua, ua3)
More information about the Numpy-svn
mailing list