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

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的臺(tái)前網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(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)入任何模塊一樣。
如果你想獲取 'A' 列的第 0 和第 2 個(gè)元素,你可以這樣做:
這也可以用 .iloc 獲取,通過(guò)使用位置索引來(lái)選擇內(nèi)容
可以使用 .get_indexer 獲取多個(gè)索引:
警告 :
對(duì)于包含一個(gè)或多個(gè)缺失標(biāo)簽的列表,使用 .loc 或 [] 將不再重新索引,而是使用 .reindex
在以前的版本中,只要索引列表中存在至少一個(gè)有效標(biāo)簽,就可以使用 .loc[list-of-labels]
但是現(xiàn)在,只要索引列表中存在缺失的標(biāo)簽將引發(fā) KeyError 。推薦的替代方法是使用 .reindex() 。
例如
索引列表的標(biāo)簽都存在
先前的版本
但是,現(xiàn)在
索引標(biāo)簽列表中包含不存在的標(biāo)簽,使用 reindex
另外,如果你只想選擇有效的鍵,可以使用下面的方法,同時(shí)保留了數(shù)據(jù)的 dtype
對(duì)于 .reindex() ,如果有重復(fù)的索引將會(huì)引發(fā)異常
通常,您可以將所需的標(biāo)簽與當(dāng)前軸做交集,然后重新索引
但是,如果你的索引結(jié)果包含重復(fù)標(biāo)簽,還是會(huì)引發(fā)異常
使用 sample() 方法可以從 Series 或 DataFrame 中隨機(jī)選擇行或列。
該方法默認(rèn)會(huì)對(duì)行進(jìn)行采樣,并接受一個(gè)特定的行數(shù)、列數(shù),或數(shù)據(jù)子集。
默認(rèn)情況下, sample 每行最多返回一次,但也可以使用 replace 參數(shù)進(jìn)行替換采樣
默認(rèn)情況下,每一行被選中的概率相等,但是如果你想讓每一行有不同的概率,你可以為 sample 函數(shù)的 weights 參數(shù)設(shè)置抽樣權(quán)值
這些權(quán)重可以是一個(gè)列表、一個(gè) NumPy 數(shù)組或一個(gè) Series ,但它們的長(zhǎng)度必須與你要抽樣的對(duì)象相同。
缺失的值將被視為權(quán)重為零,并且不允許使用 inf 值。如果權(quán)重之和不等于 1 ,則將所有權(quán)重除以權(quán)重之和,將其重新歸一化。例如
當(dāng)應(yīng)用于 DataFrame 時(shí),您可以通過(guò)簡(jiǎn)單地將列名作為字符串傳遞給 weights 作為采樣權(quán)重(前提是您要采樣的是行而不是列)。
sample 還允許用戶使用 axis 參數(shù)對(duì)列進(jìn)行抽樣。
最后,我們還可以使用 random_state 參數(shù)為 sample 的隨機(jī)數(shù)生成器設(shè)置一個(gè)種子,它將接受一個(gè)整數(shù)(作為種子)或一個(gè) NumPy RandomState 對(duì)象
當(dāng)為該軸設(shè)置一個(gè)不存在的鍵時(shí), .loc/[] 操作可以執(zhí)行放大
在 Series 的情況下,這實(shí)際上是一個(gè)追加操作
可以通過(guò) .loc 在任一軸上放大 DataFrame
這就像 DataFrame 的 append 操作
由于用 [] 做索引必須處理很多情況(單標(biāo)簽訪問(wèn)、分片、布爾索引等),所以需要一些開(kāi)銷來(lái)搞清楚你的意圖
如果你只想訪問(wèn)一個(gè)標(biāo)量值,最快的方法是使用 at 和 iat 方法,這兩個(gè)方法在所有的數(shù)據(jù)結(jié)構(gòu)上都實(shí)現(xiàn)了
與 loc 類似, at 提供了基于標(biāo)簽的標(biāo)量查找,而 iat 提供了基于整數(shù)的查找,與 iloc 類似
同時(shí),你也可以根據(jù)這些索引進(jìn)行設(shè)置值
如果索引標(biāo)簽不存在,會(huì)放大數(shù)據(jù)
另一種常見(jiàn)的操作是使用布爾向量來(lái)過(guò)濾數(shù)據(jù)。運(yùn)算符包括:
|(or) 、 (and) 、 ~ (not)
這些必須用括號(hào)來(lái)分組,因?yàn)槟J(rèn)情況下, Python 會(huì)將 df['A'] 2 df['B'] 3 這樣的表達(dá)式評(píng)估為 df['A'] (2 df['B']) 3 ,而理想的執(zhí)行順序是 (df['A'] 2) (df['B'] 3)
使用一個(gè)布爾向量來(lái)索引一個(gè) Series ,其工作原理和 NumPy ndarray 一樣。
您可以使用一個(gè)與 DataFrame 的索引長(zhǎng)度相同的布爾向量從 DataFrame 中選擇行
列表推導(dǎo)式和 Series 的 map 函數(shù)可用于產(chǎn)生更復(fù)雜的標(biāo)準(zhǔn)
我們可以使用布爾向量結(jié)合其他索引表達(dá)式,在多個(gè)軸上索引
iloc 支持兩種布爾索引。如果索引器是一個(gè)布爾值 Series ,就會(huì)引發(fā)異常。
例如,在下面的例子中, df.iloc[s.values, 1] 是正確的。但是 df.iloc[s,1] 會(huì)引發(fā) ValueError 。
本節(jié)將介紹使用多級(jí)索引(分層索引)和其他高級(jí)索引技巧
分層或多級(jí)次索引的存在是非常有意義的,因?yàn)樗蜷_(kāi)了復(fù)雜的數(shù)據(jù)分析和操作的大門(mén),特別是處理高維數(shù)據(jù)
從本質(zhì)上講,它允許您在較低維度的數(shù)據(jù)結(jié)構(gòu)包括 Series(1d) 和 DataFrame(2d) 中存儲(chǔ)和操作任意維度的數(shù)據(jù)
在本節(jié)中,我們將展示分層索引的確切含義,以及如何結(jié)合前面介紹的所有 pandas 索引功能使用
在 0.24.0 版本之后, MultiIndex.label 重命名為 MultiIndex.codes 。 MultiIndex.set_labels 重命名為 MultiIndex.set_codes .
MultiIndex 對(duì)象是標(biāo)準(zhǔn) Index 對(duì)象的分層模式,它通常在 pandas 對(duì)象中存儲(chǔ)軸標(biāo)簽
你可以把 MultiIndex 看成一個(gè)元組數(shù)組,其中每個(gè)元組都是唯一的。 MultiIndex 有如下創(chuàng)建方式
當(dāng)傳遞給 Index 構(gòu)造函數(shù)一個(gè)元組列表時(shí),它將嘗試返回一個(gè) MultiIndex 。
下面的示例演示了初始化 MultiIndex 的不同方法。
當(dāng)你想要對(duì)兩個(gè)可迭代對(duì)象中的每個(gè)元素進(jìn)行兩兩配對(duì)時(shí),可以使用 MultiIndex.from_product()
您也可以使用 MultiIndex.from_frame() 方法直接從 DataFrame 中構(gòu)造一個(gè) MultiIndex 。
為了方便起見(jiàn),你可以直接將數(shù)組列表傳遞給 Series 或 DataFrame 的 index 參數(shù)來(lái)自動(dòng)構(gòu)造一個(gè) MultiIndex
所有的 MultiIndex 構(gòu)造函數(shù)都接受一個(gè) name 參數(shù),該參數(shù)存儲(chǔ)索引級(jí)別的名稱。如果沒(méi)有設(shè)置,則值為 None
索引可以放在任何軸上,索引的層級(jí)也可以隨你設(shè)置
這已經(jīng)簡(jiǎn)化了較高層次的索引,使控制臺(tái)的輸出更容易看清。
注意 ,索引的顯示方式可以通過(guò) pandas.set_options() 中的 multi_sparse 選項(xiàng)來(lái)控制。
值得注意的是,將元組用作軸上的原子標(biāo)簽也是可以的
多索引之所以重要,是因?yàn)樗试S您執(zhí)行分組、選擇和重塑操作,我們將在下面以及后續(xù)部分中描述這些操作
get_level_values() 方法能夠返回特定級(jí)別的標(biāo)簽向量
分級(jí)索引的一個(gè)重要特性是,您可以通過(guò)標(biāo)識(shí)數(shù)據(jù)中的子組的部分標(biāo)簽來(lái)選擇數(shù)據(jù)
部分選擇以一種完全類似于在常規(guī) DataFrame 中選擇列的方式,返回的結(jié)果會(huì) "降低" 分層索引的級(jí)別
MultiIndex 會(huì)保留索引的所有已經(jīng)定義了的級(jí)別,盡管它們實(shí)際上可能并沒(méi)有被使用。
在對(duì)索引進(jìn)行切片時(shí),您可能會(huì)注意到這一點(diǎn)。例如
這樣做的目的是為了避免重新計(jì)算級(jí)別,以提高切片的性能。如果你只想看某一級(jí)別,可以使用 get_level_values() 方法
可以使用 remove_unused_levels() 方法重構(gòu) MultiIndex
在具有 MultiIndex 的不同索引對(duì)象之間的操作會(huì)自動(dòng)對(duì)齊
Series/DataFrames 的 reindex() 方法可以傳入一個(gè) MultiIndex ,甚至可以是一個(gè)元組列表或元組數(shù)組
1、complex()
返回一個(gè)形如?a+bj?的復(fù)數(shù),傳入?yún)?shù)分為三種情況:
參數(shù)為空時(shí),返回0j;參數(shù)為字符串時(shí),將字符串表達(dá)式解釋為復(fù)數(shù)形式并返回;參數(shù)為兩個(gè)整數(shù)(a,b)時(shí),返回?a+bj;參數(shù)只有一個(gè)整數(shù) a 時(shí),虛部 b 默認(rèn)為0,函數(shù)返回?a+0j。
2、dir()
不提供參數(shù)時(shí),返回當(dāng)前本地范圍內(nèi)的名稱列表;提供一個(gè)參數(shù)時(shí),返回該對(duì)象包含的全部屬性。
3、divmod(a,b)
a -- 代表被除數(shù),整數(shù)或浮點(diǎn)數(shù);b -- 代表除數(shù),整數(shù)或浮點(diǎn)數(shù);根據(jù) 除法運(yùn)算 計(jì)算 a,b 之間的商和余數(shù),函數(shù)返回一個(gè)元組(p,q)?,p 代表商?a//b?,q 代表余數(shù)?a%b。
4、enumerate(iterable,start=0)
iterable -- 一個(gè)可迭代對(duì)象,列表、元組序列等;start -- 計(jì)數(shù)索引值,默認(rèn)初始為0‘該函數(shù)返回枚舉對(duì)象是個(gè)迭代器,利用 next() 方法依次返回元素值,每個(gè)元素以元組形式存在,包含一個(gè)計(jì)數(shù)元素(起始為 start )和 iterable 中對(duì)應(yīng)的元素值。
python的index函數(shù)可以獲取列表中值的第一個(gè)索引。
list= [1,2,3,4,5,1,2,2]
list.index(2) 1
如果要獲取相同值的最后一個(gè)索引:
len(list) - list[::-1].index(2) - 1
反向取得list后,用list的長(zhǎng)度減去反轉(zhuǎn)后出現(xiàn)的第一個(gè)索引再減1
文章標(biāo)題:python將索引函數(shù),Python索引函數(shù)
地址分享:http://chinadenli.net/article21/dsghocd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、軟件開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司、電子商務(wù)、搜索引擎優(yōu)化、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)