Hi,
I found that ndarray is the wrong class to use for this purpose. The
vector I created in the example below was just en uninitialised 3D
vector. Arrays cannot be subclassed:
class Vector(np.array):
pass
returns an error. But using a matrix as base class works:
class Vector(np.matrix):
def __abs__(self):
l = np.sqrt(self*self.transpose())
return(l[0,0])
V1 = Vector([1,2,2])
V2 = Vector([5,0,4])
print abs(V2-2*V1)
prints 5.0, as it should.
It is very crude (no check on dimensions!), but works.
Martijn
On Thu, 2011-09-22 at 23:54 +0200, Martijn wrote:
> Hi,
> I am trying to create an ndarry subclass for vector calculations. The
> result is not what I intent:
>
> import numpy as np
>
> class Vector(np.ndarray):
> def __abs__(self):
> return(np.sqrt(sum(self**2)))
>
> V = Vector([1,2,3])
>
> print np.sqrt(sum(self**2))
> print abs(V)
>
> I do not understand the docs at http://www.scipy.org/Subclasses but it
> is late now.
>
>
> Martijn
>
>
> P.S. I know this is not strictly matplotlib related, but since MP uses
> numpy so heavily, I felt free to ask.
>
>
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure contains a
> definitive record of customers, application performance, security
> threats, fraudulent activity and more. Splunk takes this data and makes
> sense of it. Business sense. IT sense. Common sense.
> http://p.sf.net/sfu/splunk-d2dcopy1
> _______________________________________________
> Matplotlib-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users