99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時代數(shù)據(jù)分析師教程《Python數(shù)據(jù)分析極簡入門》第1節(jié) Python基礎(chǔ)知識
數(shù)據(jù)分析師教程《Python數(shù)據(jù)分析極簡入門》第1節(jié) Python基礎(chǔ)知識
2024-11-18
收藏

近年來,隨著數(shù)據(jù)科學(xué)的逐步發(fā)展,Python語言的使用率也越來越高,不僅可以做數(shù)據(jù)處理,網(wǎng)頁開發(fā),更是數(shù)據(jù)科學(xué)、機器學(xué)習(xí)、深度學(xué)習(xí)等從業(yè)者的首選語言。

“工欲善其事,必先利其器?!?要做好數(shù)據(jù)分析,離不開一個好的編程工具,不論是從Python的語法之簡潔、開發(fā)之高效,招聘崗位之熱門來說,Python都是數(shù)據(jù)科學(xué)從業(yè)者需要掌握的一門語言。

但一直以來,人們卻誤以為“學(xué)會Python”是件很難的事情。

實則不然,這恰恰是我們選擇學(xué)Python的理由之一。

事實證明,Python人人皆能學(xué)會——千萬別不信。

  • 老少皆宜 —— 也就是說,“只要你愿意”,根本沒有年齡差異。十二歲的孩子可以學(xué);十八歲的大學(xué)生可以學(xué);在職工作人員可以學(xué)…… 就算你已經(jīng)退休了,想學(xué)就能學(xué),誰也攔不住你。

  • 不分性別,男性可以學(xué),女性同樣可以學(xué),性別差異在這里完全不存在。

  • 不分國界,更沒有區(qū)域差異 —— 互聯(lián)網(wǎng)的恩惠在于,你在北京、紐約也好,老虎溝、門頭溝也罷,在這個領(lǐng)域里同樣完全沒有任何具體差異。

尤其是在中國?,F(xiàn)狀是,中國的人口密度極高,優(yōu)質(zhì)教育資源的確就是稀缺…… 但在計算機科學(xué)領(lǐng)域,所有的所謂 “優(yōu)質(zhì)教育資源” 事實上完全沒有任何獨特的競爭力 —— 編程領(lǐng)域,實際上是當(dāng)今世上極為罕見的 “教育機會公平之地”。又不僅在中國如此,事實上,在全球范圍內(nèi)也都是如此。

多年以前,不識字的人被稱為文盲……

后來,不識英文,也是文盲。人們發(fā)現(xiàn)很多科學(xué)文獻的主導(dǎo)語言都是英語……

再后來,不會計算機的也算是文盲,因為不會計算機基本操作,很多工作的效率很低下,浪費了很多時間……

近些年,不會數(shù)據(jù)分析的,也算做文盲了,互聯(lián)網(wǎng)高速發(fā)展,用戶行為數(shù)據(jù)越來越多,

你作為一個個體,每天都在產(chǎn)生各種各樣的數(shù)據(jù),然后時時刻刻都在被別人使用著、分析著…… 然而你自己卻全然沒有數(shù)據(jù)分析能力,甚至不知道這事很重要,是不是感覺很可怕?你看看周邊那么多人,有多大的比例想過這事?反正那些天天看機器算法生成的信息流的人好像就是全然不在意自己正在被支配……

怎么辦?學(xué)唄,學(xué)點編程罷 —— 巧了,這還真是個正常人都能學(xué)會的技能。

為便于上手學(xué)習(xí),在開始前再做兩點補充

  1. 安裝開發(fā)工具

眾所周知,在數(shù)據(jù)分析相關(guān)的編程語言中,有三個重中之重:Python、R、Julia 俗稱數(shù)據(jù)科學(xué)三劍客。如果有一個工具能集中編寫這三者的代碼,為大家省去各種安裝開發(fā)工具的時間,那簡直太好不過了,于是jupyter應(yīng)運而生,作為“工具的工具”而備受數(shù)據(jù)科學(xué)從業(yè)者的青睞!

