日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python數(shù)據(jù)分析Numpy庫常用函數(shù)詳解,提到循環(huán)就該想到的庫

Python進行數(shù)據(jù)分析的核心庫肯定是Pandas,該庫差不多可以解決結(jié)構(gòu)化數(shù)據(jù)的絕大部分處理需求。在《Python數(shù)據(jù)分析常用函數(shù)及參數(shù)詳解,可以留著以備不時之需 》一文中也已經(jīng)對該庫的常用函數(shù)進行了詳細介紹。

但是Pandas是構(gòu)建在Numpy的基礎(chǔ)之上的,它的矢量化運算功能在處理數(shù)組和矩陣上具有著非常大的優(yōu)勢。雖然普通的數(shù)據(jù)分析任務可能很少用到Numpy庫,但一旦你具有循環(huán)需求或是要處理數(shù)值型數(shù)據(jù)時,你應該首先想到該庫。

本文整理了該庫的一些常用函數(shù)和基礎(chǔ)知識,整理不易,希望覺得還不錯的朋友可以不吝給個贊。

基礎(chǔ)介紹

在介紹函數(shù)之前先介紹下Numpy庫的基本情況,該庫最重要的特點就是其ndarray對象,這個對象可以理解成線性代數(shù)里面的數(shù)組,每個數(shù)組有維度和類型等屬性。

維度

直觀地判斷數(shù)組對象有幾個維度可通過判斷其包含在幾層[]中,一層[]即為一維。其中,一維數(shù)組可看成是向量,二維數(shù)組可看成是有行和列的數(shù)據(jù),三維數(shù)組可看成是有頁,且每頁中有行和列的數(shù)據(jù),至于更高維度就只能意會了。

類型

數(shù)組并不是只能存數(shù)值型數(shù)據(jù),是也可以存字符串的,但它要求元素類型必須一致,不一致時會按照str > float > int的優(yōu)先級進行類型轉(zhuǎn)變。例如,在一個整數(shù)數(shù)組中插入字符串,就會將全部元素轉(zhuǎn)成字符串類型。

另外說一下廣播機制。通俗地理解廣播機制就是當對不同形狀的數(shù)組進行算術(shù)運算時,廣播機制會自動將兩個數(shù)組補全為相同形狀的數(shù)組。但需要具備以下前提條件之一:兩個數(shù)組維度數(shù)不等時,二者從末尾開始算起的維度的軸長度相等;兩個數(shù)組維度數(shù)相等時,其中一方的有一個維度的長度為1。關(guān)于這一點的理解最好是多加練習。

Numpy常用函數(shù)分類

為了更好地理解該庫的函數(shù),本文將常用的函數(shù)按照下面方式進行分類。

其中基礎(chǔ)函數(shù)包含對象創(chuàng)建、屬性查看、切片索引、形狀變換等小類;random模塊就是一些常用的隨機函數(shù);char模塊主要是用來處理字符數(shù)組類,也就是數(shù)組元素是字符串類型的數(shù)據(jù);Matlib是Numpy中的矩陣庫,矩陣其實是一種特殊的數(shù)組,但它必須是二維的;linglg庫是屬于線性代數(shù)的函數(shù)庫。

后三個庫的函數(shù)一般常用于科學計算和圖像識別等領(lǐng)域,在數(shù)據(jù)分析中幾乎用不上,因此本文不做介紹,但大家應該知道有這兩個庫,便于有需求時知道Numpy也具備相應的功能。

基礎(chǔ)函數(shù)

以下均用arr表示數(shù)組,np表示numpy庫

