yyyyyyyyyyyyyyyyyyyy

博客园 首页 新随笔 联系 订阅 管理

准备跟着台湾的一个机器学习课程好好学学python,链接在这http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML16.html

该课程开始有一个作业,叫做HW0,实际上与机器学习无关,只是为了验证大家预备编程能力,它包括两个部分,一个是读.DAT格式的数据,一个是图像翻转

 

这个作业我在windows下基于python2.7完成了,开发环境选择的是pycharm4.0

先上第一个作业上代码:

复制代码
 1 # -*- coding:UTF-8 -*-
 2 __author__ = 'Administrator'
 3 
 4 import csv
 5 import cv2
 6 import sys
 7 filename = 'F:/台湾机器学习/hw0_data.dat'
 8 ufilename = unicode(filename , "utf8")    #这一块主要是因为汉字路径 也就是python调用open打开文件时,其路径必须要转换为utf-8格式 
 9 
10 list=[]
11 row=0
12 colum=0;
13 with open(ufilename, 'r') as f:
14     data = f.readlines()  #dat中所有字符串读入data
15     for line in data:
16         odom = line.split()        #将单个数据分隔开存好
17         colum=len(odom)
18         numbers_float = map(float, odom) #转化为浮点数
19         list.append(numbers_float)
20         # print numbers_float
21         row=row+1
22 
23 print("原始数据是:{0}行 :{1}列 的数据".format(row, colum))
24 index = int(raw_input("请输入要排序的列号(范围为1到 {0}):\n".format(colum-1)))
25 resultlist =[]
26 if index >0 and index < colum+1 :
27     list.sort(key=lambda x: x[index-1], reverse=False) #排序 按照第infex个 顺序排列
28     print(list)
29     print(list[0])
30     for i in range(row):
31         print(list[i][index-1])
32         resultlist.append(list[i][index-1])
33     csvfile = file('E:\\csvtest.csv', 'wb')   #最终的数据保存为一行,以逗号隔开,所以保存为csv格式了
34     writer = csv.writer(csvfile)
35     writer.writerow(resultlist)
36     csvfile.close()
37 else:
38     print '输入错误,请重新输出序列'
复制代码

输入数据的效果如下,一共500行 11列,很容易看出前10列是特征,最后一列是标签: +1 和-1

输出数据的效果如下: 其实就是获取了一列特征,当然特征经过排序,我的程序是升序

 

第二个作业上代码:

复制代码
 1 # -*- coding:UTF-8 -*-
 2 __author__ = 'Administrator'
 3 
 4 import csv
 5 import cv2
 6 import sys
 7 
 8 
 9 
10 imagename = 'F:/台湾机器学习/Lena.png'
11 img = cv2.imread(imagename.decode('utf-8').encode('gbk'))  # 主要是汉字路径比较坑!
12 cv2.namedWindow("Image") 
13 cv2.imshow("Image", img)
14 cv2.flip(img,-1,img)
15 cv2.namedWindow("NewImage")
16 cv2.imshow("NewImage", img)
17 cv2.imwrite("e:\\newlena.png",img)
18 cv2.waitKey(0)
复制代码

这个就更加简单了 ,直接利用opencv的函数进行翻转了

效果如下:

 

 

 
 
posted on 2017-04-18 03:15  xxxxxxxx1x2xxxxxxx  阅读(701)  评论(0编辑  收藏  举报