zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    LeetCode "Median of Two Sorted Arrays"
    LeetCode "Distinct Subsequences"
    LeetCode "Permutation Sequence"

    LeetCode "Linked List Cycle II"
    LeetCode "Best Time to Buy and Sell Stock III"
    LeetCode "4Sum"
    LeetCode "3Sum closest"
    LeetCode "3Sum"
    LeetCode "Container With Most Water"
  • 原文地址:https://www.cnblogs.com/txq157/p/7196524.html
Copyright © 2011-2022 走看看