農林漁牧網

您現在的位置是:首頁 > 林業

D03 Numpy排序、篩選、統計

2021-12-27由 全民程式設計 發表于 林業

標準d是前三季為什麼型別欄位

title: D03|Numpy排序、篩選、統計

author: Adolph Lee

categories: 資料探勘基礎

tags:

Python

資料探勘基礎

統計

篩選

排序

D03 Numpy排序、篩選、統計

在進行資料探勘工作之前,我們常常需要對資料的全貌今昔概覽,利用描述性統計獲取資料的特徵,例如資料的均值,中位數,眾數,離中趨勢,頻數分析,分佈分析以及繪製對應的圖表。在生活中最為常見的資料存放形式是二維表,我們將二維表資料轉換為ndarray之後對應的即為二維陣列,下面以二維陣列為例,講述numpy的排序、篩選、統計。

排序

關於排序,numpy的開發者們一早就為我們準備好了方法函式供我們使用,並且提供了多種不同的排序演算法例如最常用的quicksort以及穩定性最強的mergesort。

numpy。sort

numpy。sort(a, axis, kind, order)

a ⇒array指的是需要排序的陣列

axis ⇒ axis指定按行序排序或按列序排序 axis=0 列序, axis=1 行序 預設為行序

kind ⇒ 排序演算法的種類,例如:kind = ‘mergesort’ 預設值為quicksort

order ⇒ 如果陣列包含欄位名稱,那麼就可以利用order指定欄位

import numpy as nparray_2d = np。array([[1,3,2],[7,4,5],[5,7,9],[5,8,8]])print(array_2d)# 按行序排序print(np。sort(array_2d))print(array_2d)# 按列序排序print(np。sort(array_2d,axis=0))

D03 Numpy排序、篩選、統計

在演示按欄位排序之前,我們先學習為ndarray新增欄位名稱

利用資料型別物件(dtype)定義欄位名稱及欄位型別

這一過程就像在資料庫中建表

import numpy as npfiled = np。dtype([(‘name’,‘S20’),(‘age’,int)]) # 注意使用小括號 而非中括號array_2d = np。array([(‘Tyrone’,22),(‘Arya’,18),(‘Jon’,36)],dtype=filed)print(array_2d)# 按欄位排序print(np。sort(array_2d,order=‘name’))

D03 Numpy排序、篩選、統計

篩選

numpy提供了兩個篩選方法一個是where 一個是extract,where返回的符合條件元素所在的索引,extract返回的是符合條件元素本身,二則之間的異同,讓我們用實際輸出結果來比較。

where(condition)

where 返回符合條件元素所在索引

condition ⇒ 篩選條件

import numpy as nparray_2d = np。arange(0,10)。reshape(2,5)where_condition = np。where(array_2d > 5)print(where_condition)# 透過索引獲取元素print(array_2d[where_condition])

D03 Numpy排序、篩選、統計

extarct(condition,array)

extarct 返回符合條件元素所在索引

condition ⇒ 篩選條件

array 指定陣列

返回一維陣列

import numpy as nparray_2d = np。arange(0,10)。reshape(2,5)extarct_condition = np。extract(array_2d>5,array_2d)print(extarct_condition)

D03 Numpy排序、篩選、統計

以上內容即為有關numpy的排序與篩選,學習好這一部分的知識,有助於我們更加便捷的理解,另一個數據科學庫pandas,pandas是基於numpy所開發的,下面進入numpy章節的最後一個部分,numpy的描述性統計。 ​

統計

numpy中的統計函式都是相當便捷與簡單的,例如獲取最大最小值獲取中位數,均值,加勸均值,分位數,方差標準差等,下面我們將一一介紹。

amax ⇒ 獲取最大值

amin ⇒ 獲取最小值

ptp ⇒ 獲取最大值最小值之差

percentile ⇒ 獲取分位數,percentile有三個引數(a,q,axis) a⇒指定陣列,q⇒指定百分數(0-100),axis⇒指定行序列序

median ⇒ 獲取中位數

mean ⇒ 獲取均值

average ⇒ 獲取加權平均值

std ⇒ 獲取標準差 標準差計算公式:std = sqrt(mean((x-x。mean)**2))

var ⇒ 獲取方差 方差計算公式:var = std**2

import numpy as nparray_1d = np。arange(0,10)print(array_1d)# 獲取最大值print(np。amax(array_1d))# 獲取最小值print(np。amin(array_1d))# 獲取最大值最小值之差print(np。ptp(array_1d))# 獲取上下四分位數print(np。percentile(array_1d,75),np。percentile(array_1d,25))# 獲取中位數print(np。median(array_1d))# 獲取均值print(np。mean(array_1d))# 獲取加權平均值print(np。average(array_1d))# 獲取標準差print(np。std(array_1d))# 獲取方差print(np。var(array_1d))

D03 Numpy排序、篩選、統計

至此,Numpy的介紹的就結束了,不難看出利用numpy操作二維陣列還是多有不便,想要操作其如同資料庫或者Excel表格一樣方便,還比較困難,而基於numpy開發的pandas庫的出現解決了這一問題。下一章節我們將開始認識pandas。

轉載請註明出處