data_file = 'iris.txt'#你的数据集.txt文件 def get_dataset(data_file): with open(data_file,'r') as in_file: txt = in_file.readlines()#将数据集以字符串列表的形式放在txt里面['1.2 3 4\n','1 2 #3\n'] txt = [txt[i].split(' ') for x in range(len(txt))]#将字符串txt[i](['1.2 3 4\n','1 #2 3\n'])转化为[['1.2','2','3','\n'],['1','2','3','\n']] txt = [txt[i].strip('[\n,\t]') for i in range(len(txt))]#去掉字符串不能转换为float的 #特殊字符--->[['1.2','2','3'],['1','2','3']] for i in range(len(txt)): #数据集长度(样本个数) for j in range(len(txt[0])):#样本特征数(因为每一个样本一般取同样数目特征数,所以可以用 #txt[0]代替任意长度) txt[i][j] = float(txt[i][j]) return txt
#法二:用map的方法转
def get_dataset(data_file):
    with open(data_file,'r') as in_file:
        txt = in_file.readlines()#read()返回字符串 readline()读一行,返回字符串  readlines() 
                                # 全部读,返回字符串列表,含有\n
        for i in range(len(txt)):
            txt[i] = list(map(float, filter(None,re.split('[\t \n]', txt[i].strip()))))#这 
                                                #一行和后面注释的两行等价
        print(txt)  
        #txt_list = re.split('[\t \n]', txt.strip())
        #txt_out = list(map(float, txt_list)) # 高效的map ,# 这一步的list极其重要,否则得到的 
                                               #只是一个map对像
#法三:用read()读取数据+map的方法转:
def get_dataset(data_file):
    in_file = open(data_file, mode='r')
    txt = in_file.read() #.split('\n').split('\t')
    txt_list = re.split('[\t \n]', txt.strip())
    txt_out = map(float, txt_list) # 高效的map
    print(list(txt_out)) # 这一步的list极其重要,否则得到的只是一个map对像

方法三和方法一、二返回的数据类型不一样,方法一、二是把每个数据集的特征分别放在一个list里面,再用一个大的list装所有数据集,这样就成了一个二维的数组,而方法三就是用read()的方法,将所有的数据集的特征放在一个list里面,没有区分特征属于哪一类。

运行结果如下:

方法一结果:

方法二结果:

方法三结果:

方法一:import numpy as npdata_file = 'iris.txt'#你的数据集.txt文件def get_dataset(data_file): with open(data_file,'r') as in_file: txt = in_file.readlines()#将数据集以字符串列表的形式放在txt里面['1.2 3 4\n','1 2 #3\n']
file = open(file_path,'r') file_data = file.readlines() target_data = re.split('\s+',file_data[1].strip()) for index,item in enumerate(target_data): target_data[index] = float (item)
Traceback (most recent call last): File "C:/Users/JZ/PycharmProjects/Test/test.py", line 4, in <module> data1=np.load txt ("Train.csv", delimiter=',') File "C:\Users\JZ\AppData\Local\Programs\ Python \ Python 35\lib\site-packages\numpy\lib\npyio.py", lin
例:给一个 字符 串, 转换成 浮点型( float )需求分析: 首先, 字符 串必须是数字类型的 其次,需要将这个 字符 转换成 浮点数,则需要用到 float 函数实现解析: 定义函数,进行浮点数 换,并返回这个浮点数 调用定义的函数,传入一个 字符 串,打印 换后的类型数据代码如下(示例): 返回结果:...
不知道大家有没有过困惑,就是独写 txt 文件中的数据的时候,如果 txt 文件中的数据是用科学计数法形式表示的,能否被都出来呢?答案是可以的,我们知道直接从 txt 文件中 读取 的数据格式是 string 类型的,因此我们需要对此类型进新 换,这 我们用 float 关键字。 为了方便, txt 测试文件中只存入一个数据。如下: 然后我们用以下的代码读入数据。 with open(r"C:\Users\15025\Desktop\debug1. txt ", "r") as f: all_data = f.readlines
有如下存在 txt 文件的数据,需要将其 读取 float 型数据并处理: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 5.876317942364757073e+03 1.0000000000...
这种形式的 txt 文件 读取 float 数据import matplotlib.pyplot as plt import numpy as np file = open("./y. txt ", "r") list_arr = file.readlines() l = len(list_arr) #print(l) out=np.zeros((l,2)) for i in range(l): li...