真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中cm的函數(shù) cmd Python

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

classmethod:類方法staticmethod:靜態(tài)方法

張北網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),張北網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為張北近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的張北做網(wǎng)站的公司定做!

在python中,靜態(tài)方法和類方法都是可以通過(guò)類對(duì)象和類對(duì)象實(shí)例訪問(wèn)。但是區(qū)別是:

@classmethod 是一個(gè)函數(shù)修飾符,它表示接下來(lái)的是一個(gè)類方法,而對(duì)于平常我們見(jiàn)到的則叫做實(shí)例方法。 類方法的第一個(gè)參數(shù)cls,而實(shí)例方法的第一個(gè)參數(shù)是self,表示該類的一個(gè)實(shí)例。

普通對(duì)象方法至少需要一個(gè)self參數(shù),代表類對(duì)象實(shí)例

類方法有類變量cls傳入,從而可以用cls做一些相關(guān)的處理。并且有子類繼承時(shí),調(diào)用該類方法時(shí),傳入的類變量cls是子類,而非父類。 對(duì)于類方法,可以通過(guò)類來(lái)調(diào)用,就像C.f(),有點(diǎn)類似C++中的靜態(tài)方法, 也可以通過(guò)類的一個(gè)實(shí)例來(lái)調(diào)用,就像C().f(),這里C(),寫(xiě)成這樣之后它就是類的一個(gè)實(shí)例了。

靜態(tài)方法則沒(méi)有,它基本上跟一個(gè)全局函數(shù)相同,一般來(lái)說(shuō)用的很少

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)調(diào)用者:', cls.__name__

@staticmethod

def sm():

print '靜態(tài)方法sm()被調(diào)用'

class B(A):

pass

A.cm()

B.cm()

A.sm()

B.sm()

輸出:

類方法cm(cls)調(diào)用者: A

類方法cm(cls)調(diào)用者: B

靜態(tài)方法sm()被調(diào)用

靜態(tài)方法sm()被調(diào)用

@classmethod與@staticmethod的應(yīng)用實(shí)例

#!/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

輸出結(jié)果如下:

