python算法

python刷leetcode题目(1)

匿名 (未验证) 提交于 2019-12-02 22:51:30
1、从排序数组中删除重复项 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 给定数组 nums = [1,1,2] , 函数应该返回新的长度 2 , 并且原数组 nums 的前两个元素被修改为 1 , 2 。 你不需要考虑数组中超出新长度后面的元素。 给定 nums = [0,0,1,1,1,2,2,3,3,4] , 函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0 , 1 , 2 , 3 , 4 。 你不需要考虑数组中超出新长度后面的元素。 代码如下: class Solution: def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ i = 0 while i < len(nums) -1: if nums[i] == nums[i+1]: nums.remove(nums[i]) else: i += 1 return len(nums) 2、买卖股票的最佳时机 II i i 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意: 你不能同时参与多笔交易

python实现简单KMeans算法

匿名 (未验证) 提交于 2019-12-02 22:51:30
参考链接: 北京理工大学公开课 code: import numpy as np import PIL.Image as image # PIL from sklearn.cluster import KMeans # KMeans # def loadData ( filepath ) : # "rb" f = open ( filepath , "rb" ) data = [] img = image. open (f) m,n = img.size for i in range (m) : for j in range (n) : x,y,z = img. getpixel ((i,j)) data. append ([x / 256.0 ,y / 256.0 ,z / 256.0 ]) f. close () return np. mat (data),m,n imageData,row,col = loadData ( ".//data//bull.jpg" ) # km = KMeans ( n_clusters = 3 ) label = km. fit_predict (imageData) label = label. reshape ([row,col]) # # "L" pic_new = image. new ( "L" ,(row,col)) # for

吴恩达机器学习作业Python实现(五):偏差和方差

匿名 (未验证) 提交于 2019-12-02 22:51:30
在本练习中,您将实现正则化的线性回归和多项式回归,并使用它来研究具有不同偏差-方差属性的模型 在前半部分的练习中,你将实现正则化线性回归,以预测水库中的水位变化,从而预测大坝流出的水量。在下半部分中,您将通过一些调试学习算法的诊断,并检查偏差 v.s. 方差的影响。 1.1 Visualizing the dataset 我们将从可视化数据集开始,其中包含水位变化的历史记录,x,以及从大坝流出的水量,y。 这个数据集分为了三个部分: - training set 训练集:训练模型 - cross validation set 交叉验证集:选择正则化参数 - test set 测试集:评估性能,模型训练中不曾用过的样本 %matplotlib inline import numpy as np import matplotlib.pyplot as plt from scipy.io import loadmat import scipy.optimize as opt 读取数据 path = 'ex5data1.mat' data = loadmat(path) #Training set X, y = data[ 'X' ], data[ 'y' ] #Cross validation set Xval, yval = data[ 'Xval' ], data[ 'yval' ]

python数据分析与挖掘实战---基于水色图像的水质评价

匿名 (未验证) 提交于 2019-12-02 22:51:30
抽取80%作为训练样本,剩下20%作为测试样本 此案例是《python数据分析与数据挖掘》的第九章,在p200我们可以看到特征的取值范围都在0~1之间,换句话说,如果我们直接输入SVM模型的话,彼此之间的区分度会比较小,因此我们需要做一个放大处理,当然放大系数K不能过大或者过小,经反复试验,我们发现30时,效果比较好。 代码如下: import pandas as pd inputfile ='chapter9/demo/ data /moment.csv' data =pd.read_csv ( inputfile , encoding =' gbk' ) #读取数据,指定编码 data = data .as_matrix () from random import shuffle #引入随机函数 ## shuffle(data) #随机打乱数据 **这样直接写有问题** #用下面的方式 num_example = data .shape[0] print (num_example) arr =np.arange(num_example) np .random.shuffle(arr) data = data [arr] data_train = data [:int (0.8* len ( data ) ),:] #选取前80%为训练数据 data_test = data

python系统编程(二)

匿名 (未验证) 提交于 2019-12-02 22:51:30
如果在一个程序,有2次的fork函数调用,是否就会有3个进程呢? #coding=utf-8 import os import time # 注意,fork函数,只在Unix/Linux/Mac上运行,windows不可以 pid = os.fork() if pid == 0: print('哈哈1') else: print('哈哈2') pid = os.fork() if pid == 0: print('哈哈3') else: print('哈哈4') time.sleep(1) 父进程、子进程执行顺序没有规律,完全取决于操作系统的调度算法 文章来源: python系统编程(二)

python、数据分析师、算法工程师的学习计划

