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...