當前位置:首頁 » 編程語言 » python中的numpy模塊

python中的numpy模塊

發布時間: 2022-12-21 07:55:22

㈠ 圖解python中數據分析工具包:Numpy

numpy是我學習python遇到的第一個第三方工具包,它可以讓我們快速上手數據分析。numpy提供了向量和矩陣計算和處理的大部分介面。目前很多python的基礎工具包都是基於numpy開發而來,比如 scikit-learn, SciPy, pandas, 還有 tensorflow。 numpy可以處理表格、圖像、文本等數據,極大地方便我們處理和分析數據。本文主要內容來自於Jay Alammar的一篇文章以及自己學習記錄。
原文地址: https://jalammar.github.io/visual-numpy/

使用過程中,如果希望 Numpy 能創建並初始化數組的值, Numpy 提供了 ones()、zeros() 和 random.random() 等方法。只需傳遞希望生成的元素數量(大小)即可:

還可以進行如下操作:

一般,需要數組和單個數字之間也可以進行運算操作(即向量和標量之間的運算)。比如說 data * 1.6 ,numpy利用一個叫做廣播機制(broadcasting)的概念實現了這一運算。:

我們可以通過索引對numpy數據獲取任意位置數據或者對數據切片

我們可以通過numpy自帶的函數對數據進行一些想要的聚合計算,比如min、max 和 sum ,還可以使用 mean 得到平均值,使用 prod 得到所有元素的乘積,使用 std 得到標准差等等。

上述操作不僅可以應用於單維度數據,還可以用於多維度數據{(矩陣)。

同樣可以使用ones()、zeros() 和 random.random()創建矩陣,只要寫入一個描述矩陣維數的元組即可:

numpy還可以處理更高維度的數據:

創建更高維度數據只需要在創建時,在參數中增加一個維度值即可:

根據數組中數值是否滿足條件,輸出為True或False.

希望得到滿足條件的索引,用np.where函數實現.

根據索引得到對應位置的值.

np.where也可以接受另兩個可選擇的參數a和b。當條件滿足時,輸出a,反之輸出b.

獲取數組最大值和最小值的索引可以使用np.argmax和np.argmin.

1、numpy.tofile()和numpy.fromfile()
保存為二進制格式,但是不保存數組形狀和數據類型, 即都壓縮為一維的數組,需要自己記錄數據的形狀,讀取的時候再reshape.

2、numpy.save() 和 numpy.load()
保存為二進制格式,保存數組形狀和數據類型, 不需要進行reshape
實例:

3、numpy.savetxt()和numpy.loadtxt()

np.savetxt(fname,array,fmt=』%.18e』,delimiter=None)
Parameter解釋:
array:待存入文件的數組。
fmt:寫入文件的格式
實例:

㈡ python(pandas模塊)

1.什麼是pandas? numpy模塊和pandas模塊都是用於處理數據的模塊。 numpy主要用於針對數組進行統計計算,處理數字數據比較方便。 pandas除了可以處理數字數據,還可...

㈢ python基礎2:隨機數生成—random模塊、numpy中的random函數

在Python中可以用於隨機數生成的有兩種主要途徑,一是random模塊,另一個是numpy庫中random函數。

在我們日常使用中,如果是為了得到隨機的單個數,多考慮random模塊;如果是為了得到隨機小數或者整數的矩陣,就多考慮numpy中的random函數,當然numpy也可以的到隨機的單個數

一、random模塊
二、numpy庫中random函數

random模塊中將近有7個函數都是可以用來生成隨機數的:

作用:隨機生成一個 [0,1) 的浮點數

作用:隨機生成一個 [a,b) 的浮點數

作用:隨機生成一個 [a,b] 的整數

作用:從列表,元組,字元串、集合(可用於for循環的數據類型)中隨機選擇一個元素

作用:在生成的<以a為始,每step遞增,以b為終>這樣的一個整數序列中隨機選擇一個數

作用:打亂一個列表的元素順序

從序列population中隨機取出k個數;population的類型可以是列表、元組、集合、字元串;

在Numpy庫中,常用使用np.random.rand()、np.random.randn()和np.random.randint()隨機函數。

作用:返回一個或一組服從標准正態分布的隨機樣本值

備註:標准正態分布是以0為均數、以1為標准差的正態分布,記為N(0,1)。對應的正態分布曲線如下所示,即

作用:使用方法與np.random.randn()函數相同 ,通過本函數可以返回一個或一組服從「0~1」均勻分布的隨機樣本值。隨機樣本取值范圍是[0,1),不包括1

numpy.random.randint(low, high=None, size=None, dtype='l')
輸入:
low—–為最小值
high—-為最大值
size—–為數組維度大小
dtype—為數據類型,默認的數據類型是np.int。

作用: 返回隨機整數或整型數組,范圍區間為[low,high),包含low,不包含high; high沒有填寫時,默認生成隨機數的范圍是[0,low

np.random.random([size])
作用:生成[0,1)之間的浮點數,與np.random.rand()功能類似

np.random.choice(a,[ size, replace, p])

參考文檔1: 【python】numpy之random庫簡單的隨機數據生成.rand()、.randint()、.randn()、.random()等(一)
參考文檔2: Python中隨機數的生成
參考文檔3: numpy.random模塊常用函數

終於寫完了,我以為它很簡單的………………預計1小時,結果寫了2.5小時

㈣ python中怎樣安裝numpy模塊

1.在python官網https://pypi.python.org/pypi/numpy中找到安裝的python版本對應的numpy版本。

例如:

python版本是

㈤ python數據分析模塊:numpy、pandas全解


一維數組情況:

二維數組情況:

3參數情況:

2參數情況:

1參數情況:

一維情況:

二維情況:

一維情況:

二維情況:

一維情況:

二維情況:第三個參數指定維度

只查看行數、或者列數

逗號隔開兩個索引

某些行

某些列

可以看出append()函數在二維數組中添加元素,結果轉為了一維數組。

那怎麼保持二維數組呢?可以設置axis參數按行或者按列添加

可以看出先把二維數組降成了一維數組,再在索引為1的位置添加元素。

那麼怎麼保持在二維添加元素呢? 同樣設置axis參數

也分按行和按列刪除

標記缺失值: isnan()函數

補充缺失值:

同樣axis參數可以指定拼接按行還是按列

2. hstack()函數:以水平堆疊的方式拼接數組

3. vstack()函數:以垂直堆疊的方式拼接數組

第二個參數還可以是數組,指定拆分的位置

hsplit()函數:橫向拆成幾個數組

vsplit()函數:縱向拆成幾個數組

數組與數組之間的運算

數組與數值的運算

可以指定整個數組求和,還是按行或者按列

axis=0:每一列的元素求和

axis=1:每一行的元素求和

axis=0:每一列求均值

axis=1:每一行求均值

axis=0:每一列求最大值

axis=1:每一行求最大值

pandas有兩個重要的數據結構對象:Series和DataFrame。

Series是創建一個一維數組對象,會自動生成行標簽。

會自動生成行列標簽

也可以用字典形式生成數據

在用字典生成數據的基礎上,同時指定行標簽

例如對下表的數據進行讀取

4月是第四個表,我們應把sheet_name參數指定為3;因為索引是從0開始的。

可以看出read_excel()函數自動創建了一個DataFrame對象,同時自動把第一行數據當做列標簽。

可以看出不給出header參數時,該參數默認為0。

header=1時結果如下:

header=None時結果如下:

index_col=0時,第0列為列標簽

index_col=0時

usecols=[2]:指定第二列

指定多列

數據如下:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-j1SHxY8y-1637655972909)(C: ypora-user-imagesimage-20211114192949607.png)]

