Re: [Numpy-discussion] printing array in tabular form
Thank you, But I was looking for a format statement likw write(*,(A,5F8.3)) with best regards, Sudheer *** Sudheer Joseph Indian National Centre for Ocean Information Services Ministry of Earth Sciences, Govt. of India POST BOX NO: 21, IDA Jeedeemetla P.O. Via Pragathi Nagar,Kukatpally, Hyderabad; Pin:5000 55 Tel:+91-40-23886047(O),Fax:+91-40-23895011(O), Tel:+91-40-23044600(R),Tel:+91-40-9440832534(Mobile) E-mail:sjo.in...@gmail.com;sudheer.jos...@yahoo.com Web- http://oppamthadathil.tripod.com *** From: Daπid davidmen...@gmail.com To: Discussion of Numerical Python numpy-discussion@scipy.org Sent: Thursday, 9 May 2013 2:29 PM Subject: Re: [Numpy-discussion] printing array in tabular form On 9 May 2013 10:06, Sudheer Joseph sudheer.jos...@yahoo.com wrote: However writing a formatted out put looks to be bit tricky with python relative to other programing languages. If performance is not an issue, you could do it by hand, as you can always do in any programming language: savefile = open('data.txt', 'w') N = len(IL) for start in xrange(N/5): if start+5 N: end = N else: end = start+5 print savefile, IL[start : end] But this is actually more verbose, and once you get into NumPy workflow, it is actually simple. ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] printing array in tabular form
On 10/05/2013 11:14, Sudheer Joseph wrote: However writing a formatted out put looks to be bit tricky with python relative to other programing languages. ... I was looking for a format statement likw write(*,(A,5F8.3)) Before denigrating a programming language I would make sure to have a basic understanding of it. Every language is going to be tricky if you approach it with the mindset of Fortran programming. The output format you are trying to obtain is easy in forrtran because it is how the default text output formatting is designed. Of course obtaining it with a different programming language / numerical library takes some more effort. But is not tricky at all. Cheers, Daniele ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
[Numpy-discussion] Scalar output from sub-classed Numpy array
Hi everyone, I am currently trying to write a sub-class of Numpy ndarray, but am running into issues for functions that return scalar results rather than array results. For example, in the following case: import numpy as np class TestClass(np.ndarray): def __new__(cls, input_array, unit=None): return np.asarray(input_array).view(cls) def __array_finalize__(self, obj): if obj is None: return def __array_wrap__(self, out_arr, context=None): return np.ndarray.__array_wrap__(self, out_arr, context) I get: In [4]: a = TestClass([1,2,3]) In [5]: print type(np.dot(a,a)) type 'numpy.int64' In [6]: a = TestClass([[1,2],[1,2]]) In [7]: print type(np.dot(a,a)) class '__main__.TestClass' that is, in the case where the output is a scalar, it doesn't get wrapped, while in the case where the output is an array, it does. Could anyone explain this behavior to me, and most importantly, is there a way around this and have the above example return a wrapped 0-d TestClass array instead of a Numpy int64? Thanks, Tom ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] printing array in tabular form
Hi, I am trying to learn Python after feeling its utility in coding and also reading a bit about its potential only, please do not put words in to my mouth like below. Before denigrating a programming language If some one has a quick way I would like to learn from them or get a referecence where the formatting part is described which was my intention while posting here. As I have been using fortran I just tried to use it to explain my requirement with best regards, Sduheer From: Daniele Nicolodi dani...@grinta.net To: numpy-discussion@scipy.org Sent: Friday, 10 May 2013 3:12 PM Subject: Re: [Numpy-discussion] printing array in tabular form On 10/05/2013 11:14, Sudheer Joseph wrote: However writing a formatted out put looks to be bit tricky with python relative to other programing languages. ... I was looking for a format statement likw write(*,(A,5F8.3)) Before denigrating a programming language I would make sure to have a basic understanding of it. Every language is going to be tricky if you approach it with the mindset of Fortran programming. The output format you are trying to obtain is easy in forrtran because it is how the default text output formatting is designed. Of course obtaining it with a different programming language / numerical library takes some more effort. But is not tricky at all. Cheers, Daniele ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] printing array in tabular form
On 10.05.2013, at 1:20PM, Sudheer Joseph sudheer.jos...@yahoo.com wrote: If some one has a quick way I would like to learn from them or get a referecence where the formatting part is described which was my intention while posting here. As I have been using fortran I just tried to use it to explain my requirement Admittedly the formatting options in Python can be confusing to beginners, precisely since they are much more powerful than for many other languages. As already pointed out, formats of the type '(5i5)' are very common to Fortran programs and thus readily supported by the language. np.savetxt is just a convenience function to support a number of similarly common output types, and it can create csv, tab-separated, or plenty of other outputs from a numpy array just out of the box. But you added to the confusion as you did not make it clear that you were not just requiring a plain csv file as your Fortran example would create (and the first version did not even have the commas); since this is a rather non-standard form you will just have to write a short loop yourself, wether you are using Fortran or Python. Infact the program which should read this file requires it in specified format which should look like IL = 1,2,3,4,5 1,2,3,4,5 1,2,3,4,5 The formats are all documented http://docs.python.org/2/library/string.html#format-specification-mini-language one important thing to know is that you can pretty much add (i.e. concatenate) them like strings: print((%6s+4*%d,+%d\n) % ((IL = ,)+tuple(IL[:5]))) or, perhaps a bit clearer: fmt = %6s+4*%d,+%d\n print_t = (IL = ,)+tuple(IL[:5]) print(fmt % print_t) The other important bit to keep in mind is that all arguments have to be passed as tuples. This should allow you to write a loop to print with a header or an empty header column for the subsequent lines as you see fit. Except for the string field which is explicitly formatted %s here, this is mostly equivalent to the example Henry just posted. HTH, Derek ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Name change of the ptp() function
10.05.2013 08:47, Eli Bressert kirjoitti: [clip: renaming ptp] valuerange() appears to the best most favored one. range(), arange(), valuerange() I'm not really a big fan of changing the name of this function at this stage, as it seems to me that whether it's a gain or not is somewhat a matter of taste. -- Pauli Virtanen ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] printing array in tabular form
Sudheer, This is not really numpy specific. There are many options for output formatting in python. For the specific question you have, you could do: print '{0}{1:8.3f}{2:8.3f}{3:8.3f}{4:8.3f}{5:8.3f}'.format(s,x1,x2,x3,x4,x5) format is a built-in python string method (see python docs). The one thing that I will agree with you on is that, as far as I know, there is no repeat count mechanism. There are tricky ways around that, e.g. fmt = '{0}' + ''.join(['{'+str(i)+':8.3f}' for i in range(1,6)]) print fmt.format(s,x1,x2,x3,x4,x5) though not as simple as the fortran output statement. Jon On Fri, 2013-05-10 at 17:14 +0800, Sudheer Joseph wrote: Thank you, But I was looking for a format statement likw write(*,(A,5F8.3)) with best regards, Sudheer *** Sudheer Joseph Indian National Centre for Ocean Information Services Ministry of Earth Sciences, Govt. of India POST BOX NO: 21, IDA Jeedeemetla P.O. Via Pragathi Nagar,Kukatpally, Hyderabad; Pin:5000 55 Tel:+91-40-23886047(O),Fax:+91-40-23895011(O), Tel:+91-40-23044600(R),Tel:+91-40-9440832534(Mobile) E-mail:sjo.in...@gmail.com;sudheer.jos...@yahoo.com Web- http://oppamthadathil.tripod.com *** __ From: Daπid davidmen...@gmail.com To: Discussion of Numerical Python numpy-discussion@scipy.org Sent: Thursday, 9 May 2013 2:29 PM Subject: Re: [Numpy-discussion] printing array in tabular form On 9 May 2013 10:06, Sudheer Joseph sudheer.jos...@yahoo.com wrote: However writing a formatted out put looks to be bit tricky with python relative to other programing languages. If performance is not an issue, you could do it by hand, as you can always do in any programming language: savefile = open('data.txt', 'w') N = len(IL) for start in xrange(N/5): if start+5 N: end = N else: end = start+5 print savefile, IL[start : end] But this is actually more verbose, and once you get into NumPy workflow, it is actually simple. ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion -- __ Jonathan D. Slavin Harvard-Smithsonian CfA jsla...@cfa.harvard.edu 60 Garden Street, MS 83 phone: (617) 496-7981 Cambridge, MA 02138-1516 cell: (781) 363-0035 USA __ ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] printing array in tabular form
On 10/05/2013 13:20, Sudheer Joseph wrote: Hi, I am trying to learn Python after feeling its utility in coding and also reading a bit aboutits potential only, please do not put words in to my mouth like below. I didn't put words in your mouth, I simply quoted emails you sent to the list and gave my interpretation of what you wrote. Before denigrating a programming language If some one has a quick way I would like to learn from them or get a referecence where the formatting part is described which was my intention while posting here. As I have been using fortran I just tried to use it to explain my requirement For references about string formatting in Python: http://docs.python.org/2/library/string.html#formatstrings http://docs.python.org/2/library/stdtypes.html#string-formatting for the numpy array to text formatting: http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html writing a function to do what you ask is trivial. Unfortunately there is no format the thing as I wish function. If you wish to format numpy arrays preceding them with a variable name, the following is a possible solution that gives the same formatting as in your example: import numpy as np import sys def format(out, v, name): header = {} = .format(name) out.write(header) np.savetxt(out, v, fmt=%d, delimiter=, , newline=\n + * len(header)) out.write(\n) IL = np.array([range(5), ] * 5) format(sys.stdout, IL, IL) Cheers, Daniele ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Name change of the ptp() function
That's a good point regarding the range function names. But, I think the issue still stands on the readability of the ptp function. Regarding PEP20 it's stated that readability counts. If you regard what ptp is supposed to replace, array.max() - array.min(), the aforementioned follows the PEP20 better as it is more readable. If valuerange() is not an acceptable name, maybe span()? -Eli On Fri, May 10, 2013 at 10:44 PM, Pauli Virtanen p...@iki.fi wrote: 10.05.2013 08:47, Eli Bressert kirjoitti: [clip: renaming ptp] valuerange() appears to the best most favored one. range(), arange(), valuerange() I'm not really a big fan of changing the name of this function at this stage, as it seems to me that whether it's a gain or not is somewhat a matter of taste. -- Pauli Virtanen ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Name change of the ptp() function
10.05.2013 16:04, Eli Bressert kirjoitti: That's a good point regarding the range function names. But, I think the issue still stands on the readability of the ptp function. Regarding PEP20 it's stated that readability counts. I think here it has to be kept in mind that this function has been called ptp() already in Numeric, i.e., for the last 10+ years. This is the first proposal to change it that I know of, so I think keeping the API the same weighs against changing it due to aesthetic reasons. -- Pauli Virtanen ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Name change of the ptp() function
On Fri, May 10, 2013 at 2:04 PM, Eli Bressert ebress...@gmail.com wrote: That's a good point regarding the range function names. But, I think the issue still stands on the readability of the ptp function. Regarding PEP20 it's stated that readability counts. If you regard what ptp is supposed to replace, array.max() - array.min(), the aforementioned follows the PEP20 better as it is more readable. If valuerange() is not an acceptable name, maybe span()? Sure, it's probably more readable, and that would be the controlling factor if this were a new function. But that's not really the operative question here. Are the gains in readability worth the nontrivial costs of deprecating and removing the old name? I, for one, am generally not in favor of such deprecations. -- Robert Kern ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Name change of the ptp() function
On Fri, May 10, 2013 at 3:17 PM, Robert Kern robert.k...@gmail.com wrote: On Fri, May 10, 2013 at 2:04 PM, Eli Bressert ebress...@gmail.com wrote: That's a good point regarding the range function names. But, I think the issue still stands on the readability of the ptp function. Regarding PEP20 it's stated that readability counts. If you regard what ptp is supposed to replace, array.max() - array.min(), the aforementioned follows the PEP20 better as it is more readable. If valuerange() is not an acceptable name, maybe span()? Sure, it's probably more readable, and that would be the controlling factor if this were a new function. But that's not really the operative question here. Are the gains in readability worth the nontrivial costs of deprecating and removing the old name? I, for one, am generally not in favor of such deprecations. That's not the only option though. I'm -1 on deprecation, but +0 on renaming and keeping ptp as an alias. The function name is really quite poor. Ralf ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] printing array in tabular form
On 10.05.2013, at 2:51PM, Daniele Nicolodi dani...@grinta.net wrote: If you wish to format numpy arrays preceding them with a variable name, the following is a possible solution that gives the same formatting as in your example: import numpy as np import sys def format(out, v, name): header = {} = .format(name) out.write(header) np.savetxt(out, v, fmt=%d, delimiter=, , newline=\n + * len(header)) out.write(\n) IL = np.array([range(5), ] * 5) format(sys.stdout, IL, IL) That is a quite ingenuous way to use savetxt functionality to write that extra column! Only two comments: Don't call that function format, as it would mask the 'format' builtin! In the present version it will only work with a file handle; to print it a to file you would need to pass it as fformat(open(fname, 'a'), … or check for that case inside the function. Cheers, Derek ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Name change of the ptp() function
On Fri, May 10, 2013 at 2:27 PM, Ralf Gommers ralf.gomm...@gmail.com wrote: On Fri, May 10, 2013 at 3:17 PM, Robert Kern robert.k...@gmail.com wrote: On Fri, May 10, 2013 at 2:04 PM, Eli Bressert ebress...@gmail.com wrote: That's a good point regarding the range function names. But, I think the issue still stands on the readability of the ptp function. Regarding PEP20 it's stated that readability counts. If you regard what ptp is supposed to replace, array.max() - array.min(), the aforementioned follows the PEP20 better as it is more readable. If valuerange() is not an acceptable name, maybe span()? Sure, it's probably more readable, and that would be the controlling factor if this were a new function. But that's not really the operative question here. Are the gains in readability worth the nontrivial costs of deprecating and removing the old name? I, for one, am generally not in favor of such deprecations. That's not the only option though. I'm -1 on deprecation, but +0 on renaming and keeping ptp as an alias. The function name is really quite poor. I think it is a matter of context. I don't know the history of that function, but coming from a signal processing background, its meaning was obvious to me. It is a peak to peak is a very common operations when dealing with audio file, for example (that's how most wave display work AFAIK). I am certainly -1 on the deprecation as well, and -0 on alias. David ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Name change of the ptp() function
On May 10, 2013 3:18 PM, Robert Kern robert.k...@gmail.com wrote: Sure, it's probably more readable I am not sure of it. I would have to check the docs to see what it means. The mathematical term is range, but it already has a meaning in Python, so it is not a good way to go, being perhaps valuerange the compromise, but not really clear by itself. In some areas, nevertheless, ptp is the standard notation, as it is in electronics - and maybe that is why it made its way into Numeric. ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
[Numpy-discussion] __array_priority__ don't work for gt, lt, ... operator
Hi, it popped again on the Theano mailing list that this don't work: np.arange(10) = a_theano_vector. The reason is that __array_priority__ isn't respected for that class of operation. This page explain the problem and give a work around: http://stackoverflow.com/questions/14619449/how-can-i-override-comparisons-between-numpys-ndarray-and-my-type The work around is to make a python function that will decide witch version of the comparator to call and do the call. Then we tell NumPy to use that function instead of its current function with: np.set_numeric_ops(...) But if we do that, when we import theano, we will slow down all normal numpy comparison for the user, as when = is execute, first there will be numpy c code executed, that will call the python function to decide witch version to do, then if it is 2 numpy ndarray, it will call again numpy c code. That isn't a good solution. We could do the same override in C, but then theano work the same when there isn't a c++ compiler. That isn't nice. What do you think of changing them to check for __array_priority__ before doing the comparison? Frédéric ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] __array_priority__ don't work for gt, lt, ... operator
I'm trying to do it, but each time I want to test something, it takes a long time to rebuild numpy to test it. Is there a way to don't recompile everything for each test? thanks Fred On Fri, May 10, 2013 at 1:34 PM, Charles R Harris charlesr.har...@gmail.com wrote: On Fri, May 10, 2013 at 10:08 AM, Frédéric Bastien no...@nouiz.orgwrote: Hi, it popped again on the Theano mailing list that this don't work: np.arange(10) = a_theano_vector. The reason is that __array_priority__ isn't respected for that class of operation. This page explain the problem and give a work around: http://stackoverflow.com/questions/14619449/how-can-i-override-comparisons-between-numpys-ndarray-and-my-type The work around is to make a python function that will decide witch version of the comparator to call and do the call. Then we tell NumPy to use that function instead of its current function with: np.set_numeric_ops(...) But if we do that, when we import theano, we will slow down all normal numpy comparison for the user, as when = is execute, first there will be numpy c code executed, that will call the python function to decide witch version to do, then if it is 2 numpy ndarray, it will call again numpy c code. That isn't a good solution. We could do the same override in C, but then theano work the same when there isn't a c++ compiler. That isn't nice. What do you think of changing them to check for __array_priority__ before doing the comparison? This looks like an oversight and should be fixed. Chuck ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
[Numpy-discussion] tests not running
Here is my set up: Mac OS 10.7.5 Xcode 4.5.1 Intel Fortran 12.1 Python 2.7.3 built from source Numpy 1.6.2 built from source, using MKL 11.0 nose 0.11.4 installed I run the numpy tests as documented (python -c 'import numpy; numpy.test()'), but get this output: tkacvins@macomsim python -c 'import numpy; numpy.test()' Running unit tests for numpy NumPy version 1.6.2 NumPy is installed in /rd/gen/tky/do_not_delete/Python/macpython27/lib/python2.7/site-packages/numpy Python version 2.7.3 (default, Oct 10 2012, 14:47:52) [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)] nose version 0.11.4 -- Ran 0 tests in 0.025s OK Any diagnostics or options I can pass to the tests to see what is going on? This is rather odd, I thought the tests would run and possibly fail. I didn't expect 0 tests to run. Thanks, Tom This email and any attachments are intended solely for the use of the individual or entity to whom it is addressed and may be confidential and/or privileged. If you are not one of the named recipients or have received this email in error, (i) you should not read, disclose, or copy it, (ii) please notify sender of your receipt by reply email and delete this email and all attachments, (iii) Dassault Systemes does not accept or assume any liability or responsibility for any use of or reliance on this email. For other languages, go to http://www.3ds.com/terms/email-disclaimer ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] __array_priority__ don't work for gt, lt, ... operator
On Fri, 2013-05-10 at 15:35 -0400, Frédéric Bastien wrote: I'm trying to do it, but each time I want to test something, it takes a long time to rebuild numpy to test it. Is there a way to don't recompile everything for each test? Are you using current master? It defaults to use ENABLE_SEPARATE_COMPILATION enviroment variable, which, together with ccache, makes most changes in numpy compile fast for me. - Sebastian thanks Fred On Fri, May 10, 2013 at 1:34 PM, Charles R Harris charlesr.har...@gmail.com wrote: On Fri, May 10, 2013 at 10:08 AM, Frédéric Bastien no...@nouiz.org wrote: Hi, it popped again on the Theano mailing list that this don't work: np.arange(10) = a_theano_vector. The reason is that __array_priority__ isn't respected for that class of operation. This page explain the problem and give a work around: http://stackoverflow.com/questions/14619449/how-can-i-override-comparisons-between-numpys-ndarray-and-my-type The work around is to make a python function that will decide witch version of the comparator to call and do the call. Then we tell NumPy to use that function instead of its current function with: np.set_numeric_ops(...) But if we do that, when we import theano, we will slow down all normal numpy comparison for the user, as when = is execute, first there will be numpy c code executed, that will call the python function to decide witch version to do, then if it is 2 numpy ndarray, it will call again numpy c code. That isn't a good solution. We could do the same override in C, but then theano work the same when there isn't a c++ compiler. That isn't nice. What do you think of changing them to check for __array_priority__ before doing the comparison? This looks like an oversight and should be fixed. Chuck ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] __array_priority__ don't work for gt, lt, ... operator
thanks, I'll look at it. I made a PR: https://github.com/numpy/numpy/pull/3324 Where should I put the tests about this? thanks Fred On Fri, May 10, 2013 at 4:03 PM, Sebastian Berg sebast...@sipsolutions.netwrote: On Fri, 2013-05-10 at 15:35 -0400, Frédéric Bastien wrote: I'm trying to do it, but each time I want to test something, it takes a long time to rebuild numpy to test it. Is there a way to don't recompile everything for each test? Are you using current master? It defaults to use ENABLE_SEPARATE_COMPILATION enviroment variable, which, together with ccache, makes most changes in numpy compile fast for me. - Sebastian thanks Fred On Fri, May 10, 2013 at 1:34 PM, Charles R Harris charlesr.har...@gmail.com wrote: On Fri, May 10, 2013 at 10:08 AM, Frédéric Bastien no...@nouiz.org wrote: Hi, it popped again on the Theano mailing list that this don't work: np.arange(10) = a_theano_vector. The reason is that __array_priority__ isn't respected for that class of operation. This page explain the problem and give a work around: http://stackoverflow.com/questions/14619449/how-can-i-override-comparisons-between-numpys-ndarray-and-my-type The work around is to make a python function that will decide witch version of the comparator to call and do the call. Then we tell NumPy to use that function instead of its current function with: np.set_numeric_ops(...) But if we do that, when we import theano, we will slow down all normal numpy comparison for the user, as when = is execute, first there will be numpy c code executed, that will call the python function to decide witch version to do, then if it is 2 numpy ndarray, it will call again numpy c code. That isn't a good solution. We could do the same override in C, but then theano work the same when there isn't a c++ compiler. That isn't nice. What do you think of changing them to check for __array_priority__ before doing the comparison? This looks like an oversight and should be fixed. Chuck ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] tests not running
On Fri, May 10, 2013 at 9:41 PM, KACVINSKY Tom tom.kacvin...@3ds.comwrote: Here is my set up: Mac OS 10.7.5 Xcode 4.5.1 Intel Fortran 12.1 Python 2.7.3 built from source Numpy 1.6.2 built from source, using MKL 11.0 nose 0.11.4 installed I run the numpy tests as documented (python -c 'import numpy; numpy.test()'), but get this output: tkacvins@macomsim python -c 'import numpy; numpy.test()' Running unit tests for numpy NumPy version 1.6.2 NumPy is installed in /rd/gen/tky/do_not_delete/Python/macpython27/lib/python2.7/site-packages/numpy Python version 2.7.3 (default, Oct 10 2012, 14:47:52) [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)] nose version 0.11.4 -- Ran 0 tests in 0.025s OK Any diagnostics or options I can pass to the tests to see what is going on? This is rather odd, I thought the tests would run and possibly fail. I didn't expect 0 tests to run. That's usually due to the executable bit being set on all files during install (setuptools does this, nose disapproves). Try `` np.test(extra_argv='--exe')``. Ralf ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
[Numpy-discussion] 0-dim arrays inconsistency
np.array ((0,0)) Out[10]: array([0, 0]) ok, it's 2 dimensional In [11]: np.array ((0,0)).shape Out[11]: (2,) except, it isn't ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] 0-dim arrays inconsistency
Hi Neal, On Fri, May 10, 2013 at 7:36 PM, Neal Becker ndbeck...@gmail.com wrote: np.array ((0,0)) Out[10]: array([0, 0]) ok, it's 2 dimensional Think you may have confused yourself :-). It's 1 dimensional with 2 elements... In [11]: np.array ((0,0)).shape Out[11]: (2,) except, it isn't ...as per above. (Not sure where the 0-dim part comes in.) -n ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] 0-dim arrays inconsistency
Neal Becker wrote: np.array ((0,0)) Out[10]: array([0, 0]) ok, it's 2 dimensional In [11]: np.array ((0,0)).shape Out[11]: (2,) except, it isn't Sorry for the stupid question - please ignore ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
[Numpy-discussion] somewhat less stupid problem with 0-d arrays
It would be convenient if in arithmetic 0-d arrays were just ignored - it would seem to me to be convenient in generic code where a degenerate array is treated as nothing np.zeros ((0,0)) + np.ones ((2,2)) --- ValueErrorTraceback (most recent call last) ipython-input-17-27af0e0bbc6f in module() 1 np.zeros ((0,0)) + np.ones ((2,2)) ValueError: operands could not be broadcast together with shapes (0,0) (2,2) ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion