Re: [ojAlgo-user] Interface analogous to Numpy?
Mathematics, linear algebra and optimisation
Brought to you by:
apete
From: Stefan R. <Ste...@gm...> - 2012-04-20 13:32:10
|
> Getting some small application that (only) depends on NumPy to run on > Jython would be a proof of concept. > > I looked at the ndarray "interface". Some things look a bit scary... Are > all the attributes and methods mentioned on that page public and > non-optional? In fact I did not really have a look at that interface yet. Once I tried to setup a kind of "jumpy" by using original numpy through JNI. But for this I focused on the communication between python and its native extensions, especially numpy. So it was another layer of interfaces, I dived into (that were mainly the headers occuring in python.h). > Currently ojAlgo supports double, BigDecimal, ComplexNumber and > RationalNumber elements with the ArrayAnyD class. Are other types required? I think, numpy is also capable of having integer-matrices/arryas/however, but no RationalNumber (in the sense of an integer-tuple (numerator, denominator)). Maybe we can use RationalNumber with denominator=1, but including integer matrices into the support might be of better performance. There is another thing about python/numpy/jython. Because python/numpy supports unsigned long and double primitives, the de-facto number range of these types can not be fully covered by java primitive types. Jython covers this issue by mapping these types to BigNumber-types. I'm not sure, whether there could arise any problems from this for "jumpy" - just keep it in mind. > How about I create a sandbox version control system (for experimental > code) over at http://code.google.com/p/ojalgo/ > > What do you prefer: Subversion, Git or Mercurial? I think its a nice idea, though I can't promise that I will have very much time for this project. From work I only know Mercurial, so I don't have an educated opinion, which one is best. Stefan > On 19 apr 2012, at 22:21, B.D. wrote: > > > Dear Mr. Peterson, > > > >> Don't talk too much - just do it. Start with the most simple case. > > > > yes, you're right. I think this is a nice collection of simple unit > tests for > > me: http://www.scipy.org/Numpy_Example_List > > > > See you later, > > B.D. > > > > > > Anders Peterson wrote: > >> Let's call it Jumpy... > >> > >> Since I'm not a python/jython/numpy/scipy user I think someone else > should take the lead here. > >> > >> Don't talk too much - just do it. Start with the most simple case. > >> > >> I'm definitely interested in ways to make ojAlgo more useful. > >> > >> /Anders > >> > >> > >> On 19 apr 2012, at 15:39, Stefan Richthofer wrote: > >> > >>> Hello together, > >>> I also often thought about the idea to have a numpy-substitute for > java, but always feared the enormous effort related to it. > >>> > >>> Be aware of the high Potential of the idea. > >>> > >>> Having a numpy substitute in java would enable a huge amount of > scientific python-code to run directly in java via jython (maybe with a slight > modification of the imports). > >>> > >>> Jython's main issue keeping it from being very useful is, that it does > not support external (native) libraries written for Python. > >>> > >>> I regard numpy as one of the most important of these and I believe, > that a significant amount of scientific python-code has numpy as the only > non-python-core-dependency and thus could run via jython, if there was a numpy > for java. > >>> > >>> Maybe you could consider a cooperation with the jython-developers at > http://www.jython.org ...? > >>> It should be highly in their interest to have a numpy implementation > for java. > >>> > >>> > >>> Greetings > >>> > >>> Stefan > >>> > >>> > >>> > >>> -------- Original-Nachricht -------- > >>>> Datum: Thu, 19 Apr 2012 13:56:49 +0200 > >>>> Von: Anders Peterson <an...@op...> > >>>> An: oja...@li... > >>>> Betreff: Re: [ojAlgo-user] Interface analogous to Numpy? > >>> > >>>> Short anser is yes, but you have to be more specific regarding what > you > >>>> want/need and willing to do some of the work yourself. > >>>> > >>>> ojAlgo has multi/any-dimensional arrays: > >>>> > >>>> http://ojalgo.org/generated/org/ojalgo/array/ArrayAnyD.html > >>>> > >>>> Frankly I don't really know what to do with them. I tend to only use > 1- or > >>>> 2-dimensional data structures. I created them because they were a > >>>> generalization of what I needed that *could* become useful. > >>>> > >>>> I guess the various MatrixStore implementations and the > >>>> MatrixStore.Builder does much of what you want, but only for 2-dim > arrays (and with wrong > >>>> syntax). > >>>> > >>>> http://ojalgo.org/generated/org/ojalgo/matrix/store/MatrixStore.html > >>>> > http://ojalgo.org/generated/org/ojalgo/matrix/store/MatrixStore.Builder.html > >>>> > >>>> In ojAlgo the description of the array shape/structure is fixed as > defined > >>>> in AccessUtils > >>>> > >>>> http://ojalgo.org/generated/org/ojalgo/access/AccessUtils.html > >>>> > >>>> Would that need to be changed? (I hope not.) > >>>> > >>>> /Anders > >>>> > >>>> > >>>> On 19 apr 2012, at 11:35, B.D. wrote: > >>>> > >>>>> Dear developers, > >>>>> > >>>>> I'm primarily interested in Machine Learning and Data analysis. > Thanks > >>>> for the > >>>>> good work, I appreciate the ojAlgo library very much! However, most > new > >>>>> algorithms and applications in this field are still written in > Python > >>>> for > >>>>> Numpy/Scipy, not Java. I just had an idea: > >>>>> > >>>>> If one could offer classes/interfaces in pure Java with similar > >>>> functionality > >>>>> and names as in > >>>>> > >>>>> http://docs.scipy.org/doc/numpy/reference/ , > >>>>> > >>>>> in particular ndarray > >>>>> > >>>>> http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html > >>>>> > >>>>> (e.g. strides in matrices and vectors, transposition, reshaping of > >>>> matrices as > >>>>> a view without copying, many views on the same matrix data), then > one > >>>> could > >>>>> rather easily translate Python programs using Numpy to pure Java > without > >>>>> reinventing the wheel and offer the excellent Python software for > Java > >>>> under > >>>>> the same license as the original. > >>>>> > >>>>> There are syntax limitations in Java, so > >>>>> > >>>>> A[2:5, :] > >>>>> > >>>>> would have to be translated to some intutive name or even a crazy > >>>> mnemonic like > >>>>> > >>>>> A.viewI_c_icI(2, 5) > >>>>> > >>>>> (I = [ or ], > >>>>> i = comma, > >>>>> c = colon, > >>>>> _ = slots for the arguments). > >>>>> > >>>>> What do you think? > >>>>> > >>>>> Best regards > >>>>> B.D. > >>>>> > >>>>> > >>>> > ------------------------------------------------------------------------------ > >>>>> For Developers, A Lot Can Happen In A Second. > >>>>> Boundary is the first to Know...and Tell You. > >>>>> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! > >>>>> http://p.sf.net/sfu/Boundary-d2dvs2 > >>>>> _______________________________________________ > >>>>> ojAlgo-user mailing list > >>>>> ojA...@li... > >>>>> https://lists.sourceforge.net/lists/listinfo/ojalgo-user > >>>> > >>>> > ------------------------------------------------------------------------------ > >>>> For Developers, A Lot Can Happen In A Second. > >>>> Boundary is the first to Know...and Tell You. > >>>> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! > >>>> http://p.sf.net/sfu/Boundary-d2dvs2 > >>>> _______________________________________________ > >>>> ojAlgo-user mailing list > >>>> ojA...@li... > >>>> https://lists.sourceforge.net/lists/listinfo/ojalgo-user > >>> > >>> -- > >>> NEU: FreePhone 3-fach-Flat mit kostenlosem Smartphone! > > >>> Jetzt informieren: http://mobile.1und1.de/?ac=OM.PW.PW003K20328T7073a > >>> > >>> > ------------------------------------------------------------------------------ > >>> For Developers, A Lot Can Happen In A Second. > >>> Boundary is the first to Know...and Tell You. > >>> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! > >>> http://p.sf.net/sfu/Boundary-d2dvs2 > >>> _______________________________________________ > >>> ojAlgo-user mailing list > >>> ojA...@li... > >>> https://lists.sourceforge.net/lists/listinfo/ojalgo-user > >>> > >>> > >> > >> > >> > ------------------------------------------------------------------------------ > >> For Developers, A Lot Can Happen In A Second. > >> Boundary is the first to Know...and Tell You. > >> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! > >> http://p.sf.net/sfu/Boundary-d2dvs2 > >> _______________________________________________ > >> ojAlgo-user mailing list > >> ojA...@li... > >> https://lists.sourceforge.net/lists/listinfo/ojalgo-user > > > > > ------------------------------------------------------------------------------ > > For Developers, A Lot Can Happen In A Second. > > Boundary is the first to Know...and Tell You. > > Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! > > http://p.sf.net/sfu/Boundary-d2dvs2 > > _______________________________________________ > > ojAlgo-user mailing list > > ojA...@li... > > https://lists.sourceforge.net/lists/listinfo/ojalgo-user > > > > > > > ------------------------------------------------------------------------------ > For Developers, A Lot Can Happen In A Second. > Boundary is the first to Know...and Tell You. > Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! > http://p.sf.net/sfu/Boundary-d2dvs2 > _______________________________________________ > ojAlgo-user mailing list > ojA...@li... > https://lists.sourceforge.net/lists/listinfo/ojalgo-user -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de |