On Mon, May 16, 2022, at 17:54, Paul Korir wrote: > Hellos, > I would like to propose `numpy.ndarray.permute_shape(<permuted_shape>)` > method to predictably permute the shape of an ndarray. In my opinion, > the current alternatives (`swapaxes`, `transform`, `moveaxes` and > friends) are counterintuitive and rely on referring to the axis > indices. It would be abundantly helpful to have something like reshape > but which moves the data around (unlike reshape, which doesn't).
Hi Paul, Could you please show a small example of how `permute_shape()` is meant to work? It's not clear to me what it's meant to do, especially in contrast to `transpose` and `swapaxes` etc. "Like reshape" and "permute" together specifically sounds confusing to me. From your description of the problem I'd have thought that `transpose` (with a potential `copy`) would do what you need, so I'm probably misunderstanding your use case. What would it do when applied to a 3d array of, say, shape (2, 3, 5)? AndrĂ¡s > Scenario: structural biology uses MRC files, which define a number of > fields that describe a 3D volume. There is a field which describes the > dimensions of the 3D image and another which associates each image axis > with a physical axis. There are six such assignments between the image > shape and the axes assignments (if we keep the shape fixed we can > assign XYZ, XZY, YXZ, YZX, ZXY, ZYX to the columns, rows and stacks) > and working out how to correctly transform the data is generally > non-trivial. I've written a package > (https://github.com/emdb-empiar/maptools) which does this but I use > swapaxes to reorient the 3D image. It would be so much easier to use > `numpy.ndarray.permute_shape(<permuted_shape>)` instead. > Any thoughts? Also, any helpful hints on how to get started with such a > contribution would be helpful. > Paul > _______________________________________________ > NumPy-Discussion mailing list -- numpy-discussion@python.org > To unsubscribe send an email to numpy-discussion-le...@python.org > https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ > Member address: deak.and...@gmail.com _______________________________________________ NumPy-Discussion mailing list -- numpy-discussion@python.org To unsubscribe send an email to numpy-discussion-le...@python.org https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ Member address: arch...@mail-archive.com