将字符串列表转换为浮点数numpy Python数组

时间:2017-07-04 14:10:26

标签: python arrays string list

这是一个列表,其中每行包含一个字符串。例如'1,-40。,-3。'是一个字符串。我想首先将列表分成具有numpy的列,然后将字符串转换为浮点数,反之亦然。那可能吗?我尝试删除空格但没有运气。 最终结果将是一个包含3列和x行的矩阵,其中所有元素都是浮点数。有可能吗?

  1,         -40.,          -3.
  2,         -40.,          -6.
  3,         -40.,          -9.
  4,         -40.,         -12.
  5,         -40.,         -15.
  6,         -40.,         -18.
  7,         -40.,         -21.
  8,         -40.,         -24.
  9,         -40.,         -27.
 10,         -40.,           0.
 11,         -40.,         -30.
 12,         -36.,         -30.
 13,         -34.,         -30.
 14,         -30.,         -30.
 15,         -28.,         -30.
 16,         -24.,         -30.
 17,         -22.,         -30.
 18,         -18.,         -30.
 19,         -16.,         -30.
 20,         -12.,         -30.
 21,         -10.,         -30.
 22,          -6.,         -30.
 23,          -4.,         -30.
 24,           0.,         -30.
 25,           4.,         -30.
 26,           6.,         -30.
 27,          10.,         -30.
 28,          12.,         -30.
 29,          16.,         -30.
 30,          18.,         -30.
 31,          22.,         -30.
 32,          24.,         -30.
 33,          28.,         -30.
 34,          30.,         -30.
 35,          34.,         -30.
 36,          36.,         -30.
 37,          40.,         -30.
 38,          40.,         -27.
 39,          40.,         -24.
 40,          40.,         -21.
 41,          40.,         -18.
 42,          40.,         -15.
 43,          40.,         -12.
 44,          40.,          -9.
 45,          40.,          -6.
 46,          40.,          -3.
 47,          40.,           0.
 48,  -37.0502472,  -3.57497835
 49,  -34.6275177,  -6.06847525
 50,  -31.1389275,  -9.11990738
 51,  -27.3827724,  -11.8351984
 52,  -24.4094028,  -13.6369238
 53,  -20.2638969,  -15.7096758
 54,   -17.038496,  -17.0073357
 55,  -12.6125698,  -18.3830872
 56,    -8.078269,  -19.3431015
 57,  -4.62983418,  -19.7851849
 58,           0.,         -20.
 59,   4.62983418,  -19.7851849
 60,     8.078269,  -19.3431015
 61,   12.6125698,  -18.3830872

1 个答案:

答案 0 :(得分:2)

你可以使用:

x = map(lambda x: float(x), str.split(<line>, ',\t')

描述一下:

  1. 按标签(或其他)分割字符串行
  2. 将后续数组提供给map函数,该函数将第一个参数中的函数应用于第二个
  3. 中的每个项目。
  4. map函数的第一个参数是一个lambda函数,它只接受一个字符串并返回一个float