統(tǒng)計一個列表中每一個元素的個數(shù)在Python里有兩種實現(xiàn)方式,
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的銅官網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
第一種是新建一個dict,鍵是列表中的元素,值是統(tǒng)計的個數(shù),然后遍歷list。
items?=?["cc","cc","ct","ct","ac"]
count?=?{}
for?item?in?items:
count[item]?=?count.get(item,?0)?+?1
print(count)
#{'ac':?1,?'ct':?2,?'cc':?2}
之中用到了一個小技巧,當dict中不還沒有統(tǒng)計過一個元素時,直接索引count[item]會報錯,而使用get方法count.get(item, 0)能夠設(shè)置索引不存在的鍵時返回0。
第二種是使用Python內(nèi)置的函數(shù)。統(tǒng)計元素的個數(shù)是一種非常常見的操作,Python的collection包里已經(jīng)有一個Counter的類,大致實現(xiàn)了上面的功能。
from?collections?import?Counter
items?=?["cc","cc","ct","ct","ac"]
count?=?Counter(items)
print(count)
#Counter({'ct':?2,?'cc':?2,?'ac':?1})
代碼如下:
text = "Hello Python,Hello 2021."
letter = 0
digital = 0
other = 0
for i in text:
if i.isalpha():
letter += 1
elif i.isdigit():
digital += 1
else:
other += 1
print('字母:{} 數(shù)字:{} 其他:{}'.format(letter,digital,other))
輸出:
字母:16 數(shù)字:4 其他:4
下面是Python內(nèi)置關(guān)于判斷字符串類型的方法介紹:
str.isalnum()
如果字符串中的所有字符都是字母或數(shù)字且至少有一個字符,則返回?True?, 否則返回?False?。 如果?c.isalpha()?,?c.isdecimal()?,?c.isdigit()?,或?c.isnumeric()?之中有一個返回?True?,則字符``c``是字母或數(shù)字。
str.isalpha()
如果字符串中的所有字符都是字母,并且至少有一個字符,返回?True?,否則返回?False?。字母字符是指那些在 Unicode 字符數(shù)據(jù)庫中定義為 "Letter" 的字符,即那些具有 "Lm"、"Lt"、"Lu"、"Ll" 或 "Lo" 之一的通用類別屬性的字符。 注意,這與 Unicode 標準中定義的"字母"屬性不同。
str.isascii()
如果字符串為空或字符串中的所有字符都是 ASCII ,返回?True?,否則返回?False?。ASCII 字符的碼點范圍是 U+0000-U+007F 。
3.7 新版功能.
str.isdecimal()
如果字符串中的所有字符都是十進制字符且該字符串至少有一個字符,則返回?True?, 否則返回?False?。十進制字符指那些可以用來組成10進制數(shù)字的字符,例如 U+0660 ,即阿拉伯字母數(shù)字0 。 嚴格地講,十進制字符是 Unicode 通用類別 "Nd" 中的一個字符。
str.isdigit()
如果字符串中的所有字符都是數(shù)字,并且至少有一個字符,返回?True?,否則返回?False?。 數(shù)字包括十進制字符和需要特殊處理的數(shù)字,如兼容性上標數(shù)字。這包括了不能用來組成 10 進制數(shù)的數(shù)字,如 Kharosthi 數(shù)。 嚴格地講,數(shù)字是指屬性值為 Numeric_Type=Digit 或 Numeric_Type=Decimal 的字符。
str.isidentifier()
如果字符串是有效的標識符,返回?True?,依據(jù)語言定義,?標識符和關(guān)鍵字?節(jié)。
調(diào)用?keyword.iskeyword()?來檢測字符串?s?是否為保留標識符,例如?def?和?class。
df.drop_duplicates('item_name')
方法一:
df.drop_duplicates('item_name').count()
方法二:
df['item_name'].nunique()
結(jié)果:50
附:nunique()和unique()的區(qū)別:
unique()是以 數(shù)組形式(numpy.ndarray)返回列的所有唯一值(特征的所有唯一值)
nunique()即返回的是唯一值的個數(shù)
比如:df['item_name'].unique()
要求:將下表中經(jīng)驗列將按周統(tǒng)計的轉(zhuǎn)換為經(jīng)驗不限,保留學歷
df1['經(jīng)驗'] = df1['經(jīng)驗'].apply(lambda x: '經(jīng)驗不限'+ x[-2:] if '周' in x else x)
#解釋:將‘5天/周6個月’變成‘經(jīng)驗不限’,然后保留學歷‘本科’
方法二:定義函數(shù)
def dataInterval(ss):
if '周' in ss:
? ? return '經(jīng)驗不限'+ ss[-2:]
return ss
df1['經(jīng)驗'] = df1['經(jīng)驗'].apply(dataInterval)
1、 NumPy
NumPy幾乎是一個無法回避的科學計算工具包,最常用的也許是它的N維數(shù)組對象,其他還包括一些成熟的函數(shù)庫,用于整合C/C++和Fortran代碼的工具包,線性代數(shù)、傅里葉變換和隨機數(shù)生成函數(shù)等。NumPy提供了兩種基本的對象:ndarray(N-dimensional array object)和 ufunc(universal function object)。ndarray是存儲單一數(shù)據(jù)類型的多維數(shù)組,而ufunc則是能夠?qū)?shù)組進行處理的函數(shù)。
2、SciPy:Scientific Computing Tools for Python
“SciPy是一個開源的Python算法庫和數(shù)學工具包,SciPy包含的模塊有最優(yōu)化、線性代數(shù)、積分、插值、特殊函數(shù)、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算。其功能與軟件MATLAB、Scilab和GNU Octave類似。 Numpy和Scipy常常結(jié)合著使用,Python大多數(shù)機器學習庫都依賴于這兩個模塊?!薄?引用自“Python機器學習庫”
3、 Matplotlib
matplotlib 是python最著名的繪圖庫,它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地進行制圖。而且也可以方便地將它作為繪圖控件,嵌入GUI應(yīng)用程序中。Matplotlib可以配合ipython shell使用,提供不亞于Matlab的繪圖體驗,總之用過了都說好。
關(guān)于Python科學計算常用的工具包有哪些,環(huán)球青藤小編就和大家分享到這里了,學習是永無止境的,學習一項技能更是受益終身,所以,只要肯努力學,什么時候開始都不晚。如果您還想繼續(xù)了解關(guān)于python編程的學習方法及素材等內(nèi)容,可以點擊本站其他文章學習。
python count()函數(shù)的功能和用法如下:
統(tǒng)計字符串
在python中可以使用“count()”函數(shù)統(tǒng)計字符串里某個字符出現(xiàn)的次數(shù),該函數(shù)用于統(tǒng)計次數(shù),其語法是“count(sub, start...
Python count() 方法用于統(tǒng)計字符串里某個字符出現(xiàn)的次數(shù)??蛇x參數(shù)為在字符串搜索的開始與結(jié)束位置。
count()函數(shù)
描述:統(tǒng)計字符串里某個字符出現(xiàn)的次數(shù)??梢赃x擇字符串索引的起始位置和結(jié)束位置。? ? ? ? ?
語法:str.count("char", start,end)? 或 str.count("char")? ? - int? ? 返回整數(shù)
str —— 為要統(tǒng)計的字符(可以是單字符,也可以是多字符)。
star —— 為索引字符串的起始位置,默認參數(shù)為0。
end —— 為索引字符串的結(jié)束位置,默認參數(shù)為字符串長度即len(str)
1. 常用函數(shù)庫
? scipy包中的stats模塊和statsmodels包是python常用的數(shù)據(jù)分析工具,scipy.stats以前有一個models子模塊,后來被移除了。這個模塊被重寫并成為了現(xiàn)在獨立的statsmodels包。
?scipy的stats包含一些比較基本的工具,比如:t檢驗,正態(tài)性檢驗,卡方檢驗之類,statsmodels提供了更為系統(tǒng)的統(tǒng)計模型,包括線性模型,時序分析,還包含數(shù)據(jù)集,做圖工具等等。
2. 小樣本數(shù)據(jù)的正態(tài)性檢驗
(1) 用途
?夏皮羅維爾克檢驗法 (Shapiro-Wilk) 用于檢驗參數(shù)提供的一組小樣本數(shù)據(jù)線是否符合正態(tài)分布,統(tǒng)計量越大則表示數(shù)據(jù)越符合正態(tài)分布,但是在非正態(tài)分布的小樣本數(shù)據(jù)中也經(jīng)常會出現(xiàn)較大的W值。需要查表來估計其概率。由于原假設(shè)是其符合正態(tài)分布,所以當P值小于指定顯著水平時表示其不符合正態(tài)分布。
?正態(tài)性檢驗是數(shù)據(jù)分析的第一步,數(shù)據(jù)是否符合正態(tài)性決定了后續(xù)使用不同的分析和預(yù)測方法,當數(shù)據(jù)不符合正態(tài)性分布時,我們可以通過不同的轉(zhuǎn)換方法把非正太態(tài)數(shù)據(jù)轉(zhuǎn)換成正態(tài)分布后再使用相應(yīng)的統(tǒng)計方法進行下一步操作。
(2) 示例
(3) 結(jié)果分析
?返回結(jié)果 p-value=0.029035290703177452,比指定的顯著水平(一般為5%)小,則拒絕假設(shè):x不服從正態(tài)分布。
3. 檢驗樣本是否服務(wù)某一分布
(1) 用途
?科爾莫戈羅夫檢驗(Kolmogorov-Smirnov test),檢驗樣本數(shù)據(jù)是否服從某一分布,僅適用于連續(xù)分布的檢驗。下例中用它檢驗正態(tài)分布。
(2) 示例
(3) 結(jié)果分析
?生成300個服從N(0,1)標準正態(tài)分布的隨機數(shù),在使用k-s檢驗該數(shù)據(jù)是否服從正態(tài)分布,提出假設(shè):x從正態(tài)分布。最終返回的結(jié)果,p-value=0.9260909172362317,比指定的顯著水平(一般為5%)大,則我們不能拒絕假設(shè):x服從正態(tài)分布。這并不是說x服從正態(tài)分布一定是正確的,而是說沒有充分的證據(jù)證明x不服從正態(tài)分布。因此我們的假設(shè)被接受,認為x服從正態(tài)分布。如果p-value小于我們指定的顯著性水平,則我們可以肯定地拒絕提出的假設(shè),認為x肯定不服從正態(tài)分布,這個拒絕是絕對正確的。
4.方差齊性檢驗
(1) 用途
?方差反映了一組數(shù)據(jù)與其平均值的偏離程度,方差齊性檢驗用以檢驗兩組或多組數(shù)據(jù)與其平均值偏離程度是否存在差異,也是很多檢驗和算法的先決條件。
(2) 示例
(3) 結(jié)果分析
?返回結(jié)果 p-value=0.19337536323599344, 比指定的顯著水平(假設(shè)為5%)大,認為兩組數(shù)據(jù)具有方差齊性。
5. 圖形描述相關(guān)性
(1) 用途
?最常用的兩變量相關(guān)性分析,是用作圖描述相關(guān)性,圖的橫軸是一個變量,縱軸是另一變量,畫散點圖,從圖中可以直觀地看到相關(guān)性的方向和強弱,線性正相關(guān)一般形成由左下到右上的圖形;負面相關(guān)則是從左上到右下的圖形,還有一些非線性相關(guān)也能從圖中觀察到。
(2) 示例
(3) 結(jié)果分析
?從圖中可以看到明顯的正相關(guān)趨勢。
6. 正態(tài)資料的相關(guān)分析
(1) 用途
?皮爾森相關(guān)系數(shù)(Pearson correlation coefficient)是反應(yīng)兩變量之間線性相關(guān)程度的統(tǒng)計量,用它來分析正態(tài)分布的兩個連續(xù)型變量之間的相關(guān)性。常用于分析自變量之間,以及自變量和因變量之間的相關(guān)性。
(2) 示例
(3) 結(jié)果分析
?返回結(jié)果的第一個值為相關(guān)系數(shù)表示線性相關(guān)程度,其取值范圍在[-1,1],絕對值越接近1,說明兩個變量的相關(guān)性越強,絕對值越接近0說明兩個變量的相關(guān)性越差。當兩個變量完全不相關(guān)時相關(guān)系數(shù)為0。第二個值為p-value,統(tǒng)計學上,一般當p-value0.05時,可以認為兩變量存在相關(guān)性。
7. 非正態(tài)資料的相關(guān)分析
(1) 用途
?斯皮爾曼等級相關(guān)系數(shù)(Spearman’s correlation coefficient for ranked data ),它主要用于評價順序變量間的線性相關(guān)關(guān)系,在計算過程中,只考慮變量值的順序(rank, 值或稱等級),而不考慮變量值的大小。常用于計算類型變量的相關(guān)性。
(2) 示例
(3) 結(jié)果分析
?返回結(jié)果的第一個值為相關(guān)系數(shù)表示線性相關(guān)程度,本例中correlation趨近于1表示正相關(guān)。第二個值為p-value,p-value越小,表示相關(guān)程度越顯著。
8. 單樣本T檢驗
(1) 用途
?單樣本T檢驗,用于檢驗數(shù)據(jù)是否來自一致均值的總體,T檢驗主要是以均值為核心的檢驗。注意以下幾種T檢驗都是雙側(cè)T檢驗。
(2) 示例
(3) 結(jié)果分析
?本例中生成了2列100行的數(shù)組,ttest_1samp的第二個參數(shù)是分別對兩列估計的均值,p-value返回結(jié)果,第一列1.47820719e-06比指定的顯著水平(一般為5%)小,認為差異顯著,拒絕假設(shè);第二列2.83088106e-01大于指定顯著水平,不能拒絕假設(shè):服從正態(tài)分布。
9. 兩獨立樣本T檢驗
(1) 用途
?由于比較兩組數(shù)據(jù)是否來自于同一正態(tài)分布的總體。注意:如果要比較的兩組數(shù)據(jù)不滿足方差齊性, 需要在ttest_ind()函數(shù)中添加參數(shù)equal_var = False。
(2) 示例
(3) 結(jié)果分析
?返回結(jié)果的第一個值為統(tǒng)計量,第二個值為p-value,pvalue=0.19313343989106416,比指定的顯著水平(一般為5%)大,不能拒絕假設(shè),兩組數(shù)據(jù)來自于同一總結(jié),兩組數(shù)據(jù)之間無差異。
10. 配對樣本T檢驗
(1) 用途
?配對樣本T檢驗可視為單樣本T檢驗的擴展,檢驗的對象由一群來自正態(tài)分布獨立樣本更改為二群配對樣本觀測值之差。它常用于比較同一受試對象處理的前后差異,或者按照某一條件進行兩兩配對分別給與不同處理的受試對象之間是否存在差異。
(2) 示例
(3) 結(jié)果分析
?返回結(jié)果的第一個值為統(tǒng)計量,第二個值為p-value,pvalue=0.80964043445811551,比指定的顯著水平(一般為5%)大,不能拒絕假設(shè)。
11. 單因素方差分析
(1) 用途
?方差分析(Analysis of Variance,簡稱ANOVA),又稱F檢驗,用于兩個及兩個以上樣本均數(shù)差別的顯著性檢驗。方差分析主要是考慮各組之間的平均數(shù)差別。
?單因素方差分析(One-wayAnova),是檢驗由單一因素影響的多組樣本某因變量的均值是否有顯著差異。
?當因變量Y是數(shù)值型,自變量X是分類值,通常的做法是按X的類別把實例成分幾組,分析Y值在X的不同分組中是否存在差異。
(2) 示例
(3) 結(jié)果分析
?返回結(jié)果的第一個值為統(tǒng)計量,它由組間差異除以組間差異得到,上例中組間差異很大,第二個返回值p-value=6.2231520821576832e-19小于邊界值(一般為0.05),拒絕原假設(shè), 即認為以上三組數(shù)據(jù)存在統(tǒng)計學差異,并不能判斷是哪兩組之間存在差異 。只有兩組數(shù)據(jù)時,效果同 stats.levene 一樣。
12. 多因素方差分析
(1) 用途
?當有兩個或者兩個以上自變量對因變量產(chǎn)生影響時,可以用多因素方差分析的方法來進行分析。它不僅要考慮每個因素的主效應(yīng),還要考慮因素之間的交互效應(yīng)。
(2) 示例
(3) 結(jié)果分析
?上述程序定義了公式,公式中,"~"用于隔離因變量和自變量,”+“用于分隔各個自變量, ":"表示兩個自變量交互影響。從返回結(jié)果的P值可以看出,X1和X2的值組間差異不大,而組合后的T:G的組間有明顯差異。
13. 卡方檢驗
(1) 用途
?上面介紹的T檢驗是參數(shù)檢驗,卡方檢驗是一種非參數(shù)檢驗方法。相對來說,非參數(shù)檢驗對數(shù)據(jù)分布的要求比較寬松,并且也不要求太大數(shù)據(jù)量。卡方檢驗是一種對計數(shù)資料的假設(shè)檢驗方法,主要是比較理論頻數(shù)和實際頻數(shù)的吻合程度。常用于特征選擇,比如,檢驗?zāi)腥撕团嗽谑欠窕加懈哐獕荷嫌袩o區(qū)別,如果有區(qū)別,則說明性別與是否患有高血壓有關(guān),在后續(xù)分析時就需要把性別這個分類變量放入模型訓練。
?基本數(shù)據(jù)有R行C列, 故通稱RC列聯(lián)表(contingency table), 簡稱RC表,它是觀測數(shù)據(jù)按兩個或更多屬性(定性變量)分類時所列出的頻數(shù)表。
(2) 示例
(3) 結(jié)果分析
?卡方檢驗函數(shù)的參數(shù)是列聯(lián)表中的頻數(shù),返回結(jié)果第一個值為統(tǒng)計量值,第二個結(jié)果為p-value值,p-value=0.54543425102570975,比指定的顯著水平(一般5%)大,不能拒絕原假設(shè),即相關(guān)性不顯著。第三個結(jié)果是自由度,第四個結(jié)果的數(shù)組是列聯(lián)表的期望值分布。
14. 單變量統(tǒng)計分析
(1) 用途
?單變量統(tǒng)計描述是數(shù)據(jù)分析中最簡單的形式,其中被分析的數(shù)據(jù)只包含一個變量,不處理原因或關(guān)系。單變量分析的主要目的是通過對數(shù)據(jù)的統(tǒng)計描述了解當前數(shù)據(jù)的基本情況,并找出數(shù)據(jù)的分布模型。
?單變量數(shù)據(jù)統(tǒng)計描述從集中趨勢上看,指標有:均值,中位數(shù),分位數(shù),眾數(shù);從離散程度上看,指標有:極差、四分位數(shù)、方差、標準差、協(xié)方差、變異系數(shù),從分布上看,有偏度,峰度等。需要考慮的還有極大值,極小值(數(shù)值型變量)和頻數(shù),構(gòu)成比(分類或等級變量)。
?此外,還可以用統(tǒng)計圖直觀展示數(shù)據(jù)分布特征,如:柱狀圖、正方圖、箱式圖、頻率多邊形和餅狀圖。
15. 多元線性回歸
(1) 用途
?多元線性回歸模型(multivariable linear regression model ),因變量Y(計量資料)往往受到多個變量X的影響,多元線性回歸模型用于計算各個自變量對因變量的影響程度,可以認為是對多維空間中的點做線性擬合。
(2) 示例
(3) 結(jié)果分析
?直接通過返回結(jié)果中各變量的P值與0.05比較,來判定對應(yīng)的解釋變量的顯著性,P0.05則認為自變量具有統(tǒng)計學意義,從上例中可以看到收入INCOME最有顯著性。
16. 邏輯回歸
(1) 用途
?當因變量Y為2分類變量(或多分類變量時)可以用相應(yīng)的logistic回歸分析各個自變量對因變量的影響程度。
(2) 示例
(3) 結(jié)果分析
?直接通過返回結(jié)果中各變量的P值與0.05比較,來判定對應(yīng)的解釋變量的顯著性,P0.05則認為自變量具有統(tǒng)計學意義。
分享名稱:Python統(tǒng)計函數(shù)包,python編寫函數(shù)統(tǒng)計字符個數(shù)
瀏覽路徑:http://chinadenli.net/article2/hegcic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、全網(wǎng)營銷推廣、網(wǎng)站設(shè)計公司、網(wǎng)站收錄、定制網(wǎng)站、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)