Python中的資料分析

2021-08-19 04:12:41 字數 4061 閱讀 4646

本人是學python中的小白之一。python是人工智慧中的一門重要的程式語言之一,它的作用在於其中有能夠幫助人們進行資料分析的numpy庫、matplotlib繪相簿,和開源專案pandas。這些都是我們進行資料分析的重要工具。那麼現在我就來來介紹一些關於·python中的基礎知識。

(一)numpy

numpy庫是乙個對陣列進行分析處理的工具。

1.建立乙個多維陣列並讀取其中元素

import 

numpy as

np #匯入numpy並將其命名為np

arr1=np.array([

[1,2

,3],[4,

5,6],[7,8

,9]])#建立乙個多維陣列

print(arr1[0,0])#0,0為陣列的下標

2.dtype屬性

利用dtype屬性可獲取資料型別對應的字元碼

import 

numpy as

nparr1=np.array([

[1,2

,3],[4,

5,6],[7,8

,9]])print(arr1.dtype)#執行成功後可知此陣列型別為int32

3.陣列的切片與索引,陣列形狀的處理

import 

numpy as

nparr1=np.array([

[1,2],[3,

4],[5

,6],[7,

8]])

arr2=arr1.reshape(1

,8)#更改陣列的形狀使其成為一行

print(arr2)

陣列的切片與索引

arr=np.random.randint(1,9,size=(3,4,5))#1定義乙個陣列內各值都為1到9整數中的隨機,size是(3,4,5)的乙個陣列

arrprint(arr[:,:,1:4])#獲取每個陣列中的第一維度的一到三個

執行結果如下

array([[[4, 4, 2, 6, 4],

[1, 2, 3, 8, 6],

[2, 8, 3, 8, 5],

[3, 5, 7, 7, 2]],

[[3, 3, 5, 6, 1],

[8, 1, 4, 6, 6],

[7, 5, 7, 7, 3],

[2, 3, 2, 5, 5]],

[[8, 4, 5, 1, 7],

[4, 7, 6, 2, 4],

[6, 5, 1, 2, 3],

[6, 4, 7, 1, 8]]])

[[[4 2 6]

[2 3 8]

[8 3 8]

[5 7 7]]

[[3 5 6]

[1 4 6]

[5 7 7]

[3 2 5]]

[[4 5 1]

[7 6 2]

[5 1 2]

[4 7 1]]]

處理陣列形狀

陣列轉置:

arr=np.random.randint(1,9,size=(3,3))

print(arr)

print(arr.transpose())

執行結果如下

[[7 5 7]

[8 2 3]

[4 7 7]]

[[7 8 4]

[5 2 7]

[7 3 7]]

花式索引

arr=np.random.randint(1,9,size=(8,8))

arrprint(arr[np.ix_([1,2,3],[1,2,3])])#生成乙個索引器獲取1,2,3行1,2,3列的資料

執行結果

array([[1, 5, 7, 6, 1, 6, 7, 1],

[2, 1, 3, 3, 6, 4, 7, 4],

[7, 2, 1, 6, 4, 1, 6, 6],

[6, 5, 6, 8, 4, 8, 8, 6],

[2, 1, 8, 1, 7, 8, 2, 7],

[1, 1, 2, 6, 3, 7, 8, 6],

[8, 2, 4, 5, 8, 8, 4, 5],

[6, 1, 5, 5, 3, 3, 1, 6]])

[[1 3 3]

[2 1 6]

[5 6 8]]

4.numpy陣列的屬性

ndim 儲存維度的數量

size 儲存維度的數量

t屬性  陣列轉置(若陣列的秩小於2,得到乙個陣列的檢視)

real 返回陣列實部

imag 返回陣列的虛部

5.numpy陣列的廣播

乙個陣列和乙個標量相乘,標量需要根據陣列情況進行擴充套件,然後才可以進行乘法運算,這個運算的過程稱為廣播。

(二)pandas

pandas具有處理面板資料,資料分析的功能。

1.資料結構之一:dataframe

檔案讀取

import pandas as pd

import numpy as np

df01=pd.read_csv('name.csv')#讀取乙個csv檔案

df01[df01.columns[4:]]#將第5列及以後顯示的**輸出

統計方法

at01=pd.dataframe(np.random.randint(1,9,size=(3,3)))

at01

at01.sum(axis=1)#按行求和,若為0就是按列求和

describe 描述性統計資訊 非nan資料項的數量

mad 計算平均絕對偏差

median 中位數

std 離散度的標準差

var 方差

缺失值處理常用方法:

isnull()檢查缺失資料

notnull()檢查非缺失資料

filllna()用標量值替換缺失資料

2.資料結構之二:series

series建立方法

用python的字典來建立

由numpy陣列來建立

用單個標量值來建立

ser01=pd.series(np.array([1,2,3,4]))#建立乙個series

series的運算

ser=pd.series()

ser02+10

ser02-10

ser02*10

ser02/10

3.資料聚合

arr=np.random.randint(1,9,size=(3,3))

arrprint(arr.mean(axis=0))#以列的形式進行聚合

print(arr.mean(axis=1))#以行的形式進行聚合

(三)matplotlib

matplotlib是乙個繪相簿。可利用這個庫進行基本的繪圖操作。

import matplotlib.pyplot as plt

import matplotlib as mpl

import numpy as np

%matplotlib tk#在gui中顯示

#%matplotlib inline#在行內顯示

#解決中文顯示問題

mpl.rcparams['font.sans-serif']=['simhei']

mpl.rcparams['axes.unicode_minus']=false

x=np.arange(-3,3,0.2)#從-3到3,以0.2為間距畫點

x=np.sin(x)

plt.figure()#建立圖形

plt.plot(x,color='blue',linestyle='-.',marker='o',markersize=10,alpha=0.1)#marker標記alpha透明度,linestyle為線形

plt.show()#演示圖形

圖例和註解

圖例:用matplotlib提供的legend()函式,為資料序列提供標籤

橫軸和縱軸的標籤:分別通過xlabel()和ylabel()繪製

ide:anaconda3(64-bit)

[印尼]ivan idris 著

韓波 譯

python資料分析

以網路爬蟲為例,網路爬蟲是乙個自動提取網頁的程式,爬蟲是搜尋引擎的第一步,也是最容易的一部。網頁搜尋,建立索引,查詢排序 用c c 效率高,速度塊,適合通用搜尋引擎做往往爬取。但是它的缺點也特別明顯 開發慢,寫起來又臭又長的。而python無論在資料分析還是在指令碼自動化編寫尚都是簡單,易學的。良好...

python資料分析

陣列間的算術運算 npwhere pandas的使用 np.random.rand 3,4 產生乙個3行4列的矩陣 0 1之間的 in 32 data1 1,2,3,4.0 in 34 arr1 np.array data1 in 35 arr1 out 35 array 1.2.3.4.in 37...

python資料分析

1.資料分析的含義與目標 2.python與資料分析 3.python資料分析大家族 4.python環境搭建 一 numpy 功能 ndarray 多維操作 線性代數 官網 numpy是python語言的乙個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫。nu...