[Numpy-discussion] "ValueError: total size of new array must be unchanged" only on Windows

Paolo p.zaffino at yahoo.it
Sun Feb 5 13:41:28 EST 2012


I solved using 'rb' instead of 'r' option in the open file task.

Thank you very much.





Il 05/02/2012 19:13, Warren Weckesser ha scritto:
>
>
> On Sun, Feb 5, 2012 at 12:06 PM, <josef.pktd at gmail.com 
> <mailto:josef.pktd at gmail.com>> wrote:
>
>
>
>     On Sun, Feb 5, 2012 at 12:52 PM, Paolo <p.zaffino at yahoo.it
>     <mailto:p.zaffino at yahoo.it>> 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 at gmail.com
>         <mailto:josef.pktd at gmail.com> ha scritto:
>>
>>
>>         On Sun, Feb 5, 2012 at 12:39 PM, Paolo <p.zaffino at yahoo.it
>>         <mailto:p.zaffino at yahoo.it>> 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
>>>             <p.zaffino at yahoo.it <mailto:p.zaffino at yahoo.it>> 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 <shish at keba.be
>>>                 <mailto:shish at keba.be>>;
>>>                 *To: * Discussion of Numerical Python
>>>                 <numpy-discussion at scipy.org
>>>                 <mailto:numpy-discussion at scipy.org>>;
>>>                 *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 <p.zaffino at yahoo.it>
>>>                 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 at scipy.org
>>>                     http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>>
>>>
>>>
>>
>>
>>             _______________________________________________
>>             NumPy-Discussion mailing list
>>             NumPy-Discussion at scipy.org
>>             <mailto:NumPy-Discussion at scipy.org>
>>             http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>
>>
>>
>>         _______________________________________________
>>         NumPy-Discussion mailing list
>>         NumPy-Discussion at scipy.org  <mailto:NumPy-Discussion at scipy.org>
>>         http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
>         _______________________________________________
>         NumPy-Discussion mailing list
>         NumPy-Discussion at scipy.org <mailto:NumPy-Discussion at scipy.org>
>         http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
>
>     _______________________________________________
>     NumPy-Discussion mailing list
>     NumPy-Discussion at scipy.org <mailto:NumPy-Discussion at scipy.org>
>     http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20120205/23da6e62/attachment.html>


More information about the NumPy-Discussion mailing list