數(shù)據(jù)科學(xué)學(xué)習(xí)
環(huán)境
python3.8 ipython
而外包:
numpy
pandas
scipy
scikit-learn
scikit-image
pillow
matplotlib
seaborn
jupyter
notebook
line_profiler
memory_profiler
numexpr
pandas-datareader
netcdf4
ipython使用如下:
In [7]: import numpy
In [8]: numpy.__version__
Out[8]: '1.18.1'
- python 的基本類型
首先理解標(biāo)準(zhǔn)的Python實(shí)現(xiàn)是用C編寫的
所以python的動(dòng)態(tài)語言基本類型其實(shí)是對(duì)應(yīng)c中的數(shù)據(jù)結(jié)構(gòu)
例如x =10000幢泼,x不僅是“原始”整數(shù)赂摆。它實(shí)際上是指向包含多個(gè)值的復(fù)合C結(jié)構(gòu)的指針憨募。查看Python 3.4源代碼,我們發(fā)現(xiàn)整數(shù)(長型)類型定義實(shí)際上看起來像這樣(一旦擴(kuò)展了C宏):
struct _longobject {
long ob_refcnt;
PyTypeObject *ob_type;
size_t ob_size;
long ob_digit[1];
};
Python 3.4中的單個(gè)整數(shù)實(shí)際上包含四個(gè)部分:
ob_refcnt伪节,一個(gè)參考計(jì)數(shù),可幫助Python靜默處理內(nèi)存分配和釋放
ob_type,它編碼變量的類型
ob_size馒闷,它指定以下數(shù)據(jù)成員的大小
ob_digit酪捡,包含我們期望Python變量表示的實(shí)際整數(shù)值。
這意味著與使用C之類的編譯語言中的整數(shù)相比纳账,在Python中存儲(chǔ)整數(shù)會(huì)產(chǎn)生一些開銷逛薇,如下圖所示:
圖片.png
這里PyObject_HEAD是結(jié)構(gòu)的一部分,包含引用計(jì)數(shù)疏虫,類型代碼和前面提到的其他部分
注意區(qū)別:C整數(shù)本質(zhì)上是內(nèi)存中某個(gè)位置的標(biāo)簽永罚,其字節(jié)編碼一個(gè)整數(shù)值。 Python整數(shù)是指向內(nèi)存中包含所有Python對(duì)象信息的位置的指針卧秘,包括包含整數(shù)值的字節(jié)呢袱。 Python整數(shù)結(jié)構(gòu)中的這些額外信息使Python能夠如此自由,動(dòng)態(tài)地編碼翅敌。但是羞福,Python類型中的所有這些附加信息都是有代價(jià)的,在結(jié)合了許多這些對(duì)象的結(jié)構(gòu)中蚯涮,這尤其明顯