[SciPy-user] Concatenate without making a copy? + sandbox: models

Robert Kern robert.kern at gmail.com
Wed Jan 3 21:48:56 CST 2007


Vincent Nijs wrote:
> z = c_[d['x0'],d['x1']]
> 
> Still makes a copy however. That is, if I set z[0,0] = -1, z is changed by d
> and x are not. 

Correct. As I said, "in general" that is not the case, so c_ will copy.

> Is there an alternative command to c_ that would not make the copy?

No. You could write one (probably even in Python by abusing the
__array_interface__ appropriately) and perhaps convince Jonathon Taylor to use
it in scipy.sandbox.models, but the chance of a performance gain is almost
certainly not worth the effort or the multiplication of similar functions.

> Also, what if x.shape is (5,3). Could you concatenate d['x0'] and d['x2']?

Yes, you could concatenate them, but they would have to copy because they are
not laid out in memory appropriately.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco


More information about the SciPy-user mailing list