【问题标题】:Converting Numpy array into list prints out extra zeros? Python [duplicate]将 Numpy 数组转换为列表会打印出额外的零? Python [重复]
【发布时间】:2020-07-04 00:52:17
【问题描述】:

我使用numpy 创建了一个数组,需要将每个值转换为一个字符串列表。

这是我发现有效的解决方案:

props = np.arange(0.2,0.5,0.1)
props = [str(i) for i in props]

但是当我打印出来时,结果是这样的:

Out[177]: ['0.2', '0.30000000000000004', '0.4000000000000001']]

我想要的结果是['0.2', '0.3', '0.4']

我做错了什么?

有没有更有效的方式来做到这一点,或者这是一种复杂的方式?

【问题讨论】:

标签: python numpy


【解决方案1】:

除了round()- 函数,您可以使用这个小解决方法:

import numpy as np
props = np.arange(0.2,0.5,0.1)
props = [str(int(i*10)/10) for i in props]
print(props)

【讨论】:

    【解决方案2】:

    把它们四舍五入

    props = np.arange(0.2,0.5,0.1)
    props = [str(round(i,2)) for i in props]
    
    ['0.2', '0.3', '0.4']
    

    【讨论】:

      【解决方案3】:

      你可以使用np.around:

      import numpy as np
      
      props = np.arange(0.2,0.5,0.1)
      props = np.around(props, 1)
      props = [str(i) for i in props]
      
      #output
      ['0.2', '0.3', '0.4']
      

      或者:

      props = np.arange(0.2,0.5,0.1)
      props = [str(np.around(i, 1)) for i in props]
      

      【讨论】:

        猜你喜欢
        • 2021-11-29
        • 2019-01-21
        • 2016-03-25
        • 2012-04-01
        • 2022-07-07
        • 2019-08-21
        • 1970-01-01
        • 2014-07-14
        • 2021-08-02
        相关资源
        最近更新 更多