我想从.txt文件中读取数据,并将每列作为变量输入(比如x_1,x_2等) 通常我用
x_1, x_2, x_3 = numpy.loadtxt('filename.txt', delimiter=',' , unpack = True)
现在的问题是每个数据文件的列数都不同。所以我一直在寻找一种方法来创建多个变量名称x_i
我尝试使用字典将每个键作为空列表以下列方式使用:
features = dict(('x_%d' %i,[]) for i in range (1,n)) # n is specified by user
问题是我想将这些列表(x_1,x_2等)转换为矩阵并稍后执行一些矩阵运算。我只是不能将这些键作为变量引用,如:
x_1.T # Transpose OR
x_2 - Y # both x_2 and Y are matrices
我不想每次都使用像['x_3']这样的功能。有什么建议吗?
更新:好的找到了一种方法:创建一个矩阵列表,然后将它们称为x [o],x [1]等。即使x是一个列表,x [ 2]是一个矩阵。
任何更好/更智能的解决方案?
答案 0 :(得分:1)
首先将文件加载到一个大数组(矩阵)中:
x = numpy.loadtxt('filename.txt', delimiter=',', unpack=True)
现在您可以使用
访问列向量x1 = x[:,0]
x2 = x[:,1]
并对这些变量使用numpy函数
y = x1.dot(x2)
答案 1 :(得分:0)
为什么不使用名为x的列表?
x[1].T
x[2] - Y
与x_1
,x_2
等相比,这只是一次额外的击键。如果您不想使用x[0]
,只需在其中添加None
。
动态生成局部或全局变量是一个坏主意。