-快速高效的多維數組對象ndarray。
-用於對數組執行元素級計算以及直接對數組執行數學運算的函數
-用於讀寫硬盤上基於數組的數據集的工具
-線性代數運算、傅立葉變換、以及隨機數的生成
-成熟的c API,用於python插件和原生的c c++ fortran代碼訪問numpy的數據結構和計算工具python
-功能:爲一款適用於金融和商業分析的工具
-有標籤化的數據結構,支持自動或清晰的數據對齊,這能夠防止因爲數據不對齊和處理來源不一樣的索引,不一樣的數據形成的錯誤。
-集成時間序列功能
-相同的數據結構用於處理時間序列數據和非時間序列數據
-保存元數據的算數運算和壓縮
-靈活處理缺失的數據
-合併和其餘流行的數據庫(例如基於sql的數據庫)的關係操做c++
-Scipy:是一組專門解決科學計算中各類標準問題域的包的集合,包括下列包:
-Scipy.integrate:數值積分例程和微分方程求解器。
-Scipy.linalg:擴展了由numpy.linalg提供的線性代數例程和矩陣分解功能。
-Scipy.optimize:函數優化器(最小化器)以及根查找算法
-Scipy.signal:信號處理工具
-Scipy.sparse:稀疏矩陣和稀疏線性系統求解器。
-Scipy.stats:標準連續和離散機率分佈(如密度分佈、採樣器、連續分佈函數等)、各類統計檢驗方法以及更好的描述性統計法算法
-numpy和scipy結合使用,便造成了一盒至關完備和成熟的計算平臺,能夠處理所中傳統的科學計算的問題sql
-分類:svm,近鄰,隨機森林,邏輯迴歸等等
-迴歸:lasso,嶺迴歸等等
-聚類:k-均值,譜聚類等等
-降維:pca、特徵選擇,矩陣分解等等
-選型:網格搜索,交叉驗證、度量。
-預處理:特徵提取,標準化。shell
-迴歸模型:線性迴歸,廣義線性模型,健壯線性模型,線性混合效應模型等等。
-方差分析anova
-時間序列分析:ar arma arima var 和其餘模型
-非參數方法:核密度估計,核迴歸。
-統計模型結果可視化。數據庫
b = [1,2,3] b?
-使用??會顯示函數的源碼
-?還有一個用途,就是搜索Ipython的命名空間。字符和通配符結合,能夠匹配全部的名字。數組
%run shili.py
-這段腳本運行在空的命名空間,所以結果和普通的運行方式python script.py相同,文件中全部定義的變量(import,函數和全局變量,除非報錯了)均可以在ipython命令中隨後訪問。
*筆記:若是向讓一個腳本訪問ipython中已經定義過的變量,可使用%run -i,在jupyter中,你也可使用%load,它將腳本倒入到一個代碼格子中:session
-中斷運行中代碼:按ctrl-c數據結構
%paste#%paste能夠直接運行剪切板中的代碼 %cpaste#%cpaste有相似的功能,可是會給出一條提示
一些經常使用的ipython魔術命令:
dom
-在IPython shell中,運行%matplotlib能夠進行設置,能夠建立多個繪圖窗口,而不會干擾控制檯session:
%matplotlib Using matplotlib backend: Qt4Agg
-在jupyter中命令有所不一樣:
%matplotlib inline import matplotlib,pyplot as plt plt.plot(np.random.randn(50).cumsum())
val = 「dhfhfff」 val
-能夠用encode將這個unicode字符串編碼爲utf-8:
val_utf8 = val.encode(‘utf8’)
-若是你知道一個字節對象的unicode編碼,用decode方法能夠解碼:
val_utf8.decode(‘utf8’)
-工做中碰到的文件不少都是字節對象,盲目的將全部數據編碼爲unicode是不可取的。雖然用的很少,可是你能夠在字節文本的前面加上一個b:
a = b‘this is shuju’ b‘this is shuju’ decoded = a.decode(’utf8’) ‘this is shuju’
from date time import date time, date,time dt = datetime(20,11,10,29,20,30,21) print(day) print(minute)
-根據datetime實例,你能夠用date和time提取各自的對象:
print(dt.data)#輸出dt.date()爲(20,11,10,29) print(dt.time)#輸出dt.time爲(20,30,21) #strftime方法能夠將detetime格式化爲字符串 #strptime能夠將字符串轉換爲datetime對象
-當你聚類活着對時間序列進行分組,替換datetime的time字段有時候會頗有用,例如,用0替換分和秒:
dt.replace(minute=0,second=0) print(datatime.datatime)#輸出datetime.datetime爲(2011,10,29,20,0)
-由於datetime是不可變類型上面的方法會產生一個新的對象。兩個datetime對象的差會產生一個datetime類型,結果(17,7179)指明瞭將17天7179秒的編碼方式。
-能夠用sort將一個列表進行原地排序(不建立新的對象)
-sort有一些可選參數,例如sort(key=len)能夠按照字符串的長度對字符串進行排序
-sorted函數———稍後學習
-bisect模塊支持二分查詢,和向已經排序的列表中插入值。bisect.bisect能夠找到插入值後先不插入,而是返回能夠插入的位置下標。保持排序的位置。bisect.insort是向能夠插入的這個位置插入值:
*注意:bisect模塊不會檢查列表是否已經排了序,所以,對沒有排序的列表進行操做,不會報錯,可是結果不必定正確
-切片還能夠被序列賦值:
list = 【1,2,3,4,5,6】 list[3:4]= [6,3]#會將列表list中位置下標爲3的元素換成列表[6,3]也就是說,序列賦值以後的list比原來的列表多了一個元素。
-開始位置的下標和結束位置的下表均可以省略,此時,默認開頭和結尾———負數代表從後向前切片 -還能夠設置切片的步長:list【1:2:2】的意思是,切下來list列表中下標爲1到2的內容,切片方法爲隔一個取一個。當第三個參數爲-1的話,能夠將原來的列表顛倒過來。