(1)對象創(chuàng)建

 
 
 
  1. array(object, dtype =None,order =None, ndmin =0) 
  2. #order為創(chuàng)建方式,C為行方向,F(xiàn)為列方向,默認為C,ndmin指定生成數(shù)組的最小維度
  3. arange(start=0,stop=4,step=,dtype=) 
  4. #生成一維數(shù)組,不包含stop
  5. linspace(start=,stop=,num=,endpoint=True) 
  6. #生成一維等差數(shù)據(jù),endpoint決定是否包含stop值,默認包含
  7. asarray(object,dtype=None,order=None) 
  8. #將對象轉(zhuǎn)換為數(shù)組
  9. zeros(shape,dtype=float,order='C') 
  10. #生成元素全為0的數(shù)組
  11. ones(shape,dtype=float,order='C') 
  12. #生成元素全為1的數(shù)組
  13. eye(N,dtype=float,order='C') 
  14. #生成對角線元素為1,其余元素為0的N階矩陣

(2)屬性查看

 
 
 
  1. arr.shape 
  2. #數(shù)組的形狀
  3. arr.ndim
  4. #數(shù)組的維度
  5. arr.size
  6. #數(shù)組的長度
  7. arr.dtype
  8. #數(shù)組數(shù)據(jù)類型

(3)切片索引

 
 
 
  1. arr[i] 
  2. #取i行
  3. arr[[i,j]] 
  4. #取i,j行
  5. arr[:,i:j] 
  6. #取i到j(luò)-1列
  7. arr[::-1,::-1] 
  8. #元素反轉(zhuǎn)
  9. np.where(condition,x,y) 
  10. #condition為真的數(shù)組中數(shù)據(jù)賦值x,否則為y

(4)形狀變換

 
 
 
  1. arr.reshape(newshape,order=None)
  2. #newshape為新維度,元組格式
  3. arr.flatten(order='C') 
  4. #將數(shù)組平鋪為一維數(shù)組,order表示按行還是按列,默認按行
  5. arr.T 
  6. #數(shù)組轉(zhuǎn)置
  7. arr.transpose()
  8. #數(shù)組轉(zhuǎn)置
  9. np.append(arr,values,axis=None) 
  10. #axis控制返回什么類型,默認返回的是拼接后的一維數(shù)組
  11. np.concatenate((arr1,arr2,arr3),axis=0) 
  12. #可拼接多個數(shù)組

(5)統(tǒng)計函數(shù)

 
 
 
  1. arr.sum(axis = None) 
  2. #axis為整數(shù)或者元組 
  3. arr.mean(axis = None) 
  4. #計算平均值
  5. arr.std(axis = None)
  6. #計算標準差 
  7. arr.var(axis = None)
  8. #計算方差  
  9. np.average(arr,axis =None, weights =None)
  10. #計算數(shù)組的加權(quán)平均值,weights中為權(quán)重
  11. np.median(arr,axis=None)
  12. # 計算數(shù)組中元素的中位數(shù) 
  13. arr.argmin(axis=None) 
  14. ##返回數(shù)組最小值的位置 
  15. arr.argmax(a)
  16. #返回數(shù)組最大值的位置 
  17. np.dot(arr1,arr2) 
  18. #數(shù)組的點積運算

random庫

隨機函數(shù)在生成練習數(shù)據(jù)等方面是非常有幫助的,可以重點掌握一下。

 
 
 
  1. np.random.rand(d0,d1,d2,……) 
  2. #返回輸入維度的隨機數(shù),隨機數(shù)服從[0, 1)區(qū)間的均勻分布 
  3. np.random.randn(d0,d1,d2,……)
  4. #返回輸入維度的標準正態(tài)分布隨機數(shù) 
  5. np.random.normal(loc=0.0,scale=1.0,size=None)
  6. #返回輸入維度的正態(tài)分布隨機數(shù),可控制正態(tài)分布的期望和方差
  7. np.random.randint(low=,high=,size=None,dtype='l') 
  8. #返回屬于[low,high)區(qū)間的隨機整數(shù),size可為元組 
  9. np.random.seed(s) 
  10. #隨機數(shù)種子,可保證兩次隨機數(shù)生成的結(jié)果一樣

分享文章:Python數(shù)據(jù)分析Numpy庫常用函數(shù)詳解,提到循環(huán)就該想到的庫
文章網(wǎng)址:http://www.5511xx.com/article/dpjioed.html