Jupyter的名字就很好地詮釋了這一發(fā)集大成的思路,它是 Julia、Python、R 語言的組合,拼寫相近于木星(Jupiter),而且現(xiàn)在支持的語言也遠超這三種了。

所以需要讀者自行下載安裝好Anaconda提供的Jupyter notebook或者jupyter lab,以便于更好地運行本文相關(guān)代碼。安裝好后可以直接運行Python,因為里面已經(jīng)幫你集成好了環(huán)境。

  1. 文章閱讀指南

雖然筆者力求極簡,帶你入門Python,但你依然有可能遇到問題,因為編程語言的知識體系有一個特點,知識點之間不是線性的從前往后,而是呈網(wǎng)狀的,經(jīng)常出現(xiàn)前置引用。所以很多時候可能不經(jīng)意間就用的是后面的知識點,這是不可避免的,遇到這種情況,注定要反復(fù)閱讀若干遍,之所以取名叫極簡入門,這一部分的目標(biāo)就在與并不是讓你立馬學(xué)會就去寫代碼,而是讓你脫盲……

好了,接下來,與大家一起開始我們的Python旋風(fēng)之旅,沿用之前《極簡統(tǒng)計學(xué)入門》SQL數(shù)據(jù)分析極簡入門》的“MVP”思路,用三節(jié)的內(nèi)容梳理一下Python數(shù)據(jù)分析的核心內(nèi)容。整個系列框架如下:

  • 第1節(jié) Python基礎(chǔ)知識

  • 第2節(jié) Pandas基礎(chǔ)知識

    • 1-Pandas 簡介
    • 2-Pandas 數(shù)據(jù)類型-
    • 3-Pandas 數(shù)據(jù)選取-
    • 4-Pandas 條件查詢-
    • 5-Pandas 數(shù)據(jù)運算-
    • 6-Pandas 合并拼接-
    • 7-Pandas 分組聚合-
    • 8-Pandas 重塑透視-
  • 第3節(jié) Pandas基礎(chǔ)知識

    • 9-Pandas 文本數(shù)據(jù)
    • 10-Pandas 時間數(shù)據(jù)
    • 11-Pandas 窗口數(shù)據(jù)
    • 12-Pandas 數(shù)據(jù)讀寫
    • 13-Pandas 表格樣式
    • 14-Pandas 數(shù)據(jù)可視化

如果你接觸過不同編程語言就會發(fā)現(xiàn),任何編程語言的學(xué)習(xí),都離不開3個最基本的核心要素,數(shù)據(jù)類型、流程控制、函數(shù)

數(shù)據(jù)類型是用來描述數(shù)據(jù)的性質(zhì)和特征的,它決定了數(shù)據(jù)在計算和處理過程中的行為和規(guī)則。常見的數(shù)據(jù)類型包括整數(shù)、浮點數(shù)、字符串、日期等。簡而言之,就是你將要操作的東西具有什么樣的特點。

流程控制是指通過條件判斷和循環(huán)等方式,控制程序按照一定的順序執(zhí)行不同的操作步驟。它決定了數(shù)據(jù)的處理流程,包括判斷條件、循環(huán)次數(shù)、分支選擇等。簡而言之,就是你要操作這個東西的基本流程是什么

函數(shù)是一段預(yù)先定義好的代碼,用于執(zhí)行特定的操作或計算。它接受輸入?yún)?shù),并返回一個結(jié)果。函數(shù)可以用來對數(shù)據(jù)進行各種計算、轉(zhuǎn)換、篩選等操作,以滿足特定的需求。簡而言之,就是你要怎么樣才能可復(fù)用地操作這一類東西

我們來看第一個核心要素:數(shù)據(jù)類型

數(shù)據(jù)類型

