diff options
author | Stefan van der Walt <stefan@sun.ac.za> | 2008-04-30 22:06:41 +0000 |
---|---|---|
committer | Stefan van der Walt <stefan@sun.ac.za> | 2008-04-30 22:06:41 +0000 |
commit | e285208a309b44ccc88e28c60140474acb7cc83b (patch) | |
tree | e8f92f17aeb27b78e51cc4c44f1eb991f347df32 | |
parent | 21a7341b383356ba99c10eda9654a4470e1247a0 (diff) | |
download | numpy-e285208a309b44ccc88e28c60140474acb7cc83b.tar.gz |
For x.view, change dtype into keyword argument.
-rw-r--r-- | numpy/add_newdocs.py | 8 | ||||
-rw-r--r-- | numpy/core/src/arraymethods.c | 8 | ||||
-rw-r--r-- | numpy/core/tests/test_multiarray.py | 10 |
3 files changed, 19 insertions, 7 deletions
diff --git a/numpy/add_newdocs.py b/numpy/add_newdocs.py index 85e7bdbba..17d21cd7c 100644 --- a/numpy/add_newdocs.py +++ b/numpy/add_newdocs.py @@ -2198,15 +2198,15 @@ add_newdoc('numpy.core.multiarray', 'ndarray', ('var', add_newdoc('numpy.core.multiarray', 'ndarray', ('view', - """a.view(type) + """a.view(dtype=None) New view of array with the same data. Parameters ---------- - type - Either a new sub-type object or a data-descriptor object - + dtype : sub-type or data-descriptor + Data-type of the returned view. + """)) add_newdoc('numpy.core.umath','geterrobj', diff --git a/numpy/core/src/arraymethods.c b/numpy/core/src/arraymethods.c index 587bffedc..cfd912644 100644 --- a/numpy/core/src/arraymethods.c +++ b/numpy/core/src/arraymethods.c @@ -101,12 +101,14 @@ array_squeeze(PyArrayObject *self, PyObject *args) } static PyObject * -array_view(PyArrayObject *self, PyObject *args) +array_view(PyArrayObject *self, PyObject *args, PyObject *kwds) { PyObject *otype=NULL; PyArray_Descr *type=NULL; - if (!PyArg_ParseTuple(args, "|O", &otype)) return NULL; + static char *kwlist[] = {"dtype", NULL}; + if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O", kwlist, &otype)) + return NULL; if (otype) { if (PyType_Check(otype) && \ @@ -1994,7 +1996,7 @@ static PyMethodDef array_methods[] = { {"var", (PyCFunction)array_variance, METH_VARARGS | METH_KEYWORDS, NULL}, {"view", (PyCFunction)array_view, - METH_VARARGS, NULL}, + METH_VARARGS | METH_KEYWORDS, NULL}, {NULL, NULL} /* sentinel */ }; diff --git a/numpy/core/tests/test_multiarray.py b/numpy/core/tests/test_multiarray.py index ec1bf4369..9a7f8c9ff 100644 --- a/numpy/core/tests/test_multiarray.py +++ b/numpy/core/tests/test_multiarray.py @@ -833,6 +833,16 @@ class TestRecord(NumpyTestCase): dt.names = ['p','q'] assert_equal(dt.names,['p','q']) +class TestView(NumpyTestCase): + def test_basic(self): + x = np.array([(1,2,3,4),(5,6,7,8)],dtype=[('r',np.int8),('g',np.int8), + ('b',np.int8),('a',np.int8)]) + y = x.view(dtype=np.int32) + z = x.view(np.int32) + assert_array_equal(y,z) + assert_array_equal(y, [67305985, 134678021]) + + # Import tests without matching module names set_local_path() from test_unicode import * |