2020-03-17
Python
1. Python不需要預(yù)定義數(shù)據(jù)類(lèi)型理郑,直接賦值即可,并且在賦值之后也可以修改寂殉。
原因:Python的底層是指針囚巴,可以隨便改變類(lèi)型,并不直接存儲(chǔ)數(shù)據(jù)友扰,導(dǎo)致變量?jī)?nèi)存的開(kāi)銷(xiāo)增大彤叉,變量的運(yùn)算效率下降。
缺點(diǎn):在面對(duì)處理大量數(shù)據(jù)的應(yīng)用場(chǎng)景下焕檬,數(shù)據(jù)記錄的行數(shù)與列數(shù)決定了運(yùn)算單元的數(shù)量,運(yùn)算的頻繁程度也會(huì)指數(shù)增長(zhǎng)澳泵。
2. Numpy解決了原生Python的問(wèn)題实愚。
Numpy
一、變量角度
1. numpy的數(shù)組(array)類(lèi)似于python中的list兔辅。
2. array與list比較
? 2.1 array的元素類(lèi)型必須一致腊敲,list可以不一致。
? 2.2 array類(lèi)型的轉(zhuǎn)化順序维苔。從左到右正向轉(zhuǎn)換順序:整數(shù)--浮點(diǎn)數(shù)--布爾值--字符串碰辅。
2.3 數(shù)組array對(duì)元素的定義會(huì)更加嚴(yán)格
numpy存放簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),如:一維數(shù)組介时、二維數(shù)組没宾。
numpy存放的數(shù)組,運(yùn)算單元的內(nèi)存占用以及運(yùn)算效率會(huì)得到顯著提升沸柔。
---------------------------------------
二循衰、程序執(zhí)行角度
1. python是解釋性語(yǔ)言。在程序執(zhí)行的過(guò)程中褐澎,是翻譯一行執(zhí)行一行会钝。(效率低下)
c語(yǔ)言,把程序整體變成機(jī)器語(yǔ)言工三,在整體執(zhí)行迁酸。
2. numpy解決效率低下的問(wèn)題先鱼。
提升循環(huán)效率的方法:用矩陣(數(shù)組)的運(yùn)算函數(shù)來(lái)替代python的循環(huán)。
numpy的矩陣運(yùn)算函數(shù)奸鬓,底層都是用c語(yǔ)言或者fortran語(yǔ)言寫(xiě)的焙畔,解決了耗時(shí)的部分。