Python中的數(shù)據(jù)類型有很多,如果我們按照大類來分,可以分為三大數(shù)據(jù)類型

① 數(shù)字型

整型 int

a = 2022                  # 把2022賦值給a
type(a)                   # 查看數(shù)據(jù)類型:<class 'int'>
int

浮點型 float

b = -21.9
type(b)                   數(shù)據(jù)類型:<class 'float'>
float

復(fù)數(shù)型 complex

c = 11 + 36j
type(c)                   數(shù)據(jù)類型:<class 'complex'>
complex

布爾型 bool

d = True
type(d)                   數(shù)據(jù)類型:<class 'bool'>
bool

② 字符串型

str_a = "Certified_Data_Analyst"            # 創(chuàng)建字符串:"Certified_Data_Analyst"
type(str_a)                                 數(shù)據(jù)類型:<class 'str'>
str
len(str_a)                 # 字符串長度:
22
str_a[0]                   # 輸出字符串第1個字符
'C'
str_a[10]                  # 輸出字符串第11個字符
'D'
str_a[15]                  # 輸出字符串第16個字符
'A'
str_a[:9]                   # 輸出字符串第1到9個字符
'Certified'
str_a[10:14]                # 輸出從第11到14個的字符
'Data'
str_a[15:]                  # 輸出從第15個后的所有字符
'Analyst'
str_a * 2                   # 輸出字符串2次
'Certified_Data_AnalystCertified_Data_Analyst'
str_a+"_Exam"               # 連接字符串 
'Certified_Data_Analyst_Exam'
str_a.upper()               # 轉(zhuǎn)換為大寫
'CERTIFIED_DATA_ANALYST'
str_a.lower()               # 轉(zhuǎn)換為小寫
'certified_data_analyst'
int("1024")                 # 字符串轉(zhuǎn)數(shù)字:1024
1024
str(3.14)                   # 數(shù)字轉(zhuǎn)字符串:'3.14'
'3.14'
"Certified_Data_Analyst".split("_")        # 分隔符拆分字符串
['Certified', 'Data', 'Analyst']
"Certified_Data_Analyst".replace("_"" "# 替換字符串"_"為" "
'Certified Data Analyst'
"7".zfill(3)              # 左邊補0
'007'

③ 容器型

可以容納多個元素的的對象叫做容器,這個概念比較抽象,你可以這么理解,容器用來存放不同的元素,根據(jù)存放特點的不同,常見的容器有以下幾種:list(列表)、tuple(元組)、dict(字典)、set(集合)

列表 list()

用中括號[]可以創(chuàng)建一個list變量

[2,3,5,7]
[2, 3, 5, 7]

元組 tuple()

用圓括號()可以創(chuàng)建一個tuple變量

(2,3,5,7)
(2, 3, 5, 7)

集合 set()

用花括號{}可以創(chuàng)建一個集合變量

{2,3,5,7}
{2, 3, 5, 7}

字典 dict()

用花括號{}和冒號:,可以創(chuàng)建一個字典變量

{'a':2,'b':3,'c':5,'d':7}
{'a': 2, 'b': 3, 'c': 5, 'd': 7}

流程控制

分支

舉例說明,我們給x賦值-10,然后通過一個分支做判斷,當(dāng)x大于零時候輸出"x是正數(shù)",當(dāng)x小于零的時候輸出"x是負數(shù)",其他情況下輸出"x是零"

x = -10

if x > 0:
    print("x是正數(shù)")
elif x < 0:
    print("x是負數(shù)")
else:
    print("x是零")
x是負數(shù)

循環(huán)

舉例說明for循環(huán),用for循環(huán)來迭代從1到5的數(shù)字,并將每個數(shù)字打印出來

# for循環(huán)
for i in range(16):
    print(i)
1
2
3
4
5

首先,range(1, 6)函數(shù)生成一個序列,從1到5(不包括6)。

然后,for循環(huán)使用變量i來迭代這個序列中的每個元素。

在每次迭代中,print(i)語句將當(dāng)前的i值打印出來。

再舉例說明while循環(huán):用while循環(huán)迭代從1到10的數(shù)字,并將每個數(shù)字打印出來

# while循環(huán)
i = 1
while i <= 10:
    print(i)
    i += 1
    if i == 6:
        break
1
20
3
4
5

首先,將i初始化為1。

然后,while循環(huán)將在i小于或等于10時執(zhí)行。在每次循環(huán)中,print(i)語句將當(dāng)前的i值打印出來。

接下來,i += 1語句將i的值遞增。在每次循環(huán)中,if i == 6: break語句將檢查i的值是否等于6。如果是,則使用break語句終止循環(huán)。

函數(shù)

Python提供了許多常用函數(shù),這部分內(nèi)容數(shù)據(jù)分析最基礎(chǔ)的內(nèi)容,有部分函數(shù)在Python內(nèi)置庫就已經(jīng)自帶

常用函數(shù):

abs(x)           # 返回x的絕對值。

round(x)         # 返回最接近x的整數(shù)。如果有兩個整數(shù)與x距離相等,將返回偶數(shù)。

pow(x, y)        # 返回x的y次方。

sqrt(x)          # 返回x的算術(shù)平方根。

max(x1, x2, ...) # 返回一組數(shù)中的最大值。

min(x1, x2, ...) # 返回一組數(shù)中的最小值。

sum([x1,x2,...]) # 返回可迭代對象中所有元素的和。

也有一些是來自于math庫,我們需要用from math import *來引入math庫,然后才能調(diào)用里面的函數(shù)。這個過程就好比你要使用一個工具箱里面的工具,必須先找到工具箱。通過使用這些數(shù)學(xué)函數(shù),可以進行各種數(shù)學(xué)計算和數(shù)據(jù)處理操作。

常用數(shù)學(xué)函數(shù)

# 數(shù)學(xué)運算函數(shù)
from math import *

sqrt(x)                              #x的算術(shù)平方根

log(x)                               #自然對數(shù)

log2(x)                              #以2為底的常用對數(shù)

log10(x)                             #以10為底的常用對數(shù)

exp(x)                               #x的e次冪

modf(x)                              #返回x的?數(shù)部分和整數(shù)部分

floor(x)                             #對x向下取值整

ceil(x)                              #對x向上取整

divmod(x,y)                          #接受兩個數(shù)字,返回商和余數(shù)的元組(x//y , x%y)# 三角函數(shù)

sin(x)                               #x的正弦值

cos(x)                               #x的余弦值

tan(x)                               #x的正切值

asin(x)                              #x的反正弦值

acos(x)                              #x的反余弦值

atan(x)                              #x的反正切值# 排列組合函數(shù)

# from itertools import *
product()                            #序列中的元素進行排列, 相當(dāng)于使用嵌套循環(huán)組合
permutations(p[, r])                 #從序列p中取出r個元素的組成全排列
combinations(p, r)                   #從序列p中取出r個元素組成全組合,元素不允許重復(fù)
combinations_with_replacement(p, r)  #從序列p中取出r個元素組成全組合,允許重復(fù)# 簡單統(tǒng)計函數(shù) pandas
describe()                           #描述性統(tǒng)計
count()                              #非空觀測數(shù)量
sum()                                #所有值之和
mean()                               #平均值
median()                             #中位數(shù)
mode()                               #一組數(shù)的眾數(shù)
std()                                #標(biāo)準(zhǔn)差
var()                                #方差
min()                                #所有值中的最小值
max()                                #所有值中的最大值
abs()                                #絕對值
prod()                               #數(shù)組元素的乘積
corr()                               #相關(guān)系數(shù)矩陣
cov()                                #協(xié)方差矩陣# 排序函數(shù)
sort()                                #沒有返回值,會對列表進行原地排序
sorted()                             #需要用一個變量進行接收,不會修改原有列表# 集合運算符號和函數(shù)
&                                    #交集
|                                    #并集
-                                    #差集
^                                    #異或集(不相交的部分)
intersection()                       #交集
union()                              #并集
difference()                         #補集
symmetric_difference()               #異或集(不相交的部分)
isdisjoint()                         #兩集合有無相同元素
issubset()                           #是不是子集
issuperset()                         #是不是超集# 缺失值處理(Pandas)
np.nan (Not a Number)                #空值
None                                 #缺失值
pd.NaT                               #時間格式的空值# 判斷缺失值
isnull()/isna()                      #斷SeriesDataFrame中是否包含空值
notnull()                            #與isnull()結(jié)果互為取反
isin()                               #判斷SeriesDataFrame中是否包含某些值
dropna()                             #刪除SeriesDataFrame中的空值
fillna()                             #填充SeriesDataFrame中的空值
ffill()/pad()                        #用缺失值的前一個值填充
bfill()/backfill()                   #用缺失值的后一個值填充
replace()                            #替換SeriesDataFrame中的指定值

自定義函數(shù)

自定義函數(shù)是一種在Python中自行定義的可重復(fù)使用代碼塊的方法。通過定義自己的函數(shù),可以將一系列操作放在一個函數(shù)中,并在需要時多次調(diào)用該函數(shù)。

舉例說明,如何創(chuàng)建和調(diào)用一個自定義函數(shù):

def linear(x):
    y = 2*x + 4
    return y

在上面的例子中,我們用def linear(x): 定義了一個名為linear的函數(shù),該函數(shù)接收一個參數(shù)x。

然后函數(shù)體內(nèi)計算了一個y值,它是x的兩倍加上4。

這樣,我們調(diào)用linea函數(shù)的時候,并傳入一個參數(shù)x時,函數(shù)將返回計算得到的y值。例如,如果我們調(diào)用linear(3),函數(shù)將返回10,因為2*3 + 4 = 10

可以根據(jù)具體的需求來編寫自定義函數(shù),并在程序中調(diào)用它們。

再看一個稍微復(fù)雜一點的例子(PS:建議初學(xué)者先跳過這個例子)

# 斐波那契數(shù)列(通過迭代方法實現(xiàn))
def fib(n):
    n1=1;n2=1;n3=1
    if n<1:
        print('輸入有誤!')
        return 0
    else:
        while (n-2) > 0 :
            n3 = n2 + n1
            n1 = n2
            n2 = n3
            n -= 1
        return n3
result = fib(35)
result 
9227465
# 斐波那契數(shù)列(通過遞歸方法實現(xiàn))
def fib(n):
    if n < 1:
        print('輸入有誤!')
        return -1
    elif n == 1 or  n == 2:
        return 1
    else:
        return fib(n-1) + fib(n-2)
result = fib(35)
result
9227465
# 斐波那契數(shù)列(通過矩陣方法實現(xiàn))
import numpy  as np
def dotx(a,n):
    for i in range(1,n+1):
        if i == 1:
            b = a
        else :
            b = np.dot(a,b)
    return b


def fib(n):
    a = np.array([[1,1],[1,0]])
    r = dotx(a,n)
    return r[0,1]
result = fib(35)
result
9227465

下一節(jié) 《第2節(jié) Pandas簡介》

這里分享一個你一定用得到的小程序——CDA數(shù)據(jù)分析師考試小程序。 它是專為CDA數(shù)據(jù)分析認證考試報考打造的一款小程序??梢詭湍憧焖賵竺荚嚒⒉槌煽?、查證書、查積分,通過該小程序,考生可以享受更便捷的服務(wù)。 掃碼加入CDA小程序,與圈內(nèi)考生一同學(xué)習(xí)、交流、進步!

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }