网站建设资讯

NEWS

网站建设资讯

python中cm的函数 cmd Python

Python 中的 classmethod 和 staticmethod 有什么具体用途

classmethod:类方法staticmethod:静态方法

张北网站建设公司创新互联,张北网站设计制作,有大型网站制作公司丰富经验。已为张北近1000家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的张北做网站的公司定做!

在python中,静态方法和类方法都是可以通过类对象和类对象实例访问。但是区别是:

@classmethod 是一个函数修饰符,它表示接下来的是一个类方法,而对于平常我们见到的则叫做实例方法。 类方法的第一个参数cls,而实例方法的第一个参数是self,表示该类的一个实例。

普通对象方法至少需要一个self参数,代表类对象实例

类方法有类变量cls传入,从而可以用cls做一些相关的处理。并且有子类继承时,调用该类方法时,传入的类变量cls是子类,而非父类。 对于类方法,可以通过类来调用,就像C.f(),有点类似C++中的静态方法, 也可以通过类的一个实例来调用,就像C().f(),这里C(),写成这样之后它就是类的一个实例了。

静态方法则没有,它基本上跟一个全局函数相同,一般来说用的很少

Example 1:

class a():

@staticmethod

def staticm():

print 'static'

def normalm(self):

print 'nomarl',self

@classmethod

def classm(cls):

print 'class',cls

a1=a()

a1.normalm()

nomarl __main__.a instance at 0x84dddec

a1.staticm()

static

a1.classm()

class __main__.a

type(a)

type 'classobj'

type(a1)

type 'instance'

Example 2:

class A(object):

@classmethod

def cm(cls):

print '类方法cm(cls)调用者:', cls.__name__

@staticmethod

def sm():

print '静态方法sm()被调用'

class B(A):

pass

A.cm()

B.cm()

A.sm()

B.sm()

输出:

类方法cm(cls)调用者: A

类方法cm(cls)调用者: B

静态方法sm()被调用

静态方法sm()被调用

@classmethod与@staticmethod的应用实例

#!/usr/bin/env python

# -*- coding: utf-8 -*-

class TClassStatic(object):

obj_num = 0

def __init__(self, data):

self.data = data

TClassStatic.obj_num += 1

def printself(self):

print("self.data: ", self.data)

@staticmethod

def smethod():

print("the number of obj is : ", TClassStatic.obj_num)

@classmethod

def cmethod(cls):

print("cmethod : ", cls.obj_num)

cls.smethod()

def main():

objA = TClassStatic(10)

objB = TClassStatic(12)

objB.printself()

objA.smethod()

objB.cmethod()

print("------------------------------")

TClassStatic.smethod()

TClassStatic.cmethod()

if __name__ == "__main__":

main()123456789101112131415161718192021222324252627282930313233

输出结果如下:

('self.data: ', 12)

('the number of obj is : ', 2)

('cmethod : ', 2)

('the number of obj is : ', 2)

------------------------------

('the number of obj is : ', 2)

('cmethod : ', 2)

('the number of obj is : ', 2)

python是否有绘制混淆矩阵的函数,怎么来实现

# -*- coding: UTF-8 -*-

"""绘制混淆矩阵图"""

import matplotlib.pyplot as plt

from sklearn.metrics import confusion_matrix

def confusion_matrix_plot_matplotlib(y_truth, y_predict, cmap=plt.cm.Blues):

"""Matplotlib绘制混淆矩阵图

parameters

----------

y_truth: 真实的y的值, 1d array

y_predict: 预测的y的值, 1d array

cmap: 画混淆矩阵图的配色风格, 使用cm.Blues,更多风格请参考官网

"""

cm = confusion_matrix(y_truth, y_predict)

plt.matshow(cm, cmap=cmap)  # 混淆矩阵图

plt.colorbar()  # 颜色标签

for x in range(len(cm)):  # 数据标签

for y in range(len(cm)):

plt.annotate(cm[x, y], xy=(x, y), horizontalalignment='center', verticalalignment='center')

plt.ylabel('True label')  # 坐标轴标签

plt.xlabel('Predicted label')  # 坐标轴标签

plt.show()  # 显示作图结果

if __name__ == '__main__':

y_truth = [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]

y_predict = [1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0]

confusion_matrix_plot_matplotlib(y_truth, y_predict)

python 报错

【现象】

很多Python初学者,在安装了最新版本的Python 3.x版本,比如Python 3.2之后,

去参考别人的代码(基于Python 2.x写的教程),去利用print函数,打印输出内容时,结果却遇到print函数的语法错误:

SyntaxError: invalid syntax

比如,虽然找个例子的截图为:

【原因】

这是因为,你正在用的Python版本是Python 3.x,而参考别人的代码是Python 2.x的代码,而由于Python 2.x升级到Python 3.x,print函数的语法变化了,

所以你用Python 2.x的print函数的代码,放在Python 3.x中运行,结果就出现了print函数的“SyntaxError: invalid syntax”了。

即,这也是Python初学者,第一个最容易遇到的问题:

在安装了(最新版本的)Python 3.x后,去运行(参考了别人的)Python 2.x的print函数的代码,结果就是遇到了print函数的语法错误:SyntaxError: invalid syntax

【Python 2.x和Python 3.x中print函数语法方面的区别】

最简洁的解释为:

Python 2.x: print函数(所要打印的内容)不带括号

Python 3.x: print函数(所要打印的内容),必须带括号

举例来说明,即为:

1.不带百分号格式化的

python 2.x:

?

1

print "Pyhon 2 can use print string without ()";

python 3.x:

?

1

print("Python3, print must use () to output string");

2. 带百分号格式化的

Python 2.x:

?

1

print "old %s version is %d, print no ()"%("Python", 2);

Python 3.x:

