【问题标题】:Python convert string matrix to float matrixPython将字符串矩阵转换为浮点矩阵
【发布时间】:2020-05-14 09:35:48
【问题描述】:

我想将以下矩阵(字符串)转换为浮点数

           0                0                0                0                0
            0                0                0                0       78.2949219
   81.0840607       83.2369537   0.000100000005       101.055199       78.5405502

我用过:

import numpy as np
number = []
for line in filename:
    number.append(line)
number = np.array(number)
number_float = number.astype(np.float)

但它给了我: ValueError:无法将字符串转换为浮点数:'0 0 0 0 0\n' 是因为\n吗?

【问题讨论】:

  • 您需要将行拆分为每个数字的单独元素。
  • 您是否要阅读 fulolile?也许numpy.loadtxt 有用?
  • 谢谢!拆分作品!

标签: python numpy


【解决方案1】:

你没有二维矩阵,你只有一个字符串列表,每行一个元素。您需要将其拆分为单独的数字。

for line in filename:
    number.append(line.split())

您还可以同时进行浮点转换,并且可以使用列表推导构建列表。

number = [[float(cell) for cell in line] for line in filename]

【讨论】:

  • 我认为最好使用列表理解而不是map(或者当然,list(map(...))),因为map返回一个地图对象而不是一个列表(不确定@987654326如何@处理地图对象)
  • @Tomerikoo 总是忘记关于地图的细节。我已转换为嵌套列表推导式。
  • 抱歉打扰了哈哈,但现在你忘了splitline
猜你喜欢
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
相关资源
最近更新 更多