On 01/22/2018 10:53 AM, josef.p...@gmail.com wrote:
On Sun, Jan 21, 2018 at 9:48 PM, Allan Haldane <allanhald...@gmail.com In  many examples where I used structured dtypes a long time ago, switched between consistent views as either a standard array of subsets or as .structured dtypes. For this usecase it wouldn't matter whether a[['a', 'c']] returns a view or copy, as long as we can get the second view that is consistent with the selected part of the memory. This would also be independent of whether numpy pads internally and adjusts the strides if possible or not.

np.__version__
'1.11.2'

a = np.ones(5, dtype=[('a', 'i8'), ('b', 'f8'), ('c', 'f8')])
a
array([(1, 1.0, 1.0), (1, 1.0, 1.0), (1, 1.0, 1.0), (1, 1.0, 1.0),
        (1, 1.0, 1.0)],
       dtype=[('a', '<i8'), ('b', '<f8'), ('c', '<f8')])
a[['b', 'c']].view(('f8', 2)).dtype
dtype('float64')

Thanks for a real example to think about. I just want to note that I thought of another way to "fix" this for 1.15 which does not involve "pack_fields", which is

    a[['b', 'c']].astype('f8,f8').view(('f8', 2))

Which is back-compatible will numpy back to 1.7, I think.

So that's another option to ease the transition.

Allan
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to