tf.keras.utils.get_file(fname,origin,cache_dir)
参数 | 说明 |
---|---|
fname | 下载后的文件名 |
origin | 文件的URL地址 |
cache_dir | 下载后文件的存储位置 |
TRAIN_URL="http://download.tensorflow.org/data/iris_training.csv"
train_path=tf.keras.utils.get_file("iris_training.csv",TRAIN_URL)
iris_training.csv
训练数据集,120条样本数据;iris_test.csv
测试数据集,30条数据。本文只用到训练数据集,其中有花萼长度(Sepal Length)、花萼宽度(Sepal Width)、花瓣长度(Petal Length)、花瓣宽度(Petal Width)四个属性。标签0、1、2分别表示山鸢尾(Setosa)、变色鸢尾(Versicolor)、维吉尼亚鸢尾(Virginical)。
split()
函数(知识扩充):通过指定的分隔符对字符串进行切片,并返回一个列表。TRAIN_URL.split("/") #表示以 / 作分隔符
TRAIN_URL="http://download.tensorflow.org/data/iris_training.csv"
train_path=tf.keras.utils.get_file(TRAIN_URL.split('/')[-1],TRAIN_URL)
用于数据统计和分析、可以高效、方便地操作大型数据集。
Pandas
库import pandas as pd
csv
数据集文件#文件名参数
pd.read_csv(filepath_or_buffer,header,names) #header=0(默认)设置第一行数据作为列标题,header=None表示没有列标题
column_names=['SepalLength','SepalWidth','PetalLength','Species']
df_iris=pd.read_csv(train_path,header=0,names=column_names)
df_iris.head() #读取前n行数据,参数为空时,默认读取而是为数据表中的前5行数据
head()
函数tail()
函数df_iris[n:m]
表示读取行号n
到行号m-1
的数据样本describe()
函数df_iris.describe()
df_iris=pd.read_csv(train_path)
print(df_iris.ndim) #2
print(df_iris.shape) #(120, 4)
print(df_iris.size) #480
iris=np.array(df_iris)
print(type(df_iris)) #
print(type(iris)) #
转化为NumPy数组后,可以利用索引和切片访问数组元素,比如iris[0:6]
表示读取前6行数据,iris[0:6,0:4]
表示读取前6行数据的前4列。
循环输出所有属性关系图
import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
TRAIN_URL="http://download.tensorflow.org/data/iris_training.csv"
train_path=tf.keras.utils.get_file(TRAIN_URL.split('/')[-1],TRAIN_URL)
column_names=['SepalLength','SepalWidth','PetalLength','PetalWidth','Species']
df_iris=pd.read_csv(train_path,header=0,names=column_names)
iris=np.array(df_iris)
fig=plt.figure('Iris Data',figsize=(15,15))
plt.suptitle("Andreson's Iris Dara Set\n(Blue->Setosa|Red->Versicolor|Green->Virginical)")
for i in range(4):
for j in range(4):
plt.subplot(4,4,4*i+(j+1))
if(i==j):
plt.text(0.3,0.4,column_names[i],fontsize=15)
else:
plt.scatter(iris[:,j],iris[:,i],c=iris[:,4],cmap='brg')
if(i==0):
plt.title(column_names[j])
if(j==0):
plt.ylabel(column_names[i])
plt.show()