nrows=3時

head()函數中參數為空默認前5行

指定head(3)時如下

numpy模塊也是shape

查看特定列的書庫類型

特定列數據類型轉換

先查看一下所有數據

與單行相比,結果顯示的格式不一樣了

iloc()挑選:

或者給出區間

挑選數據要麼標簽,要麼索引挑選

或者

或者寫成區間

標簽挑選

或者索引挑選

先查看一下數據

或者用字典一對一修改

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-a6QKIoie-1637655972912)(C: ypora-user-imagesimage-20211123110431201.png)]

isin()函數查看錶中是否有該值

查看特定列是否有該值

可以看出上述代碼並沒有替換,那怎麼替換呢?

末尾插入一列

指定插入到哪列

axis參數可以指定刪除行還是刪除列

指定標簽刪除

指定索引刪除

方法三

指定行標簽刪除

指定索引刪除

方法三:

先查看所有數據

info()函數查看數據類型,還可以查看是否有缺失值

isnull()函數查看是否有缺失值

在numpy模塊中用isnan()函數

刪除有缺失值的行

刪除整行都為缺失值的行: 需要指定how參數

不同列的缺失值設置不同的填充值

默認保留第一個重復值所在的行,刪除其他重復值所在的行

保留第一個重復值所在的行

保留最後一個重復值所在的行

是重復的就刪除

降序如下

參數指定first時,表示在數據有重復值時,越先出現的數據排名越靠前

獲取產品為單肩包的行數據

獲取數量>60的行數據

獲取產品為單肩包 且 數量>60 的行數據

