[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