On Sun, Feb 5, 2012 at 12:06 PM,
On Sun, Feb 5, 2012 at 12:52 PM, Paolo
wrote: How I can do this?
I'm not sure without trying, numpy.loadtxt might be the easier choice
matrix="".join((i.strip() for i in f.readlines()))
I think strip() also removes newlines besides other whitespace otherwise more explicitly matrix="".join((i.strip(f.newlines) for i in f.readlines()))
or open the file with mode 'rU' and strip('\n')
Josef
This code: matrix="".join(f.readlines()) matrix=np.fromstring(matrix, dtype=np.int16) matrix=matrix.reshape(siz[2],siz[1],siz[0]).T implies that the data in f is binary, because the 'sep' keyword is not used in the call to np.fromstring. If that is the case, you should not use f.readlines() to read the data. Instead, read it as a single string with f.read(). (Or perhaps read the file with a single call to np.fromfile()). Also be sure that the file was opened in binary mode (i.e. f = open(filename, 'rb')). Warren
Il 05/02/2012 18:47, josef.pktd@gmail.com ha scritto:
On Sun, Feb 5, 2012 at 12:39 PM, Paolo
wrote: This is my code:
matrix="".join(f.readlines())
my guess would be, that you have to strip the line endings \n versus \r\n
Josef
matrix=np.fromstring(matrix, dtype=np.int16) matrix=matrix.reshape(siz[2],siz[1],siz[0]).T
Il 05/02/2012 17:21, Olivier Delalleau ha scritto:
It means there is some of your code that is not entirely platform-independent. It's not possible to tell you which part because you didn't provide your code. The problem may not even be numpy-related. So you should first look at the current shape of 'matrix', and what are the values of a, b and c, then see where the discrepancy is, and work from there.
-=- Olivier
Le 5 février 2012 11:16, Paolo Zaffino
a écrit : Yes, I understand this but I don't know because on Linux and Mac it works well. If the matrix size is different it should be different indipendently from os type. Am I wrong? Thanks for your support!
------------------------------ * From: * Olivier Delalleau
; * To: * Discussion of Numerical Python ; * Subject: * Re: [Numpy-discussion] "ValueError: total size of new array must be unchanged" only on Windows * Sent: * Sun, Feb 5, 2012 3:02:44 PM It should mean that matrix.size != a * b * c.
-=- Olivier
Le 5 février 2012 09:32, Paolo
a écrit : Hello, I wrote a function that works on a numpy matrix and it works fine on Mac OS and GNU/Linux (I didn't test it on python 3). Now I have a problem with numpy: the same python file doesn't work on Windows (Windows xp, python 2.7 and numpy 2.6.1). I get this error:
matrix=matrix.reshape(a, b, c) ValueError: total size of new array must be unchanged
Why? Do anyone have an idea about this? Thank you very much. _______________________________________________ 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 listNumPy-Discussion@scipy.orghttp://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