[Matrix-SIG] "Sorting" a large array?!

Rob Hooft r.hooft@euromail.net
Wed, 25 Aug 1999 14:36:18 +0200 (MZT)


>>>>> "RH" == Rob Hooft <r.hooft@euromail.net> writes:

 RH>  2) The "concatenate" operation currently duplicates memory
 RH> completely. Slow and expensive. Is there a better way?

Hmmm.... Writing such a message definitely clears ones mind.
I managed to avoid the concatenate:

    def Frame(self,data):
        data=data.astype('f')
        if not hasattr(self,'arrdata'):
            self.arrdata=Numeric.zeros((self.mem+1,)+data.shape,'f')
            self.arrindex=0
            
        self.arrdata[self.arrindex]=data
        self.arrindex=self.arrindex+1
        if self.arrindex>=self.mem+1:
            self.arrdata=Numeric.sort(self.arrdata,axis=0)
            self.arrindex=self.n

    def FinalEnd(self):
        self.arrdata=Numeric.sort(self.arrdata[:self.arrindex],axis=0)
        self.data=self.arrdata[self.n-1]
        del self.arrdata

Any other help is still appreciated.

Regards,
-- 
=====   R.Hooft@EuroMail.net   http://www.xs4all.nl/~hooft/rob/  =====
=====   R&D, Nonius BV, Delft  http://www.nonius.nl/             =====
===== PGPid 0xFA19277D ========================== Use Linux! =========