1
from numpy import *

f = open('matrix.txt', 'r')

x = []
for line in f.readlines():
    y = [value for value in line.split()]
    x.append(y)

f.close()

x = map(int, x)

a = array([x])

基本的に、私のコードはテキスト ファイルを開き、それをリスト x に入れることを想定しています。次に、これらの x の値を整数に変更し、それを配列 a に配置します。これを行うより速い方法はありますか?ところで、私のコードは機能しません。

4

3 に答える 3

1
import numpy as np
with open('matrix.txt', 'r') as f:
    x = []
    for line in f:
        x.append(map(int, line.split()))
print x
print np.array(x)

それぞれ4つの数字を持つ3行を含むmatrix.txtの場合:

1 2 3 4
5 6 7 8
9 8 7 6

上記のように、これは印刷されます

[[1, 2, 3, 4], [5, 6, 7, 8], [9, 8, 7, 6]]
[[1 2 3 4]
 [5 6 7 8]
 [9 8 7 6]]

ただし、前の回答で述べたように、 numpy.loadtxtの使用を検討してください。たとえば
print np.loadtxt('matrix.txt')
、プログラムに追加すると、出力も出力されます

[[ 1.  2.  3.  4.]
 [ 5.  6.  7.  8.]
 [ 9.  8.  7.  6.]]
于 2012-11-27T06:10:23.423 に答える
1

を使えば少しは楽になるはずですnp.loadtxt

于 2012-11-27T06:04:16.413 に答える
0

ほとんどそこに...

次の行は、不要なリストのリストを作成します

y = [value for value in line.split()]
x.append(y)

このため、マップ呼び出しは失敗します

これらの2行の代わりに使用

x = [int(value) for value in line.split()]
于 2012-11-27T06:03:25.727 に答える