diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2013-02-28 19:34:59 -0800 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2013-02-28 19:34:59 -0800 |
commit | 48df79673f81a8421421233e26f663f260bcebfd (patch) | |
tree | 1fd3d59cdc7f9c10d09bc114fee0338b68718bb4 /numpy/add_newdocs.py | |
parent | 5ce8e28a97210fac9f244e79c186433cd373999d (diff) | |
parent | 83e39633d94ddca717ae50692b013ae7ffc39459 (diff) | |
download | numpy-48df79673f81a8421421233e26f663f260bcebfd.tar.gz |
Merge pull request #2967 from sbyrnes321/master
DOC -- add another paragraph note to ndarray.view docs
Diffstat (limited to 'numpy/add_newdocs.py')
-rw-r--r-- | numpy/add_newdocs.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/numpy/add_newdocs.py b/numpy/add_newdocs.py index 26711f177..35555a77a 100644 --- a/numpy/add_newdocs.py +++ b/numpy/add_newdocs.py @@ -4460,6 +4460,15 @@ add_newdoc('numpy.core.multiarray', 'ndarray', ('view', (same shape, dtype, etc.) This does not cause a reinterpretation of the memory. + For ``a.view(some_dtype)``, if ``some_dtype`` has a different number of + bytes per entry than the previous dtype (for example, converting a + regular array to a structured array), then the behavior of the view + cannot be predicted just from the superficial appearance of ``a`` (shown + by ``print(a)``). It also depends on exactly how ``a`` is stored in + memory. Therefore if ``a`` is C-ordered versus fortran-ordered, versus + defined as a slice or transpose, etc., the view may give different + results. + Examples -------- @@ -4501,6 +4510,22 @@ add_newdoc('numpy.core.multiarray', 'ndarray', ('view', >>> z[0] (9, 10) + Views that change the dtype size (bytes per entry) should normally be + avoided on arrays defined by slices, transposes, fortran-ordering, etc.: + + >>> x = np.array([[1,2,3],[4,5,6]], dtype=np.int16) + >>> y = x[:, 0:2] + >>> y + array([[1, 2], + [4, 5]], dtype=int16) + >>> y.view(dtype=[('width', np.int16), ('length', np.int16)]) + Traceback (most recent call last): + File "<stdin>", line 1, in <module> + ValueError: new type not compatible with array. + >>> z = y.copy() + >>> z.view(dtype=[('width', np.int16), ('length', np.int16)]) + array([[(1, 2)], + [(4, 5)]], dtype=[('width', '<i2'), ('length', '<i2')]) """)) |