python基础代码

  1 from heapq import *;
  2 from collections import *;
  3 import random as rd;
  4 import operator as op;
  5 import re;
  6 
  7 data = [2,2,6,7,9,12,34,0,76,-12,45,79,102];
  8 s = set();
  9 
 10 for num in data:
 11     s.add(data.pop(0));
 12     if s.__len__() == 4:
 13         break;
 14 
 15 heap = [];
 16 for n in s:
 17     heappush(heap,n);
 18 
 19 print(heap);
 20 
 21 
 22 for num in data:
 23     if num > heap[0]:
 24         heapreplace(heap,num);
 25 
 26 print(nlargest(4,heap))
 27 
 28 
 29 def file2matrix(path,dimension):
 30     with open(path,'r+') as fr:
 31         lines = fr.readlines();
 32         num_lines = len(lines);
 33         return_mat = np.zeros((num_lines,dimension));
 34         classLabel = [];
 35 
 36     index = 0;
 37     for line in lines:
 38         contents = line.strip().split(' ');
 39         li = contents[:dimension];
 40         li = list(map(float,li));
 41         return_mat[index,:] = li;
 42 
 43         if(contents[-1] == 'small'):
 44             classLabel.append(0);
 45         elif(contents[-1] == 'middle'):
 46             classLabel.append(1)
 47         elif (contents[-1] == 'large'):
 48             classLabel.append(2)
 49         index += 1;
 50 
 51     return return_mat, classLabel;
 52 
 53 #mat,label = file2matrix('G:\\test.txt',3);
 54 
 55 import collections;
 56 print(dir(collections))
 57 
 58 class MyObject:
 59     def __init__(self,score):
 60         self.score = score;
 61 
 62     def __repr__(self):
 63         return "MyObject(%s)" % self.score;
 64 
 65 objs = [MyObject(i) for i in range(5)];
 66 rd.shuffle(objs);
 67 print(objs);
 68 
 69 g = op.attrgetter("score");
 70 scores = [g(i) for i in objs];
 71 print("scores: ",scores);
 72 print(sorted(objs,key = g));
 73 
 74 l = [(i,i*-2) for i in range(4)]
 75 print ("tuples: ", l)
 76 g = op.itemgetter(1)
 77 vals = [g(i) for i in l]
 78 print ("values:", vals)
 79 print ("sorted:", sorted(l, key=g))
 80 
 81 
 82 class MyObj(object):
 83     def __init__(self, val):
 84         super(MyObj, self).__init__()
 85         self.val = val
 86         return
 87 
 88     def __str__(self):
 89         return "MyObj(%s)" % self.val
 90 
 91     def __lt__(self, other):
 92         return self.val < other.val
 93 
 94     def __add__(self, other):
 95         return MyObj(self.val + other.val)
 96 
 97 
 98 a = MyObj(1)
 99 b = MyObj(2)
100 
101 print(op.lt(a, b))
102 
103 print(op.add(a, b))
104 
105 
106 
107 items = [('A', 1),('B', 2),('C', 3)]
108 regular_dict = dict(items);
109 order_dict = OrderedDict(items);
110 print(regular_dict);
111 print(order_dict);
112 
113 
114 # -*- coding: utf-8 -*-
115 import numpy as np
116 import matplotlib.pyplot as plt
117 from matplotlib.lines import Line2D
118 
119 x = np.linspace(0, 10, 1000)
120 y = np.sin(x)
121 z = np.cos(x**2)
122 
123 fig = plt.figure(figsize=(8,4),dpi=120)
124 plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)
125 plt.plot(x,z,"b--",label="$cos(x^2)$")
126 plt.xlabel("Time(s)")
127 plt.ylabel("Volt")
128 plt.title("PyPlot First Example")
129 plt.ylim(-1.2,1.2)
130 plt.legend()
131 #plt.show()
132 
133 
134 f = plt.gcf();
135 all_lines = plt.getp(f.axes[0],'lines');
136 print(all_lines[0])
137 
138 fig = plt.figure()
139 line1 = Line2D([0,1],[0,1], transform=fig.transFigure, figure=fig, color="r")
140 line2 = Line2D([0,1],[1,0], transform=fig.transFigure, figure=fig, color="g")
141 fig.lines.extend([line1, line2])
142 fig.show()
143 
144 def autonorm(dataSet):
145     minVals = dataSet.min(0);
146     maxVals = dataSet.max(0);
147     ranges = maxVals - minVals;
148     rows = dataSet.shape[0];
149     ranges = np.tile(ranges,(rows,1));
150     dataSet = dataSet - np.tile(minVals,(rows,1));
151     normData = dataSet / ranges;
152     return normData;
153 
154 
155 def classify(inX,path,k):
156     #1.文件到矩阵的映射
157     labels,dataSet = file2matrix(path);
158     #2.矩阵归一化处理
159     dataSet = autonorm(dataSet);
160     #3.计算欧式距离
161     distance = dataSet - inX;
162     distance = np.square(distance);
163     distance = distance.sum(axis=1);
164     distance = np.sqrt(distance);
165     print(distance);
166     #4.对距离排序
167     sortdisIndices = distance.argsort();
168     #5.取前k个,加载到dict中,然后对dict排序,取首个值
169     classCount = {};
170     for index in range(k):
171         label = labels[sortdisIndices[index]];
172         print(label)
173         classCount[label] = classCount.get(label,0) + 1;
174 
175     sortedDict = sorted(classCount.items(),key=op.itemgetter(1),reverse=True);
176     return sortedDict[0][0];
177 
178 def file2matrix(filepath):
179     with open(filepath,'r+') as fr:
180         lines = fr.readlines();
181         num_lines = len(lines);
182         classLabelVector = [];
183         dimension = len(lines[0].strip().split(" "))-1;
184         dataSet = np.zeros((num_lines,dimension));
185 
186     index = 0;
187     for line in lines:
188         contents = line.strip().split(" ");
189         li = contents[:dimension];
190         li = list(map(float,li));
191         dataSet[index,:] = li;
192 
193         if contents[-1] == 'largeDoses':
194             classLabelVector.append(3);
195         elif contents[-1] == 'smallDoses':
196             classLabelVector.append(2);
197         elif contents[-1] == 'didntLike':
198             classLabelVector.append(1);
199         index += 1;
200 
201     return classLabelVector,dataSet;
202 
203 
204 
205 
206 def main():
207 
208     inX = np.array([1.2,1.0,0.8]);
209     label = classify(inX,"E:\\Python\\datingTestSet.txt",3);
210     print("class:",label);
211 
212 
213 if __name__ == '__main__':
214     main();
View Code

 

posted @ 2017-07-17 17:18  佟学强  阅读(254)  评论(0编辑  收藏  举报