これを内部に含むデータファイルがあるとしましょう:
23 33 45
91 81 414
28 0 4
7 9 14
8 9 17
1 1 3
38 19 84
個々の番号が独自の項目になるようにリストにインポートするにはどうすればよいですか?
代わりに、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 ループよりも高速です)。
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])