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、キーストロークが 1 つ増えるだけです。x_2x[0]None

ローカル変数またはグローバル変数を動的に生成することはお勧めできません。

于 2013-08-02T08:02:44.317 に答える