亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解如何使用numpy提高Python數(shù)據(jù)分析效率

 更新時(shí)間:2023年04月13日 09:37:15   作者:Python 集中營(yíng)  
NumPy是Python語(yǔ)言的一個(gè)第三方庫(kù),其支持大量高維度數(shù)組與矩陣運(yùn)算。本文主要為大家介紹了如何使用numpy提高python數(shù)據(jù)分析效率,需要的可以參考一下

NumPy是Python語(yǔ)言的一個(gè)第三方庫(kù),其支持大量高維度數(shù)組與矩陣運(yùn)算。

作為python科學(xué)計(jì)算領(lǐng)域的三劍客之一,numpy在數(shù)據(jù)分析處理方面有著獨(dú)特的魅力!

圖片

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ù)初始化的操作能夠讓我們的開(kāi)發(fā)事半功倍。

numpy目前最多可以支持三維數(shù)組的創(chuàng)建,下面我們直接通過(guò)實(shí)例來(lái)說(shuō)明其使用技巧。

#?導(dǎo)入數(shù)據(jù)處理的numpy模塊
import?numpy?as?np

#?通過(guò)python列表list創(chuàng)建numpy一維數(shù)組
array_?=?np.array(['a',?'b',?'c'])

#?控制臺(tái)打印一維數(shù)組
print(array_)
#?['a'?'b'?'c']

#?通過(guò)python列表list創(chuàng)建numpy二維數(shù)組
array_?=?np.array([('a',?'b',?'c'),?(1,?2,?3)])

#?控制臺(tái)打印二維數(shù)組
print(array_)
#?[['a'?'b'?'c']
#??['1'?'2'?'3']]

#?創(chuàng)建四行五列的二維數(shù)組,并填充值為1,可通過(guò)full函數(shù)創(chuàng)建任意的二維數(shù)組
array_?=?np.full((5,?6),?1)

#?控制臺(tái)打印任意的行、列的二維數(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)

#?控制臺(tái)打印隨機(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ù)開(kāi)發(fā)過(guò)程中的很多問(wèn)題。

2、數(shù)組元素計(jì)算

除了numpy的數(shù)組的初始化方式,關(guān)于numpy數(shù)據(jù)元素的計(jì)算是開(kāi)發(fā)過(guò)程中常常會(huì)使用的計(jì)算方式。

numpy模塊提供的很多計(jì)算函數(shù)不僅簡(jiǎn)便,而且執(zhí)行效率更高。有時(shí)候比我們自己寫(xiě)的函數(shù)運(yùn)行速度甚至高出幾倍不止。

下面就來(lái)看看在日常的數(shù)據(jù)處理過(guò)程中常用的幾種數(shù)據(jù)處理函數(shù)的使用過(guò)程。

#?array函數(shù)初始化多維度數(shù)組
array_?=?np.array([(1,?2),
???????????????????(3,?4),?(5,?6)])

#?sum函數(shù)計(jì)算多維度數(shù)組每一列的和
sum_?=?np.sum(array_)

#?打印數(shù)組計(jì)算結(jié)果
print(sum_)
#?21

#?mean函數(shù)計(jì)算多維度數(shù)組的平均值
mean_?=?np.mean(array_)

#?打印數(shù)組計(jì)算結(jié)果
print(mean_)
#?3.5

#?tile函數(shù)使元數(shù)組變成多行多列的形式,相當(dāng)于復(fù)制的效果
tile_?=?np.tile(array_,?(3,?4))

#?打印計(jì)算結(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ù)完成對(duì)數(shù)組的排序操作
argsort_?=?array_.argsort()

#?打印計(jì)算結(jié)果
print(argsort_)
#?[[0?2?1?3]
#??[2?3?0?1]]

#?argsort函數(shù)完成對(duì)數(shù)組列值的排序操作
argsort_?=?array_.argsort(axis=0)

#?打印計(jì)算結(jié)果
print(argsort_)
#?[[0?0?1?1]
#??[1?1?0?0]]

注意:上述的排序結(jié)果返回的是源數(shù)組的排序后的下標(biāo)。

除了上述的numpy數(shù)組計(jì)算的基本操作,最常用的就是下面的numpy數(shù)組的加、減、乘、除計(jì)算。

通過(guò)數(shù)組的加、減、乘、除計(jì)算能夠滿(mǎn)足我們?cè)跇I(yè)務(wù)開(kāi)發(fā)過(guò)程中的絕大多數(shù)的計(jì)算操作。

#?初始化兩個(gè)數(shù)組a_、b_分別用于下面的邏輯計(jì)算
a_?=?np.array([1,?2,?3,?4])
b_?=?np.array([5,?6,?7,?8])

#?計(jì)算兩個(gè)一維數(shù)組的和
result_?=?a_?+?b_

#?打印計(jì)算結(jié)果
print(result_)
#?[?6??8?10?12]

#?計(jì)算兩個(gè)一維數(shù)組的差
result_?=?a_?-?b_

#?打印計(jì)算結(jié)果
print(result_)
#?[-4?-4?-4?-4]

#?計(jì)算兩個(gè)一維數(shù)組的乘積
result_?=?a_?*?b_

#?打印計(jì)算結(jié)果
print(result_)
#?[?5?12?21?32]

#?計(jì)算兩個(gè)一維數(shù)組的商
result_?=?a_?/?b_

#?打印計(jì)算結(jié)果
print(result_)
#?[0.2????????0.33333333?0.42857143?0.5???????]

除了上述的一維數(shù)組的相關(guān)計(jì)算,同時(shí)numpy還可支持二維矩陣的邏輯計(jì)算。

3、數(shù)組元素提取

數(shù)組元素的提取其實(shí)主要還是對(duì)數(shù)組的下標(biāo)索引的相關(guān)操作。

numpy提供的多維數(shù)組同樣能夠使用對(duì)應(yīng)的索引位置提取出相應(yīng)的值。

#?初始化二維數(shù)組
array_?=?np.array([[3,?6,?4,?11],
???????????????????[5,?10,?1,?3]])

#?提取第二行、第四列的值
value_?=?array_[1,?3]

#?打印計(jì)算結(jié)果
print(value_)
#?3

#?提取出倒數(shù)第二行、第三列到第四列之間的二維數(shù)組
value_?=?array_[-2:,?2:3]

#?打印計(jì)算結(jié)果
print(value_)
#?[[4]
#??[1]]

#?獲取數(shù)組中大于、小于、等于某個(gè)數(shù)值的結(jié)果
result_?=?array_?>=?10

#?打印計(jì)算結(jié)果
print(result_)
#?[[False?False?False??True]
#??[False??True?False?False]]

#?返回的數(shù)組中,所在位置為T(mén)rue的數(shù)值就是符合邏輯計(jì)算的數(shù)值。

多維數(shù)組的索引的數(shù)值提取操作,能夠輔助我們完成更加復(fù)雜的數(shù)據(jù)處理操作。

到此這篇關(guān)于詳解如何使用numpy提高Python數(shù)據(jù)分析效率的文章就介紹到這了,更多相關(guān)Python numpy提高數(shù)據(jù)分析效率內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論