Numpy: How to cast string array to float while some of the elements contain extra quoted string



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








1















I am trying to convert string to float type by the following



X = arr[:,:-1].astype(np.float32)


However, error as below is rising



ValueError: could not convert string to float: '"53"'


I know this means I have some elements with extra quote in the array.
My problem is how should I solve this. How can I convert element '"53"' into 53 inside the array?



UPDATE 1:
Here is an example to reproduce



import numpy as np
a = np.array([['12','13'],['"53"','44']])
a = a.astype(np.float32)









share|improve this question



















  • 1





    It would be nice if you could provide a reproducible example.

    – Mad Physicist
    Nov 14 '18 at 5:17

















1















I am trying to convert string to float type by the following



X = arr[:,:-1].astype(np.float32)


However, error as below is rising



ValueError: could not convert string to float: '"53"'


I know this means I have some elements with extra quote in the array.
My problem is how should I solve this. How can I convert element '"53"' into 53 inside the array?



UPDATE 1:
Here is an example to reproduce



import numpy as np
a = np.array([['12','13'],['"53"','44']])
a = a.astype(np.float32)









share|improve this question



















  • 1





    It would be nice if you could provide a reproducible example.

    – Mad Physicist
    Nov 14 '18 at 5:17













1












1








1








I am trying to convert string to float type by the following



X = arr[:,:-1].astype(np.float32)


However, error as below is rising



ValueError: could not convert string to float: '"53"'


I know this means I have some elements with extra quote in the array.
My problem is how should I solve this. How can I convert element '"53"' into 53 inside the array?



UPDATE 1:
Here is an example to reproduce



import numpy as np
a = np.array([['12','13'],['"53"','44']])
a = a.astype(np.float32)









share|improve this question
















I am trying to convert string to float type by the following



X = arr[:,:-1].astype(np.float32)


However, error as below is rising



ValueError: could not convert string to float: '"53"'


I know this means I have some elements with extra quote in the array.
My problem is how should I solve this. How can I convert element '"53"' into 53 inside the array?



UPDATE 1:
Here is an example to reproduce



import numpy as np
a = np.array([['12','13'],['"53"','44']])
a = a.astype(np.float32)






python numpy






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 15 '18 at 2:25







Jumabek Alikhanov

















asked Nov 14 '18 at 5:00









Jumabek AlikhanovJumabek Alikhanov

1,14811118




1,14811118







  • 1





    It would be nice if you could provide a reproducible example.

    – Mad Physicist
    Nov 14 '18 at 5:17












  • 1





    It would be nice if you could provide a reproducible example.

    – Mad Physicist
    Nov 14 '18 at 5:17







1




1





It would be nice if you could provide a reproducible example.

– Mad Physicist
Nov 14 '18 at 5:17





It would be nice if you could provide a reproducible example.

– Mad Physicist
Nov 14 '18 at 5:17












2 Answers
2






active

oldest

votes


















4














Try stripping the double quotes from the array, then casting to float.



Like so:



arr = np.char.strip(arr, '"')
X = arr[:,:-1].astype(np.float32)





share|improve this answer
































    1














    You could also use numpy.char.replace() to perform element-wise string replace on an array of strings.




    Signature: np.char.replace(a, old, new, count=None)



    Docstring: For
    each element in a, return a copy of the string with all occurrences
    of substring old replaced by new. Calls str.replace element-wise.





    import numpy as np
    a = np.array([["12","13"],['"53"',"44"]])

    b = np.char.replace(a, '"', '')
    c = b.astype(np.float32)





    share|improve this answer























      Your Answer






      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "1"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293444%2fnumpy-how-to-cast-string-array-to-float-while-some-of-the-elements-contain-extr%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      4














      Try stripping the double quotes from the array, then casting to float.



      Like so:



      arr = np.char.strip(arr, '"')
      X = arr[:,:-1].astype(np.float32)





      share|improve this answer





























        4














        Try stripping the double quotes from the array, then casting to float.



        Like so:



        arr = np.char.strip(arr, '"')
        X = arr[:,:-1].astype(np.float32)





        share|improve this answer



























          4












          4








          4







          Try stripping the double quotes from the array, then casting to float.



          Like so:



          arr = np.char.strip(arr, '"')
          X = arr[:,:-1].astype(np.float32)





          share|improve this answer















          Try stripping the double quotes from the array, then casting to float.



          Like so:



          arr = np.char.strip(arr, '"')
          X = arr[:,:-1].astype(np.float32)






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 14 '18 at 5:12

























          answered Nov 14 '18 at 5:07









          Riley Steele ParsonsRiley Steele Parsons

          23016




          23016























              1














              You could also use numpy.char.replace() to perform element-wise string replace on an array of strings.




              Signature: np.char.replace(a, old, new, count=None)



              Docstring: For
              each element in a, return a copy of the string with all occurrences
              of substring old replaced by new. Calls str.replace element-wise.





              import numpy as np
              a = np.array([["12","13"],['"53"',"44"]])

              b = np.char.replace(a, '"', '')
              c = b.astype(np.float32)





              share|improve this answer



























                1














                You could also use numpy.char.replace() to perform element-wise string replace on an array of strings.




                Signature: np.char.replace(a, old, new, count=None)



                Docstring: For
                each element in a, return a copy of the string with all occurrences
                of substring old replaced by new. Calls str.replace element-wise.





                import numpy as np
                a = np.array([["12","13"],['"53"',"44"]])

                b = np.char.replace(a, '"', '')
                c = b.astype(np.float32)





                share|improve this answer

























                  1












                  1








                  1







                  You could also use numpy.char.replace() to perform element-wise string replace on an array of strings.




                  Signature: np.char.replace(a, old, new, count=None)



                  Docstring: For
                  each element in a, return a copy of the string with all occurrences
                  of substring old replaced by new. Calls str.replace element-wise.





                  import numpy as np
                  a = np.array([["12","13"],['"53"',"44"]])

                  b = np.char.replace(a, '"', '')
                  c = b.astype(np.float32)





                  share|improve this answer













                  You could also use numpy.char.replace() to perform element-wise string replace on an array of strings.




                  Signature: np.char.replace(a, old, new, count=None)



                  Docstring: For
                  each element in a, return a copy of the string with all occurrences
                  of substring old replaced by new. Calls str.replace element-wise.





                  import numpy as np
                  a = np.array([["12","13"],['"53"',"44"]])

                  b = np.char.replace(a, '"', '')
                  c = b.astype(np.float32)






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 14 '18 at 6:02









                  NirmalNirmal

                  312312




                  312312



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293444%2fnumpy-how-to-cast-string-array-to-float-while-some-of-the-elements-contain-extr%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

                      Crossroads (UK TV series)

                      ữḛḳṊẴ ẋ,Ẩṙ,ỹḛẪẠứụỿṞṦ,Ṉẍừ,ứ Ị,Ḵ,ṏ ṇỪḎḰṰọửḊ ṾḨḮữẑỶṑỗḮṣṉẃ Ữẩụ,ṓ,ḹẕḪḫỞṿḭ ỒṱṨẁṋṜ ḅẈ ṉ ứṀḱṑỒḵ,ḏ,ḊḖỹẊ Ẻḷổ,ṥ ẔḲẪụḣể Ṱ ḭỏựẶ Ồ Ṩ,ẂḿṡḾồ ỗṗṡịṞẤḵṽẃ ṸḒẄẘ,ủẞẵṦṟầṓế