python - 从字符串中提取 float 以创建多个/多维数组来操作数据

标签 python arrays string multidimensional-array floating-point

首先,我是一个非常弱的程序员,并且是 python 和这个网站的新手。对我的错误感到抱歉。所以,我的数据文件如下所示:

http://pastebin.com/60E84azv

paste bin 文件总共有 6221 行。为了进行测试,我将行数限制为最大 1000。

我正在尝试读取数字行中的浮点值,主要列是 1 和 2。

到目前为止,我已经编写了这段代码来从文件中提取我想要的行:

f = open('Sample Data.txt',"r")

num=0
line = f.readlines()

for n in range (107, 1000, 1):  #6621

    if (n>108):
    print line[n]

效果很好,将每行中的数字打印为字符串。 (每个数字都有 4 个空格与下一个数字分隔,除了每列中的第一个数字有 2 个空格。)

我现在希望将字符串转换为数组或列表,以便我可以处理各个数字并最终在 y 轴上绘制第 2 列的图表。我编写了以下代码来分割字符串并将其转换为 float :

for i in range(108,1000,1):
line[i].split('    ')
float(line[i]) = X[i]
print(X[i])

当我运行它时,它返回以下错误:

Traceback (most recent call last):
  File "<pyshell#25>", line 2, in <module>
print(X[i])
NameError: name 'X' is not defined

我已经将其分解,并且 line[i].split(' ') 似乎有点工作,因为当我测试打印该行时,它给出了 3 个单独的字符串,如下所示:

['  5070.74537037   -0.003382', '0.009507\n']

我不知道为什么会出现这个错误。我认为 X[i] 是我应该用 float 创建的新数组,但由于某种原因它似乎不想工作。我在某处读到,当使用大型数据集时,最好使用多维数组......如果我什至无法理解一维,我就没有机会了解其他维度!

有什么方法可以创建一个数组或两个一维数组,使我能够独立操作潜在图的 x 或 y 列?

感谢您的宝贵时间!

最佳答案

使用 split 可以更优雅地处理这一点,每行无需任何参数:

f = open('Sample Data.txt',"r")
num = 0
for line_number, line in enumerate(f):
    if (line_number < 109):
        #jump over lines at the beginning
        continue
    # now split the line everywhere there are one or more whitespaces:
    numbers_as_strings = line.split()
    # and convert the numbers to floats
    numbers = list(map(float, numbers_as_strings))

关于python - 从字符串中提取 float 以创建多个/多维数组来操作数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19716899/

相关文章:

python - 将元组索引转换为日期时间索引

python - Django filter_horizo​​ntal 形式

python - Pandas 截断的就地版本?

java - 使用 cdt eclipse 获取 C 程序的数组下标

c# - 当字符串中的字符更改时,RegEx 拆分/标记字符串

Python正则表达式替换字符串

java - 如何添加到 3d arrayList 而不覆盖以前的条目?

arrays - 数组的最后一个元素匹配 scala

c# - 为什么我的字典要向字符串中添加额外的转义字符?

java - java中使用compareTo()方法比较大小写