forsplitValueinset(dataset[:,featureIndex].tolist()):首先set是一个无序,无重复的数据结构,所以很多时候使用它来进行去重;但是set接收的函数是原生array,这个怎么办?我现在有的numpy里面的matrix;于是我查了一下,直接使用matrix.tolist(),但是发现返回值有问题:importosos.chdir("D:\\galaxy\\aliyunsvn\\code\\MLInAction\
系统 2019-09-27 17:46:43 1842
装饰器基本概念大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验,Cache等。Python语言本身提供了装饰器语法(@),典型的装饰器实现如下:@function_wrapperdeffunction():pass@实际上是python2.4才提出的语法糖,针对python2.4以前的版本有另一种等价的实现:deffunction():passfunction=func
系统 2019-09-27 17:45:57 1842
创建一个软件包(package)似乎已经足够简单了,也就是在文件目录下搜集一些模块,再加上一个__init__.py文件,对吧?我们很容易看出来,随着时间的推移,通过对软件包的越来越多的修改,一个设计很差的软件包可能会出现循环依赖问题,或是可能变得不可移植和不可靠。1.__init__.py仅为导入服务对于一个简单的软件包,你可能会忍不住把工具方法,工厂方法和异常处理都丢进__init__.py,千万别这样!一个结构良好的__init__.py文件,仅为一
系统 2019-09-27 17:45:42 1842
保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑。使用装饰器实现,便于重用复制代码代码如下:importfunctoolsdefjust_one_instance(func):'''装饰器如果已经有实例在跑则退出复制代码代码如下::return:'''@functools.wraps(func)deff(*args,**kwargs):importsockettry:#全局属性,否则变量会在方法退出后被销毁globa
系统 2019-09-27 17:45:27 1842
在我的印象里面进制互相转换确实是很常见的问题,所以在Python中,自然也少不了把下面这些代码收为util。这是从网上搜索的一篇也的还可以的Python进制转换,经过验证可以使用。下面贴出它的实现代码:#!/usr/bin/envpython#-*-coding:utf-8-*-#2/10/16basetrans.wrotebysrcdogon20th,April,2009#ldelementsinbase2,10,16.importos,sys#glob
系统 2019-09-27 17:38:46 1842
在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor)。一、迭代器(iterator)在Python中,for循环可以用于Python中的任何类型,包括列表、元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration。任何这类的对象
系统 2019-09-27 17:38:45 1842
少劳多得Decorator与Python之前引入的元编程抽象有着某些共同之处:即使没有这些技术,您也一样可以实现它们所提供的功能。正如MicheleSimionato和我在可爱的Python专栏的早期文章中指出的那样,即使在Python1.5中,也可以实现Python类的创建,而不需要使用“元类”挂钩。Decorator根本上的平庸与之非常类似。Decorator所实现的功能就是修改紧接Decorator之后定义的函数和方法。这总是可能的,但这种功能主要是
系统 2019-09-27 17:38:33 1842
将套接字流重定向到标准输入或输出流#!/usr/bin/envpython3"""测试socket-stream重定向模式"""importsys,os,timefrommultiprocessingimportProcessfromsocketimport*definitListenerSocket(port=50008,host=''):"""初始化在服务器模式下调用者用于监听连接的套接字"""sock=socket()try:sock.bind((h
系统 2019-09-27 17:38:28 1842
JSON编码支持的基本数据类型为None,bool,int,float和str,以及包含这些类型数据的lists,tuples和dictionaries。对于dictionaries,keys需要是字符串类型(字典中任何非字符串类型的key在编码时会先转换为字符串)。为了遵循JSON规范,你应该只编码Python的lists和dictionaries。而且,在web应用程序中,顶层对象被编码为一个字典是一个标准做法。JSON编码的格式对于Python语法而
系统 2019-09-27 17:38:14 1842
列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。排序,数字、字符串按照ASCII,中文按照unicode从小到大排序x=[4,6,2,1,7,9]x.sort()print(x)#[1,2,4,6,7,9]如果需要一个排序好的副本,同时保持原有列表不变,怎么实现呢?x=[4,6,2,1,7,9]y=x[:]y.sort()print(y)#[1,2,4,6,7,9]print(x)#[4,
系统 2019-09-27 17:38:09 1842