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.p...@gmail.com <mailto:josef.p...@gmail.com>> wrote:



    On Sun, Feb 5, 2012 at 12:52 PM, Paolo <p.zaff...@yahoo.it
    <mailto:p.zaff...@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.p...@gmail.com
        <mailto:josef.p...@gmail.com> ha scritto:


        On Sun, Feb 5, 2012 at 12:39 PM, Paolo <p.zaff...@yahoo.it
        <mailto:p.zaff...@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.zaff...@yahoo.it <mailto:p.zaff...@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 <sh...@keba.be
                <mailto:sh...@keba.be>>;
                *To: * Discussion of Numerical Python
                <numpy-discussion@scipy.org
                <mailto:numpy-discussion@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.zaff...@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@scipy.org
                    http://mail.scipy.org/mailman/listinfo/numpy-discussion





            _______________________________________________
            NumPy-Discussion mailing list
            NumPy-Discussion@scipy.org
            <mailto:NumPy-Discussion@scipy.org>
            http://mail.scipy.org/mailman/listinfo/numpy-discussion




        _______________________________________________
        NumPy-Discussion mailing list
        NumPy-Discussion@scipy.org  <mailto:NumPy-Discussion@scipy.org>
        http://mail.scipy.org/mailman/listinfo/numpy-discussion


        _______________________________________________
        NumPy-Discussion mailing list
        NumPy-Discussion@scipy.org <mailto:NumPy-Discussion@scipy.org>
        http://mail.scipy.org/mailman/listinfo/numpy-discussion



    _______________________________________________
    NumPy-Discussion mailing list
    NumPy-Discussion@scipy.org <mailto: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

Reply via email to