[Edu-sig] Properties use case

Michael Tobis mtobis at gmail.com
Thu Mar 16 04:34:13 CET 2006


A Numeric array is mutable; it refers to allocated memory. So any
subpart of it is mutable. So I suggest you use a 1-element complex
numeric array as your mutable complex type.

>>> import Numeric as N
>>> a = N.ones((20,20),N.Complex)
>>> b = N.ravel(a[1:2,1:2])
>>> b
array([ 1.+0.j])
>>> id(b)
2741696
>>> b += 1 + 1j
>>> b
array([ 2.+1.j])
>>> id(b)
2741696

Admittedly the str() of this object is ugly, and because Numeric isn't
inheritance-friendly this is hard to work around elegantly. If this is
a problem it might provide the occasion to upgrade to a newer
numerical package.

Still, why do you care about mutability of your complex number
instances once they are outside Numeric? That seems unusual.

mt


More information about the Edu-sig mailing list