pythonを用いてtxtなどのファイルのデータをnumpy配列として読み出す
1243 ワード
実際、多くのデータはtxtファイル、csvファイルなどとして保存されていますが、プログラムで処理するときにnumpy配列やリストが一番便利です.ここでは、txtファイルを読み込み、numpy配列またはリストに変換する方法について簡単に説明します.
1 txtファイルをlistと読みnumpy配列に変換
a = np.array(lists)#リストをnumpy配列に変換し、
a=a.astype(int)#とタイプをintfileに設定.close()
1 txtファイルをlistと読みnumpy配列に変換
import numpy as np
file = open('filename.txt')
val_list = file.readlines()
lists =[]
for string in val_list:
string = string.split('\t',3)
lists.append(string[0:2])#各stringの最初の2つだけを取り、得られたlistsは所望のリストであるa = np.array(lists)#リストをnumpy配列に変換し、
a=a.astype(int)#とタイプをintfileに設定.close()
这种方法虽然代码长一点,但是可以允许你的txt文件中每一个line中既包含数字项又包含字母项等,如果你的txt文件的每一个line中的每一项都是数字,则有一个更简单的方法:a = numpy.loadtxt('filename.txt')
这样直接得到一个全为数字的numpy数组。
2 split等方法的简介split函数通过指定分隔符对字符串进行分隔,如果参数num有值,则表示将字符串分隔为num个字符串。语法格式:string.split(str = " " , num = x ),str为分隔符,默认是所有的空字符,如空格、换行、制表符等。num为子字符串个数。返回值为分隔后的字符串列表。实列如上文中:
string = string.split('\t',3) \t , 3 。 split, strip(), 。 :string.strip([char]),char , 。 。 :
出力:str = "000111aaabbb111000" print str.strip('0')
111aaabbb111