[Numpy-discussion] NumPy 1.0 release-candidate 1.0 this weekend
Andrew Straw
strawman at astraw.com
Thu Sep 14 05:11:05 EDT 2006
Travis Oliphant wrote:
> Sebastian Haase wrote:
>
>> Travis Oliphant wrote:
>>
>>
>>
>>> It's not necessarily dead, the problem is complexity of implementation
>>> and more clarity about how all dtypes are supposed to be printed, not
>>> just this particular example. A patch would be very helpful here. If
>>> desired it could be implemented in _internal.py and called from there in
>>> arrayobject.c
>>>
>>> But, to get you thinking... How should the following be printed
>>>
>>> dtype('c4')
>>>
>>> dtype('a4,i8,3f4')
>>>
>>> dtype('3f4')
>>>
>>>
>>> -Travis
>>>
>>>
>> I would argue that if the simple cases were addressed first those would
>> cover 90% (if not 99% for most people) of the cases occurring in
>> people's daily use.
>> For complex types (like 'a4,i8,3f4') I actually think the current text
>> is compact and good.
>> (Lateron one could think about
>> 'c4' --> '4 chars'
>> '3f4' --> '3 float32s'
>>
>> but already I don't know: is there any difference between 'c4' and
>> '4c1'? What is the difference between 'c4' and 'a4' !?
>> )
>>
>>
>> My main focus is on the fact that you might read '<i4' as
>> "less" than 4-bytes int, which is very confusing !
>>
>>
> I can agree it's confusing at first, but it's the same syntax the struct
> module uses which is the Python precedent for this.
>
I'm happy with seeing the repr() value since I know what it means, but I
can see Sebastian's point. Perhaps there's a middle ground -- the str()
representation for simple dtypes could contain both the repr() value and
an English description. For example, something along the lines of
"dtype('<i4') (4 byte integer, little endian)". For more complex dtypes,
the repr() string could be given without any kind of English translation.
-Andrew
More information about the NumPy-Discussion
mailing list