Python:如何用逗号形成数组?

时间:2015-11-13 20:33:47

标签: python

我是Python新手,所以请不要嘲笑这个问题......

我在文件中有一些数组,如下所示

100 23 35 44 47 511
100 60 77 68 45 76
100 97 99 89 91 14
100 53 65 

我已阅读该文件并使用以下代码获取每一行

f = file('new.txt')
lines = f.readlines()
f.close()
results = []
for line in lines:
  print line

但是为了将它们视为函数的输入,如下所示,

clf.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])

我想我需要格式化我的数组以使每个数组都放在方括号([])中并在其中添加逗号。 我需要的最终格式是这样的

clf.fit ([[100,23,35,44,47,511], [100,60,77,68,45,76], [100,97,99,89,91,14]], [100,53,65])

如何实现它?

2 个答案:

答案 0 :(得分:1)

您可以使用numpy.loadtxt()将文件作为数组加载。如果您不想使用numpy,最好使用csv模块加载数据,他们将它们转换为整数。

import csv 

with open('new.txt') as f:
   spam_reader = csv.reader(f,delimiter=' ')
   my_array = [map(int,row) for row in spam_reader]

请注意,如果您不确定数据的验证,前面的代码将引发ValueError,在这种情况下,您需要使用try-except表达式来处理异常。

my_array = []
for row in spam_reader:
   try:
       my_array.append(map(int,row))
   except ValueError:
       # do stuff

答案 1 :(得分:1)

将每一行拆分为一个列表并创建一个列表列表(本质上是一个数组)。

final_array = []

with open('new.txt') as f:
    for line in f:
        temp_list = [int(x) for x in line.strip().split()]
        if len(temp_list) > 0:  # don't append an empty list (blank line)
            final_array.append(temp_list)

print final_array

您可能希望进行一些额外的健全性检查,但这可以实现基本的想法。