[Python-Dev] Pre-PEP: Allow Empty Subscript List Without Parentheses (original) (raw)
Tim Hochberg tim.hochberg at ieee.org
Sat Jun 10 05:41:00 CEST 2006
- Previous message: [Python-Dev] Pre-PEP: Allow Empty Subscript List Without Parentheses
- Next message: [Python-Dev] Pre-PEP: Allow Empty Subscript List Without Parentheses
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Alex Martelli wrote:
On Jun 9, 2006, at 4:55 PM, Greg Ewing wrote: ...
Think about how you get from an N dimensional array to an N-1 dimensional array: you index it, e.g.
A2 = [[1, 2], [3, 4]] # a 2D array A1 = A2[1] # a 1D array A0 = A1[1] # a 0D array??? print A0 What do you think this will print? Don't confuse arrays with lists...: >>> A2 = Numeric.array([[1, 2], [3, 4]], Numeric.Float32) >>> A1 = A2[1] >>> A0 = A1[1] >>> type(A0) <type 'array'> >>> It doesn't work the same if you specify Numeric.Float64 instead -- an ancient wart of Numeric, of course. Still, Numeric and its descendants are "the" way in Python to get multi-dimensional arrays, since the stdlib's array module only supports one-dimensional ones, and lists are not arrays.
Note that this wart has been pretty much killed in numpy by supplying a full complement of scalar types:
import numpy A2 = numpy.array([[1,2], [3,4]], numpy.float32) A1 = A2[1] A0 = A1[1] A0 4.0 type(A0) <type 'float32scalar'>
The same excercise with float64 will give you a float64 scalar. The behaviour in this area is overall much more consistent now. You can still get a 0-D array by doing array(4.0) and possibly a few other ways, but there much less common. These scalar objects are immutable, but have all (or at least most) of the the array methods and attributes. For example:
A0.dtype dtype('<f4')
dtype is more or less equivalent to Numeric's typecode().
-tim
- Previous message: [Python-Dev] Pre-PEP: Allow Empty Subscript List Without Parentheses
- Next message: [Python-Dev] Pre-PEP: Allow Empty Subscript List Without Parentheses
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]