自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python數(shù)據(jù)分析Numpy庫常用函數(shù)詳解,提到循環(huán)就該想到的庫

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

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

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

本文整理了該庫的一些常用函數(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)先級進(jìn)行類型轉(zhuǎn)變。例如,在一個整數(shù)數(shù)組中插入字符串,就會將全部元素轉(zhuǎn)成字符串類型。

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

Numpy常用函數(shù)分類

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

Python數(shù)據(jù)分析Numpy庫常用函數(shù)詳解,提到循環(huán)就該想到的庫

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

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

基礎(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)為列方向,默認(rè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值,默認(rèn)包含 
  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表示按行還是按列,默認(rèn)按行 
  5. arr.T  
  6. #數(shù)組轉(zhuǎn)置 
  7. arr.transpose() 
  8. #數(shù)組轉(zhuǎn)置 
  9. np.append(arr,values,axis=None)  
  10. #axis控制返回什么類型,默認(rèn)返回的是拼接后的一維數(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. #計算標(biāo)準(zhǔn)差  
  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ù)在生成練習(xí)數(shù)據(jù)等方面是非常有幫助的,可以重點掌握一下。

  1. np.random.rand(d0,d1,d2,……)  
  2. #返回輸入維度的隨機數(shù),隨機數(shù)服從[0, 1)區(qū)間的均勻分布  
  3. np.random.randn(d0,d1,d2,……) 
  4. #返回輸入維度的標(biāo)準(zhǔn)正態(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é)果一樣 

 

 

 

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2023-11-23 08:58:45

PythonNumPy

2023-11-24 08:47:36

ScipyPython

2017-04-11 09:08:02

數(shù)據(jù)分析Python

2023-02-23 19:21:51

NumPyPython數(shù)組

2024-06-06 09:08:14

NumPyPython數(shù)據(jù)分析

2020-12-08 10:27:04

數(shù)據(jù)分析技術(shù)IT

2024-01-30 00:36:41

Python機器學(xué)習(xí)

2024-02-20 14:25:39

Python數(shù)據(jù)分析

2024-10-15 10:40:09

2020-04-27 09:25:16

Python爬蟲庫數(shù)據(jù)科學(xué)

2023-02-24 14:40:24

ndarrayPython數(shù)據(jù)分析

2025-04-27 08:35:00

Python數(shù)據(jù)分析編程

2024-10-25 08:30:55

NumPyPandasMatplotlib

2023-11-21 09:11:31

2023-01-28 10:09:00

Pandas數(shù)據(jù)分析Python

2024-01-12 10:06:40

Python工具

2022-03-25 09:04:01

Mysql數(shù)據(jù)庫

2022-03-29 10:55:10

Mysql數(shù)據(jù)庫

2023-05-15 12:56:32

運營數(shù)據(jù)分析

2018-04-20 12:12:18

數(shù)據(jù)分析可視化數(shù)據(jù)挖掘
點贊
收藏

51CTO技術(shù)棧公眾號