
pe, 2010-10-29 kello 12:48 +0200, Francesc Alted kirjoitti:
A Friday 29 October 2010 12:18:20 Pauli Virtanen escrigué:
Fri, 29 Oct 2010 09:54:23 +0200, Francesc Alted wrote: [clip]
My vote is +1 for deprecating ``array([scalar])`` as a scalar index for NumPy 2.0.
I'd be -0 on this, since 1-element Numpy arrays function like scalars in several other contexts, e.g. in casting to Python types and in boolean context.
Note also that at least Python's struct module (mis-?)uses __index__() for casting inputs to integers.
Uh, could you put some examples of this please?
Sure: if array([[1]]): print "OK" x = float(array([[1]])) and for the second point, in Python/Modules/_struct.c: 95 static PyObject * 96 get_pylong(PyObject *v) 97 { 98 assert(v != NULL); 99 if (!PyLong_Check(v)) { 100 /* Not an integer; try to use __index__ to convert. */ 101 if (PyIndex_Check(v)) { >>> import numpy as np, struct >>> struct.pack("i", np.array([1])) '\x01\x00\x00\x00' -- Pauli Virtanen