匿名 (未验证) 提交于 2019-12-02 22:51:30
1、前言 最近(2018.4.1)在百忙之中开通了博客,就喜欢能够把自己所学所想沉淀下来,这篇是我开始系统学习python,称为数据分析师和算法工程师之路的计划,望有志于为同样目标奋斗的数据猿一起交流和学习。 2、Python学习计划 2.1 学习计划 (1)找一本浅显易懂,例程比较好的教程,从头到尾看下去。不要看很多本,专注于一本。 (2)去找一个实际项目练手。(参照, Python的练手项目 ) 2.2 学习资料 《Python编程 从入门到实践》 、, 廖雪峰的Python教程 进阶书籍:《用Python玩转数据》、 《Python for data analysis》(利用Python进行数据分析)、《Python数据分析与挖掘实战》 、《Python Cookbook》(可以作为Python语言查询手册) 外文书籍下载网址: All IT eBooks 、 Library Genesis 、 Fox eBook - Free Download Site 、 Devalopment / Programming / AvaxHome 电子书:包含上述书籍( Python电子书 ) 课程:密歇根大学的《学习使用Python编程并分析数据》 学习经验: 零基础学习Python数据分析 、 后续填坑 文章来源: python、数据分析师、算法工程师的学习计划

python基础面试题(全网最全!)

匿名 (未验证) 提交于 2019-12-02 22:51:30
Ŀ¼ 1、为什么学习Python? 1、为什么学习Python? 人生苦短....哈哈,自己想吧!!! emmm。。。来真的 python语言的简洁、优美! 官网、网上视频、学习网站 1、python代码,简介,明确,优雅,简单易懂 2、开发效率高 3、可扩展性强 解释型:在执行程序时,计算机才一条一条的将代码解释成机器语言给计算机来执行 编译型:是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样计算机运行该程序时可以直接以机器语言来运行此程序,运行速度很快。 Cpython,IPython,Jpython,pypy,Ironpython Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释器: CPython:当 从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解 释器:Cpython,这个解释器是用C语言开发的,所以叫 CPython,在命名行下运行python, 就是启动CPython解释器,CPython是使用最广的Python解释器。 IPython:IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方 式上有所增强

python继承

匿名 (未验证) 提交于 2019-12-02 22:51:30
一、单继承 子类调用父类的一个方法,可以用super(): class A(object): def pp(self): print('pp A') class B(A): def pp(self): super().pp() print("pp B") b = B() b.pp() #结果: pp A pp B super()常用的方法是在__init__()方法中确保父类被正确的初始化了: super(cls,inst).__init__() #cls,init 可以省略 class A(object): def __init__(self): self.x = 1 class B(A): def __init__(self): super(B,self).__init__() self.x = self.x +1 print(self.x) b = B() #结果 2 也可以直接调用父类的一个方法 : A.__init__(self) class A(object): def __init__(self): self.x = 1 class B(A): def __init__(self): A.__init__(self) self.x = self.x +1 print(self.x) b = B() #结果 2 二、多继承 super()

python机器学习简介

匿名 (未验证) 提交于 2019-12-02 22:51:30
Ŀ¼ 专门研究计算机怎样模拟或实现人类的学习行为 ,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。从数据中提取知识,也被称为 预测分析 或 统计学习 。 监督学习 。 样本 或 数据点 ,而每一列(描述这些实体的某一个属性)则被称为 特征 。 1.scikit-learn 简介 :它是一个开源的python库,包含了目前最先进的机器学习算法,也是最有名的python机器学习库。 用户指南 : http://scikit-learn.org/stable/user_guide.html 安装scikit-learn :直接装集合了多个数据分析库的python发行版Anaconda,包含了所需的所有机器学习库。 2.Jupyter notebook 3.NumPy 4.SciPy 5.matplotlib 6.pandas 7.mglearn import sys import pandas as pd import matplotlib import numpy as np import scipy as sp import ipython import sklearn 数据挖掘的大部分时间就花在特征工程上面,是机器学习非常基础而又必备的步骤 。数据预处理、数据清洗、筛选显著特征、摒弃非显著特征等等都非常重要。 交叉验证 选择最好的一个。但如果训练集很小,高偏差

python进阶一(函数式编程)【2-5 python中的自定义排序函数】

匿名 (未验证) 提交于 2019-12-02 22:51:30
2-5 python中的自定义排序函数 python中自定义排序函数 Python内置的 sorted()函数 可对list进行排序: >>> sorted ([ 36 , 5 , 12 , 9 , 21 ]) [ 5 , 9 , 12 , 21 , 36 ] 但 sorted()也是一个高阶函数,它可以 接收一个比较函数来实现自定义排序 ,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。 因此,如果我们要实现倒序排序,只需要编写一个reversed_cmp函数: 1 def reversed_cmp ( x , y ): 2 if x > y : 3 return - 1 4 if x < y : 5 return 1 6 return 0 这样,调用 sorted() 并传入 reversed_cmp 就可以实现倒序排序: 1 >>> sorted ([ 36 , 5 , 12 , 9 , 21 ], reversed_cmp ) 2 [ 36 , 21 , 12 , 9 , 5 ] 注意 :这里的格式写法和其他高阶函数不同,先写list后写函数名称 sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较: 1 >>> sorted ([