1

我想从 .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

而且我不想每次都使用 features['x_3'] 之类的东西。有什么建议么?

更新:好的,找到了一种方法:创建一个矩阵列表,然后将它们称为 x[o]、x[1] 等。即使 x 是一个列表,x[2] 也是一个矩阵。

有更好/更智能的解决方案吗?

4

2 回答 2

1

首先将文件加载到一个大数组(矩阵)中:

x = numpy.loadtxt('filename.txt', delimiter=',', unpack=True)

现在您可以使用

x1 = x[:,0]
x2 = x[:,1]

并对这些变量使用 numpy 函数

y = x1.dot(x2)
于 2013-08-02T08:00:54.697 回答
0

你为什么不使用一个名为 x 的列表呢?

x[1].T
x[2] - Y

与 , 等相比x_1,这只是一个额外的击键x_2。如果您不想使用x[0],只需在None此处放一个。

动态生成局部或全局变量是个坏主意。

于 2013-08-02T08:02:44.317 回答