0

これを内部に含むデータファイルがあるとしましょう:

23 33 45
91 81 414
28 0 4 
7 9 14
8 9 17
1 1 3
38 19 84

個々の番号が独自の項目になるようにリストにインポートするにはどうすればよいですか?

4

2 に答える 2

0

代わりに、open file、split、readlines などの python 組み込み関数を使用することもできます

with open('file.txt') as f:
for line in f:
  a, b, c = map(int, line.split())

別のアプローチは

 file                = open(filename)
 file_data           = file.readlines()

ただし、出力は文字列のリストになります。つまり、リスト内の各要素がファイル内の 1 行を表します。上記のコードを使用すると、出力は次のようになります

 file_data = ['23 33 45', '91 81 414', '28 0 4 ', '7 9 14', '8 9 17', '1 1 3', '38 19 84']

float または int に変換したい場合があります。numpy の fromstring モジュールを再度使用してそれを行うことができます

  from numpy import fromstring
  data = [fromstring(i, dtype=float, sep=' ') for i in file_data ]

上記のコードでリスト内包表記を使用していることに注意してください (これは、従来の python for ループよりも高速です)。

于 2012-11-28T17:35:24.323 に答える
0

numpy loadtxt を使用して、データファイルを numpy 配列に読み取ることができます

  from numpy import loadtxt
  a,b,c = loadtxt("filename", usecols=(0,1,2), unpack=True)

出力

  a = array([23, 91, 28, 7, 8, 1, 38])
于 2012-11-28T17:18:19.123 に答える