溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用numpy提高Python數(shù)據(jù)分析效率

發(fā)布時間:2023-04-18 10:24:26 來源:億速云 閱讀:76 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下怎么使用numpy提高Python數(shù)據(jù)分析效率的相關(guān)知識點,內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

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ù)運行速度甚至高出幾倍不止。

下面就來看看在日常的數(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ù)處理操作。

以上就是“怎么使用numpy提高Python數(shù)據(jù)分析效率”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI