質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

3回答

2267閲覧

pythonでファイルからデータを読み込んで配列に代入したい

hanamur

総合スコア45

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2022/01/09 19:49

pythonで.txtファイルからデータを取り込んで配列に代入したいです。

例えば
aaa.txtには以下の内容が記述されているとします。

1 2.3 3.3 4.4 3
2 3.1 4.2 3.4 2
3 4.1 4.9 5.4 4
:
:
:
:
:
:
N 5.4 4.3 8.9 8

Nは未知。
ここからxs,ys,zsという配列に上記のファイルのそれぞれ2列目,3列目,4列目を代入したいです。
ネットで調べても一行ごとに読み込むものばかりで....調べるワードが分かっていないという状況です。
f.read().split()のようなものを使うといいようなのですが、それでも使い方が下手なのかうまくできません。
どうかよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

最初はkyokioさんが書かれているような方法を使ってPythonに慣れていくのが良いと思います。
慣れてきたら、pandasを使うと簡単に書けますので覚えておくと便利です。

python

1import pandas as pd 2 3df = pd.read_csv('test.txt', sep=' +', engine='python', header=None) 4 5xs = list(df[1]) 6ys = list(df[2]) 7zs = list(df[3]) 8print(xs) 9print(ys) 10print(zs)

入力が以下なら

text

11 2.3 3.3 4.4 3 22 3.1 4.2 3.4 2 33 4.1 4.9 5.4 4 44 5.4 4.3 8.9 8

以下の実行結果になります。

python

1>>> print(xs) 2[2.3, 3.1, 4.1, 5.4] 3>>> print(ys) 4[3.3, 4.2, 4.9, 4.3] 5>>> print(zs) 6[4.4, 3.4, 5.4, 8.9]

投稿2022/01/09 23:24

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hanamur

2022/01/10 09:28

回答ありがとうございます。 pd.read_csvとなっていますが、.txtファイルにも使えるのでしょうか。 pd.read_tableでもやってみましたが、どちらの場合でもKeyErr ?というものが出て うまくいきませんでした。 今更ですが、環境はVisualStudio2019を使っています。もし解決策をご存じでしたら何卒...
guest

0

1行づつ読み込むようにして、不要な行は読み飛ばせばよろしい

投稿2022/01/09 23:07

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こんな感じでそうでしょうか

test

11 2.3 3.3 4.4 3 22 3.1 4.2 3.4 2 33 4.1 4.9 5.4 4

python

1'''test''' 2xs = [] 3ys = [] 4zs = [] 5with open('./test.txt') as f: 6 lines = f.readlines() 7 for line in lines: 8 line = line.split() 9 # print(line, end='') 10 xs.append(line[1]) 11 ys.append(line[2]) 12 zs.append(line[3]) 13 14print(f'xs={xs}') 15print(f'ys={ys}') 16print(f'zs={zs}') 17

投稿2022/01/09 20:42

kyokio

総合スコア560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hanamur

2022/01/10 09:33

お見事、、 うまくいきました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問