獲取產品為單肩包 或 數量>60 的行數據

stack()函數轉換成樹形結構

how參數指定外連接

on參數指定按哪一列合並

concat()函數採用 全連接 的方式,沒有的數設置為缺失值

重置行標簽

效果與concat()一樣

末尾添加行元素

指定列求和

指定列求均值

指定列求最值

獲取單列的

corr()函數獲取相關系數

獲取指定列與其他列的相關系數

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-46g9qgQw-1637655972913)(C: ypora-user-imagesimage-20211123135643804.png)]

groupby()函數返回的是一個DataFrameBy對象,該對象包含分組後的數據,但是不能直觀地顯示出來。

分組後獲取指定列的匯總情況

獲取多列的匯總情況

獲取多列的情況

ta = pd.read_excel(『相關性分析.xlsx』)

print(data)

corr()函數獲取相關系數

獲取指定列與其他列的相關系數

[外鏈圖片轉存中…(img-46g9qgQw-1637655972913)]

groupby()函數返回的是一個DataFrameBy對象,該對象包含分組後的數據,但是不能直觀地顯示出來。

分組後獲取指定列的匯總情況

獲取多列的匯總情況

獲取多列的情況






㈥ Python,的numpy模塊中有沒有 階乘函數

有階乘函數,Numpy中,mat必須是2維的,但是array可以是多維的(1D,2D,3D····ND). Matrix是Array的一個小的分支,包含於Array。所以matrix 擁有array的所有特性。

在numpy中matrix的主要優勢是:相對簡單的乘法運算符號。例如,a和b是兩個matrices,那麼a*b,就是矩陣積。

若a=mat([1,2,3])是矩陣,則 a.A 則轉換成了數組,反之,a.M則轉換成了矩陣。

(6)python中的numpy模塊擴展閱讀:

常用的Numpy運算:

取矩陣中的某一行ss[1,:]或該行的某兩列ss[1,0:2]

將數組轉換成矩陣randMat=mat(random.rand(4,4))

矩陣求逆randMat.I

單位陣eye(4)

零矩陣zeros((x,y))建立x行y列的零矩陣。

最大值和最小值a.max(),a.min(),而a.max(0)表示按列選取每列的最大值。最大/小元素的下標a.argmax(),a.argmin()

#作為方法x.sum() #所有元素相加x.sum(axis=0) #按列相加x.sum(axis=1) #按行相加#作為函數sum(a,axis=0)ss.mean()

mean(a,axis=0(或1)) #按列或行求均值var(a)var(a,axis=0(或1)) #按列或行求方差。

std(a)std(a,axis=0(或1)) #按列或行求標准差ss.T或ss.transpose() #轉置。



㈦ python(pandas模塊)

Pandas是Python的一個數據分析包,最初由AQR Capital
Management於2008年4月開發,並於2009年底開源出來,目前由專注於Python數據包開發的Pydata開發team繼續開發和維護,屬於PyData項目的一部分,pandas最初被作為金融數據分析工具而開發出來,因此pandas為時間序列分析提供了很好的支持。

Pandas的名稱來自於面板數據和python數據分析。panel
data是經濟學中關於多維數據集的一個術語,在Pandas中也提供了panel的數據類型。

Pandas數據結構:

Series:一維數組,與numpy中的一維array類似。二者與Python基本的數據結構list相近,Series如今能保存不同種數據類型,字元串、boolean值、數字等都能保存在series中。

Time-series:以時間為索引的series。

DataFrame:二維的表格型數據結構,很多功能與R中的data.frame類似,可以將DataFrame理解為Series的容器。

Panel :三維的數組,可以理解為DataFrame的容器。

Panel4D:是像Panel一樣的4維數據容器。

PanelND:擁有factory集合,可以創建像Panel4D一樣N維命名容器的模塊。

熱點內容
python全局變數文件 發布:2025-05-15 07:35:06 瀏覽:953
位元組和存儲位元組 發布:2025-05-15 07:32:10 瀏覽:520
linux應用開發工程師 發布:2025-05-15 07:32:07 瀏覽:260
sqldcl 發布:2025-05-15 07:29:18 瀏覽:199
canvas的圖像上傳 發布:2025-05-15 07:29:17 瀏覽:102
離線緩存為什麼點不動 發布:2025-05-15 07:27:17 瀏覽:829
釘鼎伺服器出口ip 發布:2025-05-15 07:13:08 瀏覽:279
移動硬碟和光碟哪個存儲時間長 發布:2025-05-15 07:04:25 瀏覽:489
壓縮一定 發布:2025-05-15 06:57:30 瀏覽:289
進棧演算法 發布:2025-05-15 06:56:02 瀏覽:215