?

1

print("new %s version is %d, print must have ()"%("Python", 3));

Python sklearn.metrics模块混淆矩阵常用函数

1.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)

参数分别为y实际类别、预测类别、返回值要求(True返回正确的样本占比,false返回的是正确分类的样本数量)

eg:

import numpy as np

from sklearn.metrics import accuracy_score

y_pred = [0, 2, 1, 3]

y_true = [0, 1, 2, 3]

accuracy_score(y_true, y_pred)

0.5

accuracy_score(y_true, y_pred, normalize=False)

2.classification_report(y_true, y_pred, labels=None, target_names=None, sample_weight=None, digits=2)

参数:真是类别,预测类别,目标类别名称

eg:

3.confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)

输出为混淆矩阵

eg:

太多了,写3个常用的吧,具体参考help(metrics)

defcm_plot(y,yp):#参数为实际分类和预测分类

fromsklearn.metricsimportconfusion_matrix

#导入混淆矩阵函数

cm = confusion_matrix(y,yp)

#输出为混淆矩阵

importmatplotlib.pyplotasplt

#导入作图函数

plt.matshow(cm,cmap=plt.cm.Greens)

# 画混淆矩阵图,配色风格使用cm.Greens

plt.colorbar()

# 颜色标签

forxinrange(len(cm)):

foryinrange(len(cm)):

plt.annotate(cm[x,y],xy=(x,y),horizontalalignment='center',verticalalignment='center')

#annotate主要在图形中添加注释

# 第一个参数添加注释

# 第一个参数是注释的内容

# xy设置箭头尖的坐标

#horizontalalignment水平对齐

#verticalalignment垂直对齐

#其余常用参数如下:

# xytext设置注释内容显示的起始位置

# arrowprops 用来设置箭头

# facecolor 设置箭头的颜色

# headlength 箭头的头的长度

# headwidth 箭头的宽度

# width 箭身的宽度

plt.ylabel('True label')# 坐标轴标签

plt.xlabel('Predicted label')# 坐标轴标签

returnplt

#函数调用

cm_plot(train[:,3],tree.predict(train[:,:3])).show()

Python的函数都有哪些

【常见的内置函数】

1、enumerate(iterable,start=0)

是python的内置函数,是枚举、列举的意思,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

2、zip(*iterables,strict=False)

用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用*号操作符,可以将元组解压为列表。

3、filter(function,iterable)

filter是将一个序列进行过滤,返回迭代器的对象,去除不满足条件的序列。

4、isinstance(object,classinfo)

是用来判断某一个变量或者是对象是不是属于某种类型的一个函数,如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例,

返回True。如果object不是一个给定类型的的对象, 则返回结果总是False

5、eval(expression[,globals[,locals]])

用来将字符串str当成有效的表达式来求值并返回计算结果,表达式解析参数expression并作为Python表达式进行求值(从技术上说是一个条件列表),采用globals和locals字典作为全局和局部命名空间。

【常用的句式】

1、format字符串格式化

format把字符串当成一个模板,通过传入的参数进行格式化,非常实用且强大。

2、连接字符串

常使用+连接两个字符串。

3、if...else条件语句

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。其中if...else语句用来执行需要判断的情形。

4、for...in、while循环语句

循环语句就是遍历一个序列,循环去执行某个操作,Python中的循环语句有for和while。

5、import导入其他脚本的功能

有时需要使用另一个python文件中的脚本,这其实很简单,就像使用import关键字导入任何模块一样。

python内置函数有哪些

python常见的内置函数有:

1. abs()函数返回数字的绝对值。

2. all() 函数用于判断给定的参数中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。元素除了是 0、空、None、False 外都算 True;空元组、空列表返回值为True。

3. any() 函数用于判断给定的参数是否全部为False,是则返回False,如果有一个为True,则返回True。 元素除了是 0、空、False外都算 TRUE。

4. bin()函数返回一个整数int或者长整数long int的二进制表示。

5. bool() 函数用于将给定参数转换为布尔类型,如果参数不为空或不为0,返回True;参数为0或没有参数,返回False。

6. bytearray()方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 = x 256(即0-255)。即bytearray()是可修改的二进制字节格式。

7. callable()函数用于检查一个对象是否可调用的。对于函数、方法、lambda函式、类以及实现了 __call__ 方法的类实例, 它都返回 True。(可以加括号的都可以调用)

8. chr()函数用一个范围在range(256)内(即0~255)的整数作参数,返回一个对应的ASCII数值。

9. dict()函数用来将元组/列表转换为字典格式。

10. dir()函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。

扩展资料:

如何查看python3.6的内置函数?

1、首先先打开python自带的集成开发环境IDLE;

2、然后我们直接输入"dir(__builtins__)",需要注意的是builtins左右的下划线都是两个;

3、回车之后我们就可以看到python所有的内置函数;

4、接下来我们学习第二种查看python内置函数的方法,我们直接在IDLE中输入"import builtins",然后输入"dir(builtins)";

5、然后回车,同样的这个方法也可以得到所有的python内置的函数;

6、这里我们可以使用python内置函数len()来查看python内置函数的个数,这里我们直接输入"len(dir(builtins))";

7、回车之后我们可以看到系统返回值153,说明我们现在这个版本中有153个内置函数;

8、最后我们介绍一个比较有用的内置函数"help",python内置函数有一百多个,我们当然不能记住所有的函数,这里python提供了一个"help"函数,我们来看一个例子一起来体会一下help函数的用法,这里我们直接输入"help(len)",然后回车,会看到系统给我们对于内置函数"len"的解释,当然对于其他函数可能会有更加详细的解释以及用法提示。


当前名称:python中cm的函数 cmd Python
网页网址:http://cdweb.net/article/dodjshd.html