数据集的使用,常常令人一头雾水,举例来说,iris dataset这个最常用的资料集。
用一行代码就可以把资料集放进来了
iris = datasets.load_iris()
可是它到底长什麽样子?
官方说明 给道指令 iris.DESCR() 就会列出一堆文字说明。
不过还是一头雾水,看不到真面目。
原来,iris.csv是安装完sklean之後,就放在你的资料夹里的东西。
在安装Anaconda3位置下x32 x64不同\lib\site-packages\sklean\datasets\data内
Iris.csv 打开来看,长这样:
疑…栏位名称怪怪的,原来第一列不是栏位名称。
它意思是说有150笔资料,前4个栏位是特徵,
第五栏是结果target (三个数字代表三种品种:setosa、versicolor、virginica)。
我们把它改成看得懂的方式:
那麽,该如何读取这个csv ?
我们把sklearn官网范例 K-means clustering 略做修改,读取我们的irisC.csv ,其它的码不变。
原先范例之读取方式:
iris = datasets.load_iris()
X = iris.data # 大X 是四项特徵
y = iris.target # 小y 是target
iris = datasets.load_iris()
X = iris.data
y = iris.target
我们的读取方式:
#--- modified part
#--- 读取自定的 irisC.csv
iris = np.genfromtxt("irisC.csv",delimiter=',',dtype=np.float64)
r,c = iris.shape
print(f'row: {r} columns: {c}') # row 0 is header
X = iris[1:,0:4] # X.dtype float64
#print(X[0,:]) # X 0~3 column contents
y = iris[1:,4]
y = np.array(y,dtype= np.int32)
print(f'target type : {y[:].dtype}') # y.dtype int32
#--- 载入栏位名称 ------
#--- 问题是 np 已设定为 dtype float64 ,所以header读出来是 nan 无法使用
#--- 所以重新再读一次,使用 Unicode string type 'U'
#--- 此处只是读出栏位名称,并未使用它
irisH = np.genfromtxt('irisC.csv',delimiter=',',dtype='U')
fld = []
# 首列是栏位名称
for n in range(0,5):
fld.append(irisH[0,n])
print('栏位名称 :',fld)
#-------------------------------------
虽然,码长了点,不过可以自主处理自定的csv档,也不错。
其它的范例代码不动它。
我们修改後的 Source Code + irisC.csv在此
『理工男嘛,就是有问题要解决问题,没问题那就创造问题』,在做为一个数据分析师之前,我本身的大学所学的...
v-model 修饰符 Vue 里面为 v-model 提供了一些可以用的修饰符,主要是可以帮我们限...
Command:filter filtertype filterdata filtertype fi...
终於,花了一个月的时间,我们从零开始认识 Highcharts 到现在已经能够配合 Vue.js 一...
那就接续着昨天的内容,今天提到的也是大家常用的function及slice function go在...