回上方
登入
數據分析(1) - HackMD

數據分析(1)

Numpy套件

NumPy是Python語言的一個套件庫。支援大量的陣列與矩陣運算,並提供大量的數學函式庫。

語法

# 匯入numpy套件,為了簡化程式碼,將它套件另外命名成np import numpy as np # 建立一個陣列,有4個資料 w = np.array([7, -1, 6, 3]) # 印出陣列x print(w) # 判斷陣列中的值是否大於0 print(w>0) # 建立一個從0開始,小於10的連續整數陣列,總共10個元素 x = np.arange(10) print(x) # 建立一個陣列,包含10個亂數 y = np.random.randn(10) print(y) # 建立一個array, 在0與2的範圍之間讓5個點等分 z = np.linspace(0, 2, 5) # 印出陣列y print(z)

目標

我們要建立自1960到2017之前的年份陣列,將其當作繪圖的x軸座標值。

# 匯入numpy套件,為了簡化程式碼,將它套件另外命名成np import numpy as np # 製造從 1960 至 2017 的年份 years = np.linspace(1960, 2017, 58) print(years)

Plotly套件

我們可以運用Plotly套件來繪製視覺化圖形。

# 匯入numpy套件,為了簡化程式碼,將它套件另外命名成np import numpy as np import plotly import plotly.plotly as py import plotly.graph_objs as go plotly.tools.set_credentials_file(username='username', api_key='kJ57oIxOmMocH7BNMcAL') # 匯入plotly套件,以便繪製視覺化圖形 years = np.linspace(1960, 2017, 58) numbers = np.arange(58) trace = go.Scatter( x = years, y = numbers, mode = 'lines+markers', ) data = [trace] py.iplot(data, filename='scatter-mode')

我們可以把二種資料繪製到同一個圖形上面。

import numpy as np import plotly years = np.linspace(1960, 2017, 58) numbers = np.arange(58) randoms = np.random.randn(58) trace1 = go.Scatter( x = years, y = numbers, mode = 'lines+markers', name = '序列' ) trace2 = go.Scatter( x = years, y = randoms, mode = 'lines+markers', name = '亂數' ) data = [trace1, trace2] py.iplot(data, filename='scatter-mode')

Pandas套件

Pandas是讓Python走上數據分析主流語言的一項神兵利器,透過DataFrame可以快速地處理資料。

臺灣近58年GDP下載(.csv)

import pandas as pd import csv data = pd.read_csv('gdp_taiwan.csv') data.head()

綜合運用

import numpy as np import pandas as pd import csv import plotly data = pd.read_csv('gdp_taiwan.csv') data.head() Taiwan = data.loc[0] years = np.linspace(1960, 2017, 58) # 製造從 1960 至 2017 的年 # Create traces trace = go.Scatter( x = years, y = Taiwan, mode = 'lines+markers' ) data = [trace] py.iplot(data, filename='scatter-mode')

問題討論

打算跟地理老師請謚這張臺灣GPD圖可以做什麼推論。

國際比較研究

日本近58年GDP下載(.csv)

import numpy as np import pandas as pd import csv import plotly data1 = pd.read_csv('gdp_taiwan.csv') data2 = pd.read_csv('gdp_japan.csv') Taiwan = data1.loc[0] Japan = data2.loc[0] years = np.linspace(1960, 2017, 58) # 製造從 1960 至 2017 的年 trace1 = go.Scatter( x = years, y = Taiwan, mode = 'lines+markers', name = '臺灣' ) trace2 = go.Scatter( x = years, y = Japan, mode = 'lines+markers', name = '日本' ) data = [trace1, trace2] py.iplot(data, filename='scatter-mode')


本單元課程自2018.2.21日起已被瀏覽 1182