pythonを用いてtxtなどのファイルのデータをnumpy配列として読み出す

1243 ワード

実際、多くのデータはtxtファイル、csvファイルなどとして保存されていますが、プログラムで処理するときにnumpy配列やリストが一番便利です.ここでは、txtファイルを読み込み、numpy配列またはリストに変換する方法について簡単に説明します.
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