[Python-ideas] Python multi-dimensional array constructor

Ethan Furman ethan at stoneleaf.us
Fri Oct 21 14:39:59 EDT 2016


On 10/19/2016 12:08 PM, Todd wrote:

> At least in my opinion, this sort of approach really shines when making
>  higher-dimensional arrays.  These would all be equivalent (the | at the
>  beginning and end are just to make it easier to align indentation, they
>  aren't required):
>
> a = [|||| 48, 11, 141, 13, -60, -37, 58, -52, -29, 134
>         || -6, 96, -66, 137, -59, -147, -118, -104, -123, -7
>        ||| -103, 50, -89, -12,  28, -12, 119, -131, -73, 21
>         || -58, 105, 25, -138, -106, -118, -29, -49, -63, -56
>       |||| -43, -34, 101, -115, 41, 121, 3, -117, 101, -145
>         || 100, -128, 76, 128, -113, -90, 52, -91, -72, -15
>        ||| 22, -65, -118, 134, -58, 55, -73, -118, -53, -60
>         || -85, -136, 83, -66, -35, -117, -71, 115, -56, 133
>       ||||]
>
> b = [|||| 48, 11, 141, 13, -60, -37, 58, -52, -29, 134 |
>          | -6, 96, -66, 137, -59, -147, -118, -104, -123, -7 |
>         |
>          | -103, 50, -89, -12,  28, -12, 119, -131, -73, 21 |
>          | -58, 105, 25, -138, -106, -118, -29, -49, -63, -56 |
>        ||
>          | -43, -34, 101, -115, 41, 121, 3, -117, 101, -145 |
>          | 100, -128, 76, 128, -113, -90, 52, -91, -72, -15 |
>         |
>          | 22, -65, -118, 134, -58, 55, -73, -118, -53, -60 |
>          | -85, -136, 83, -66, -35, -117, -71, 115, -56, 133 ||||]
>
>
> Compared to the current approach:
>
> a = np.ndarray([[[[48, 11, 141, 13, -60, -37, 58, -52, -29, 134],
>                    [-6, 96, -66, 137, -59, -147, -118, -104, -123, -7]],
>                   [[-103, 50, -89, -12,  28, -12, 119, -131, -73, 21],
>                    [-58, 105, 25, -138, -106, -118, -29, -49, -63, -56]]],
>                  [[[-43, -34, 101, -115, 41, 121, 3, -117, 101, -145],
>                    [100, -128, 76, 128, -113, -90, 52, -91, -72, -15]],
>                   [[22, -65, -118, 134, -58, 55, -73, -118, -53, -60],
>                    [-85, -136, 83, -66, -35, -117, -71, 115, -56, 133]]]])
>
> I think both of the new examples are considerably clearer than the current approach.
>
> Does anyone have any questions or thoughts?

Optional, semi-meaningless, not-really-an-operator markings?  The current approach I could at least figure out if I had to -- yours is confusing.

You have done a good job explaining what you mean, but what to you is clear is to me, and others, incomprehensible.

--
~Ethan~


More information about the Python-ideas mailing list