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

Warren Weckesser warren.weckesser at enthought.com
Sun Feb 5 13:13:01 EST 2012


On Sun, Feb 5, 2012 at 12:06 PM, <josef.pktd at gmail.com> wrote:

>
>
> On Sun, Feb 5, 2012 at 12:52 PM, Paolo <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 ha scritto:
>>
>>
>>
>> On Sun, Feb 5, 2012 at 12:39 PM, Paolo <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> 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>;
>>>> * To: * Discussion of Numerical Python <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
>>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>>
>>>
>>
>>
>> _______________________________________________
>> NumPy-Discussion mailing listNumPy-Discussion at scipy.orghttp://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>
>>
>> _______________________________________________
>> 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
> 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/e4716611/attachment.html>


More information about the NumPy-Discussion mailing list