詳解如何使用numpy提高Python數(shù)據(jù)分析效率
NumPy是Python語言的一個第三方庫,其支持大量高維度數(shù)組與矩陣運(yùn)算。
作為python科學(xué)計算領(lǐng)域的三劍客之一,numpy在數(shù)據(jù)分析處理方面有著獨特的魅力!

numpy模塊的出現(xiàn)更多的是在數(shù)組處理的操作上面,并且支持和python常用的數(shù)據(jù)結(jié)構(gòu)list之間的相互轉(zhuǎn)換操作。
1、數(shù)組初始化
數(shù)組初始化即創(chuàng)建數(shù)組,numpy提供了相當(dāng)多的創(chuàng)建不同結(jié)構(gòu)的數(shù)組的方式,合理的利用這些數(shù)據(jù)初始化的操作能夠讓我們的開發(fā)事半功倍。
numpy目前最多可以支持三維數(shù)組的創(chuàng)建,下面我們直接通過實例來說明其使用技巧。
#?導(dǎo)入數(shù)據(jù)處理的numpy模塊
import?numpy?as?np
#?通過python列表list創(chuàng)建numpy一維數(shù)組
array_?=?np.array(['a',?'b',?'c'])
#?控制臺打印一維數(shù)組
print(array_)
#?['a'?'b'?'c']
#?通過python列表list創(chuàng)建numpy二維數(shù)組
array_?=?np.array([('a',?'b',?'c'),?(1,?2,?3)])
#?控制臺打印二維數(shù)組
print(array_)
#?[['a'?'b'?'c']
#??['1'?'2'?'3']]
#?創(chuàng)建四行五列的二維數(shù)組,并填充值為1,可通過full函數(shù)創(chuàng)建任意的二維數(shù)組
array_?=?np.full((5,?6),?1)
#?控制臺打印任意的行、列的二維數(shù)組
print(array_)
#?[[1?1?1?1?1?1]
#??[1?1?1?1?1?1]
#??[1?1?1?1?1?1]
#??[1?1?1?1?1?1]
#??[1?1?1?1?1?1]]
#?創(chuàng)建任意行、列的二維數(shù)組,并且填充值為隨機(jī)數(shù)
array_?=?np.random.rand(3,?4)
#?控制臺打印隨機(jī)數(shù)的二維數(shù)組
print(array_)
#?[[0.94372258?0.66743021?0.47003813?0.44912263]
#??[0.71435389?0.47909147?0.52322176?0.32445311]
#??[0.9843635??0.14054129?0.10611754?0.45922036]]
上述便是常用的numpy模塊關(guān)于數(shù)組的初始化方式,靈活應(yīng)用幾種array數(shù)組的創(chuàng)建方式能夠解決在業(yè)務(wù)開發(fā)過程中的很多問題。
2、數(shù)組元素計算
除了numpy的數(shù)組的初始化方式,關(guān)于numpy數(shù)據(jù)元素的計算是開發(fā)過程中常常會使用的計算方式。
numpy模塊提供的很多計算函數(shù)不僅簡便,而且執(zhí)行效率更高。有時候比我們自己寫的函數(shù)運(yùn)行速度甚至高出幾倍不止。
下面就來看看在日常的數(shù)據(jù)處理過程中常用的幾種數(shù)據(jù)處理函數(shù)的使用過程。
#?array函數(shù)初始化多維度數(shù)組 array_?=?np.array([(1,?2), ???????????????????(3,?4),?(5,?6)]) #?sum函數(shù)計算多維度數(shù)組每一列的和 sum_?=?np.sum(array_) #?打印數(shù)組計算結(jié)果 print(sum_) #?21 #?mean函數(shù)計算多維度數(shù)組的平均值 mean_?=?np.mean(array_) #?打印數(shù)組計算結(jié)果 print(mean_) #?3.5 #?tile函數(shù)使元數(shù)組變成多行多列的形式,相當(dāng)于復(fù)制的效果 tile_?=?np.tile(array_,?(3,?4)) #?打印計算結(jié)果 print(tile_) #?[[1?2?1?2?1?2?1?2] #??[3?4?3?4?3?4?3?4] #??[5?6?5?6?5?6?5?6] #??[1?2?1?2?1?2?1?2] #??[3?4?3?4?3?4?3?4] #??[5?6?5?6?5?6?5?6] #??[1?2?1?2?1?2?1?2] #??[3?4?3?4?3?4?3?4] #??[5?6?5?6?5?6?5?6]] #?初始化二維數(shù)組 array_?=?np.array([[3,?6,?4,?11], ???????????????????[5,?10,?1,?3]]) #?argsort函數(shù)完成對數(shù)組的排序操作 argsort_?=?array_.argsort() #?打印計算結(jié)果 print(argsort_) #?[[0?2?1?3] #??[2?3?0?1]] #?argsort函數(shù)完成對數(shù)組列值的排序操作 argsort_?=?array_.argsort(axis=0) #?打印計算結(jié)果 print(argsort_) #?[[0?0?1?1] #??[1?1?0?0]]
注意:上述的排序結(jié)果返回的是源數(shù)組的排序后的下標(biāo)。
除了上述的numpy數(shù)組計算的基本操作,最常用的就是下面的numpy數(shù)組的加、減、乘、除計算。
通過數(shù)組的加、減、乘、除計算能夠滿足我們在業(yè)務(wù)開發(fā)過程中的絕大多數(shù)的計算操作。
#?初始化兩個數(shù)組a_、b_分別用于下面的邏輯計算 a_?=?np.array([1,?2,?3,?4]) b_?=?np.array([5,?6,?7,?8]) #?計算兩個一維數(shù)組的和 result_?=?a_?+?b_ #?打印計算結(jié)果 print(result_) #?[?6??8?10?12] #?計算兩個一維數(shù)組的差 result_?=?a_?-?b_ #?打印計算結(jié)果 print(result_) #?[-4?-4?-4?-4] #?計算兩個一維數(shù)組的乘積 result_?=?a_?*?b_ #?打印計算結(jié)果 print(result_) #?[?5?12?21?32] #?計算兩個一維數(shù)組的商 result_?=?a_?/?b_ #?打印計算結(jié)果 print(result_) #?[0.2????????0.33333333?0.42857143?0.5???????]
除了上述的一維數(shù)組的相關(guān)計算,同時numpy還可支持二維矩陣的邏輯計算。
3、數(shù)組元素提取
數(shù)組元素的提取其實主要還是對數(shù)組的下標(biāo)索引的相關(guān)操作。
numpy提供的多維數(shù)組同樣能夠使用對應(yīng)的索引位置提取出相應(yīng)的值。
#?初始化二維數(shù)組 array_?=?np.array([[3,?6,?4,?11], ???????????????????[5,?10,?1,?3]]) #?提取第二行、第四列的值 value_?=?array_[1,?3] #?打印計算結(jié)果 print(value_) #?3 #?提取出倒數(shù)第二行、第三列到第四列之間的二維數(shù)組 value_?=?array_[-2:,?2:3] #?打印計算結(jié)果 print(value_) #?[[4] #??[1]] #?獲取數(shù)組中大于、小于、等于某個數(shù)值的結(jié)果 result_?=?array_?>=?10 #?打印計算結(jié)果 print(result_) #?[[False?False?False??True] #??[False??True?False?False]] #?返回的數(shù)組中,所在位置為True的數(shù)值就是符合邏輯計算的數(shù)值。
多維數(shù)組的索引的數(shù)值提取操作,能夠輔助我們完成更加復(fù)雜的數(shù)據(jù)處理操作。
到此這篇關(guān)于詳解如何使用numpy提高Python數(shù)據(jù)分析效率的文章就介紹到這了,更多相關(guān)Python numpy提高數(shù)據(jù)分析效率內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python多進(jìn)程實現(xiàn)數(shù)據(jù)共享的示例代碼
本文介紹了Python中多進(jìn)程實現(xiàn)數(shù)據(jù)共享的方法,包括使用multiprocessing模塊和manager模塊這兩種方法,具有一定的參考價值,感興趣的可以了解一下2025-01-01
Python?中?Pandas?文件操作和讀取?CSV?參數(shù)詳解
CSV?又稱逗號分隔值文件,是一種簡單的文件格式,以特定的結(jié)構(gòu)來排列表格數(shù)據(jù),這篇文章主要介紹了Python?之?Pandas?文件操作和讀取?CSV?參數(shù)詳解,需要的朋友可以參考下2023-03-03