('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是否有繪制混淆矩陣的函數(shù),怎么來(lái)實(shí)現(xiàn)

#?-*-?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:?真實(shí)的y的值,?1d?array

y_predict:?預(yù)測(cè)的y的值,?1d?array

cmap:?畫(huà)混淆矩陣圖的配色風(fēng)格,?使用cm.Blues,更多風(fēng)格請(qǐng)參考官網(wǎng)

"""

cm?=?confusion_matrix(y_truth,?y_predict)

plt.matshow(cm,?cmap=cmap)??#?混淆矩陣圖

plt.colorbar()??#?顏色標(biāo)簽

for?x?in?range(len(cm)):??#?數(shù)據(jù)標(biāo)簽

for?y?in?range(len(cm)):

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

plt.ylabel('True?label')??#?坐標(biāo)軸標(biāo)簽

plt.xlabel('Predicted?label')??#?坐標(biāo)軸標(biāo)簽

plt.show()??#?顯示作圖結(jié)果

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 報(bào)錯(cuò)

【現(xiàn)象】

很多Python初學(xué)者,在安裝了最新版本的Python 3.x版本,比如Python 3.2之后,

去參考別人的代碼(基于Python 2.x寫(xiě)的教程),去利用print函數(shù),打印輸出內(nèi)容時(shí),結(jié)果卻遇到print函數(shù)的語(yǔ)法錯(cuò)誤:

SyntaxError: invalid syntax

比如,雖然找個(gè)例子的截圖為:

【原因】

這是因?yàn)?,你正在用的Python版本是Python 3.x,而參考別人的代碼是Python 2.x的代碼,而由于Python 2.x升級(jí)到Python 3.x,print函數(shù)的語(yǔ)法變化了,

所以你用Python 2.x的print函數(shù)的代碼,放在Python 3.x中運(yùn)行,結(jié)果就出現(xiàn)了print函數(shù)的“SyntaxError: invalid syntax”了。

即,這也是Python初學(xué)者,第一個(gè)最容易遇到的問(wèn)題:

在安裝了(最新版本的)Python 3.x后,去運(yùn)行(參考了別人的)Python 2.x的print函數(shù)的代碼,結(jié)果就是遇到了print函數(shù)的語(yǔ)法錯(cuò)誤:SyntaxError: invalid syntax

【Python 2.x和Python 3.x中print函數(shù)語(yǔ)法方面的區(qū)別】

最簡(jiǎn)潔的解釋為:

Python 2.x: print函數(shù)(所要打印的內(nèi)容)不帶括號(hào)

Python 3.x: print函數(shù)(所要打印的內(nèi)容),必須帶括號(hào)

舉例來(lái)說(shuō)明,即為:

1.不帶百分號(hào)格式化的

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. 帶百分號(hào)格式化的

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模塊混淆矩陣常用函數(shù)

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

參數(shù)分別為y實(shí)際類別、預(yù)測(cè)類別、返回值要求(True返回正確的樣本占比,false返回的是正確分類的樣本數(shù)量)

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)

參數(shù):真是類別,預(yù)測(cè)類別,目標(biāo)類別名稱

eg:

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

輸出為混淆矩陣

eg:

太多了,寫(xiě)3個(gè)常用的吧,具體參考help(metrics)

defcm_plot(y,yp):#參數(shù)為實(shí)際分類和預(yù)測(cè)分類

fromsklearn.metricsimportconfusion_matrix

#導(dǎo)入混淆矩陣函數(shù)

cm = confusion_matrix(y,yp)

#輸出為混淆矩陣

importmatplotlib.pyplotasplt

#導(dǎo)入作圖函數(shù)

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

# 畫(huà)混淆矩陣圖,配色風(fēng)格使用cm.Greens

plt.colorbar()

# 顏色標(biāo)簽

forxinrange(len(cm)):

foryinrange(len(cm)):

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

#annotate主要在圖形中添加注釋

# 第一個(gè)參數(shù)添加注釋

# 第一個(gè)參數(shù)是注釋的內(nèi)容

# xy設(shè)置箭頭尖的坐標(biāo)

#horizontalalignment水平對(duì)齊

#verticalalignment垂直對(duì)齊

#其余常用參數(shù)如下:

# xytext設(shè)置注釋內(nèi)容顯示的起始位置

# arrowprops 用來(lái)設(shè)置箭頭

# facecolor 設(shè)置箭頭的顏色

# headlength 箭頭的頭的長(zhǎng)度

# headwidth 箭頭的寬度

# width 箭身的寬度

plt.ylabel('True label')# 坐標(biāo)軸標(biāo)簽

plt.xlabel('Predicted label')# 坐標(biāo)軸標(biāo)簽

returnplt

#函數(shù)調(diào)用

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

Python的函數(shù)都有哪些

【常見(jiàn)的內(nèi)置函數(shù)】

1、enumerate(iterable,start=0)

是python的內(nèi)置函數(shù),是枚舉、列舉的意思,對(duì)于一個(gè)可迭代的(iterable)/可遍歷的對(duì)象(如列表、字符串),enumerate將其組成一個(gè)索引序列,利用它可以同時(shí)獲得索引和值。

2、zip(*iterables,strict=False)

用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表。如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長(zhǎng)度與最短的對(duì)象相同,利用*號(hào)操作符,可以將元組解壓為列表。

3、filter(function,iterable)

filter是將一個(gè)序列進(jìn)行過(guò)濾,返回迭代器的對(duì)象,去除不滿足條件的序列。

4、isinstance(object,classinfo)

是用來(lái)判斷某一個(gè)變量或者是對(duì)象是不是屬于某種類型的一個(gè)函數(shù),如果參數(shù)object是classinfo的實(shí)例,或者object是classinfo類的子類的一個(gè)實(shí)例,

返回True。如果object不是一個(gè)給定類型的的對(duì)象, 則返回結(jié)果總是False

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

用來(lái)將字符串str當(dāng)成有效的表達(dá)式來(lái)求值并返回計(jì)算結(jié)果,表達(dá)式解析參數(shù)expression并作為Python表達(dá)式進(jìn)行求值(從技術(shù)上說(shuō)是一個(gè)條件列表),采用globals和locals字典作為全局和局部命名空間。

【常用的句式】

1、format字符串格式化

format把字符串當(dāng)成一個(gè)模板,通過(guò)傳入的參數(shù)進(jìn)行格式化,非常實(shí)用且強(qiáng)大。

2、連接字符串

常使用+連接兩個(gè)字符串。

3、if...else條件語(yǔ)句

Python條件語(yǔ)句是通過(guò)一條或多條語(yǔ)句的執(zhí)行結(jié)果(True或者False)來(lái)決定執(zhí)行的代碼塊。其中if...else語(yǔ)句用來(lái)執(zhí)行需要判斷的情形。

4、for...in、while循環(huán)語(yǔ)句

循環(huán)語(yǔ)句就是遍歷一個(gè)序列,循環(huán)去執(zhí)行某個(gè)操作,Python中的循環(huán)語(yǔ)句有for和while。

5、import導(dǎo)入其他腳本的功能

有時(shí)需要使用另一個(gè)python文件中的腳本,這其實(shí)很簡(jiǎn)單,就像使用import關(guān)鍵字導(dǎo)入任何模塊一樣。

python內(nèi)置函數(shù)有哪些

python常見(jiàn)的內(nèi)置函數(shù)有:

1. abs()函數(shù)返回?cái)?shù)字的絕對(duì)值。

2. all() 函數(shù)用于判斷給定的參數(shù)中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。元素除了是 0、空、None、False 外都算 True;空元組、空列表返回值為T(mén)rue。

3. any() 函數(shù)用于判斷給定的參數(shù)是否全部為False,是則返回False,如果有一個(gè)為T(mén)rue,則返回True。 元素除了是 0、空、False外都算 TRUE。

4. bin()函數(shù)返回一個(gè)整數(shù)int或者長(zhǎng)整數(shù)long int的二進(jìn)制表示。

5. bool() 函數(shù)用于將給定參數(shù)轉(zhuǎn)換為布爾類型,如果參數(shù)不為空或不為0,返回True;參數(shù)為0或沒(méi)有參數(shù),返回False。

6. bytearray()方法返回一個(gè)新字節(jié)數(shù)組。這個(gè)數(shù)組里的元素是可變的,并且每個(gè)元素的值范圍: 0 = x 256(即0-255)。即bytearray()是可修改的二進(jìn)制字節(jié)格式。

7. callable()函數(shù)用于檢查一個(gè)對(duì)象是否可調(diào)用的。對(duì)于函數(shù)、方法、lambda函式、類以及實(shí)現(xiàn)了 __call__ 方法的類實(shí)例, 它都返回 True。(可以加括號(hào)的都可以調(diào)用)

8. chr()函數(shù)用一個(gè)范圍在range(256)內(nèi)(即0~255)的整數(shù)作參數(shù),返回一個(gè)對(duì)應(yīng)的ASCII數(shù)值。

9. dict()函數(shù)用來(lái)將元組/列表轉(zhuǎn)換為字典格式。

10. dir()函數(shù)不帶參數(shù)時(shí),返回當(dāng)前范圍內(nèi)的變量、方法和定義的類型列表;帶參數(shù)時(shí),返回參數(shù)的屬性、方法列表。

擴(kuò)展資料:

如何查看python3.6的內(nèi)置函數(shù)?

1、首先先打開(kāi)python自帶的集成開(kāi)發(fā)環(huán)境IDLE;

2、然后我們直接輸入"dir(__builtins__)",需要注意的是builtins左右的下劃線都是兩個(gè);

3、回車之后我們就可以看到python所有的內(nèi)置函數(shù);

4、接下來(lái)我們學(xué)習(xí)第二種查看python內(nèi)置函數(shù)的方法,我們直接在IDLE中輸入"import builtins",然后輸入"dir(builtins)";

5、然后回車,同樣的這個(gè)方法也可以得到所有的python內(nèi)置的函數(shù);

6、這里我們可以使用python內(nèi)置函數(shù)len()來(lái)查看python內(nèi)置函數(shù)的個(gè)數(shù),這里我們直接輸入"len(dir(builtins))";

7、回車之后我們可以看到系統(tǒng)返回值153,說(shuō)明我們現(xiàn)在這個(gè)版本中有153個(gè)內(nèi)置函數(shù);

8、最后我們介紹一個(gè)比較有用的內(nèi)置函數(shù)"help",python內(nèi)置函數(shù)有一百多個(gè),我們當(dāng)然不能記住所有的函數(shù),這里python提供了一個(gè)"help"函數(shù),我們來(lái)看一個(gè)例子一起來(lái)體會(huì)一下help函數(shù)的用法,這里我們直接輸入"help(len)",然后回車,會(huì)看到系統(tǒng)給我們對(duì)于內(nèi)置函數(shù)"len"的解釋,當(dāng)然對(duì)于其他函數(shù)可能會(huì)有更加詳細(xì)的解釋以及用法提示。


新聞名稱:python中cm的函數(shù) cmd Python
瀏覽路徑:http://weahome.cn/article/dodjshd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部