<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
一個用來繪圖的庫
import matplotlib.pyplot as plt
1)plt.imread(“圖片路徑”)
功能: 將圖片載入後返回一個維陣列
>>> jin = plt.imread("./jin.png") >>> jin array([[[0.24313726, 0.24313726, 0.24705882], ..., [0.7294118 , 0.7294118 , 0.7294118 ]]], dtype=float32) >>> jin.shpae (273, 411, 3) ''' 這是一個三維陣列 第一層代表將圖片分成273行, 第二層代表將圖片的第一層的每一行分為411列, 第三層代表將每一畫素點中的(R,G,B) 注意:有些圖片載入後最內層有4個元素,分別是(R,G,B,A[阿爾法/透明度]) '''
2)plt.imshow(ndarray)顯示圖片
功能: 將多維陣列渲染為一張圖片
>>> plt.imshow(nd) #將載入後的多維陣列傳入就可以將圖片渲染出來 ''' 有的圖片載入出來之後資料範圍在0-255之間的需要將資料/255之後轉化為0-1之間的就可以和0-1的圖片進行合併操作 '''
這裡就可以將圖片進行處理(反轉,拉伸,改色)等操作
3)plt.imsave(ndarray)儲存圖片
plt.imsave(ndarray)
預設儲存到當前路徑
plt.imsave('圖片名稱.png',圖片資料,cmap='gray') #儲存圖片 cmap:將圖片儲存為黑白圖片
繪製正弦曲線
# 正弦曲線 x = np.linspace(0,2*np.pi,100) # 從0 到 2π 取100份 y = np.sin(x) # y 為sin(x) 的值 s = Series(data=y,index=x) # 構建一個Series物件 s.plot() # 使用Series的plot()方法
2)簡單的DataFrame圖表範例 .plot()
繪製餘弦曲線
x = np.linspace(0,2*np.pi,100) # 從0 到 2π 取100份 df = DataFrame(data={'sin':np.sin(x),'cos':np.cos(x)},index=x) #建立DataFrame物件 df.plot()
導包
import numpy as np import pandas as pd from pandas import Series,DataFrame
1.讀取資料
讀取檔案AAPL.csv
df = pd.read_csv('./data/AAPL.csv') df.head()
2.檢查資料型別
df.dtypes
Date object #時間的資料型別為物件,在使用中需要做處理
Open float64
High float64
Low float64
Close float64
Adj Close float64
Volume float64
dtype: object
3.將’Date’這行資料轉換為時間資料型別
pd.to_datetime(Series物件)
功能: 將Series轉換為時間資料型別
df['Date'] # 這一列獲取出來是一個Series type(df['Date']) df['Date'] = pd.to_datetime(df['Date'])
df.dtypes
Date datetime64[ns] #此時已經是時間型別的資料了
Open float64
High float64
Low float64
Close float64
Adj Close float64
Volume float64
dtype: object
4.將’Date’設定為行索引
df.set_index('Date',inplace=True) ''' inplace:改變原來的變數的值 '''
5.繪製圖形,以欄位Adj Close(已調整收盤價格)為資料繪製
df['Adj Close'].plot()
1) Series柱狀圖範例,kind = ‘bar’/’barh’
隨機產生5個數,對其繪製縱向柱狀圖
''' data: 生成之後為Y軸的資料 index: 生成之後為X軸的索引 ''' s = Series(data=np.random.randint(0,10,size=5),index=list('abcde')) #隨機產生5個數 s.plot(kind='bar')
隨機產生5個數,對其繪製橫向柱狀圖
''' data: 生成之後為Y軸的資料 index: 生成之後為X軸的索引 ''' s = Series(data=np.random.randint(0,10,size=5),index=list('abcde')) s.plot(kind='barh')
2) DataFrame柱狀圖範例
隨機產生一個二維陣列,並繪製縱向(kind=’bar’)柱狀圖
''' index: 生成資料X軸的索引 columns: 特徵的名稱 ''' df = DataFrame(np.random.randint(0,10,size=(8,4)),index=list('abcdefgh'),columns=list('ABCD')) df.plot(kind='bar')
隨機產生一個二維陣列,並繪製橫向(kind=’barh’)柱狀圖
直方圖
直方圖(Histogram)又稱質量分佈圖。是一種統計報告圖,由一系列高度不等的縱向條紋或線段表示資料分佈的情況。 一般用橫軸表示資料型別,縱軸表示分佈情況。
s = Series(np.random.normal(loc=0,scale=5,size=10000)) # normal 正態分佈 s.hist() #這裡模擬出一組以0為中心,標準差為5的正態分佈資料, 繪製出的直方圖如下
核心密度估計:對分佈的圖進行估計核心
我們繼續使用剛剛直方圖的 Series的正態分佈資料
Series(np.random.normal(loc=0,scale=5,size=10000)) s.plot(kind='kde')
直方圖一般和核密度圖常常被畫在一起,既展示出頻率,又展示出了概率
有兩組陣列,我們將這兩組資料連線成為一個。
分析這組新資料
ndarr1 = np.random.normal(loc=-10,scale=5,size=5000) #第一組資料 ndarr2 = np.random.normal(loc=15,scale=2,size=5000) 第二組資料 ndarr = np.concatenate([ndarr1,ndarr2]) #將兩組資料合為一組 s = Series(ndarr) #生成Series物件 s.plot(kind='kde') # 核心 密度 估計 用來展示某個位置出現內容的概率的估計值 s.hist(density=True) # density表示直方圖也以 密度概率的值來展示 hist用來展示某個位置出現內容的實際頻率 #展示效果如下
''' s.plot(kind='kde') 展示某個位置的估計值 s.hist(density=True) 表示某個位置出現內容的實際頻率 '''
散佈圖是觀察兩個一維資料數列之間的關係的有效方法
範例資料
df = DataFrame(np.random.randint(0,150,size=(20,3)),columns=['python','math','eng']) df #模擬一個DataFrame資料,列名為'python','math','eng' python math eng 0 141 41 55 1 37 76 96 2 61 28 135 。。。 17 124 103 83 18 86 47 44 19 35 85 85
將這組資料生成散點圖
df.plot(kind='scatter',x='python',y='eng') # kind = 'scatter' , 給明標籤columns
這樣其實是沒有什麼實際的意義的
現在我們再加一列和“python”相關的資料
np.random.randint(-10,10,1)[0] # 0-10之間 隨機取一個數 df['php'] = df['python'].map(lambda x: x*0.9+np.random.randint(-10,10,1)[0]) df python math eng php 0 121 67 15 113.9 1 148 33 149 123.2 。。。 18 79 77 108 74.1 19 105 107 53 102.5
我們從資料是很難看出來python和php有什麼關係
這時我們就可以用散點圖來繪製出觀察
可以看出有python的值增大,php的值也會增大。
到此這篇關於Python高階資料分析之pandas和matplotlib繪圖的文章就介紹到這了,更多相關Python pandas和matplotlib繪圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45