Pythonによる気象・気候データ解析I: Pythonの基礎・気候値と偏差・回帰相関分析
注:しばらくAmazonでは品切れなので楽天等で
Pythonによる気象・気候データ解析1 Pythonの基礎・気候値と偏差・回帰相関分析 [ 神山 翼 ]
の章末問題を一つずつ解いていきます。まずは第1章
A
import numpy as np
import numpy as np
A = np.array([[3, 2, 4],
[4, 2, 5],
[7, 2, 9]])
print('AA^T=')
print(np.dot(A, A.T))
print('A^TA=')
print(np.dot(A.T, A))
AA^T=
[[ 29 36 61]
[ 36 45 77]
[ 61 77 134]]
A^TA=
[[ 74 28 95]
[ 28 12 36]
[ 95 36 122]]
B
- II巻でも使うので、三角波にしてみました
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 100)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c)
plt.plot(x, s)
plt.grid(linestyle='dashed')
plt.legend(['cos', 'sin'])
plt.show()
C
# c.f. https://xoblos.hatenablog.jp/entry/2024/02/22/050417
# matplotlib用の日本語対応
!pip install japanize_matplotlib > /dev/null
import japanize_matplotlib
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('https://www.e-stat.go.jp/stat-search/file-download?statInfId=000031524010&fileKind=1', encoding='cp932')
# 「全国」を抽出
df_tokyo = df[df['都道府県名'] == '全国']
df_tokyo = df_tokyo.reset_index(drop=True)
# 西暦(年),人口(男),人口(女)を整数型に
df_tokyo['西暦(年)'] = df_tokyo['西暦(年)'].astype(int)
df_tokyo['人口(男)'] = df_tokyo['人口(男)'].astype(int)
df_tokyo['人口(女)'] = df_tokyo['人口(女)'].astype(int)
df_tokyo.head()
plt.plot(df_tokyo['西暦(年)'], df_tokyo['人口(男)'])
plt.plot(df_tokyo['西暦(年)'], df_tokyo['人口(女)'])
plt.legend(['人口(男)', '人口(女)'])
plt.title('人口推移')
plt.xlabel('西暦(年)')
plt.ylabel('人口(男),人口(女)')
plt.show()
- あらためて戦争怖いね
D
price_kaisen = 640
price_ehomaki = 540
price_nebiki = -30
# c.f. https://qiita.com/chatrate/items/21b5c83ecf9197e64299
from datetime import datetime
from datetime import timedelta
start = datetime.strptime('1979-01-01', '%Y-%m-%d')
end = datetime.strptime('2021-12-31', '%Y-%m-%d')
def daterange(_start, _end):
for n in range((_end - _start).days + 1): # 最終日も入れるので +1
yield _start + timedelta(n)
cost = 0
for d in daterange(start, end):
if '-02-03' in str(d):
# 節分
cost += price_ehomaki + str(d).count('9') * price_nebiki
cost += price_kaisen + str(d).count('9') * price_nebiki
print('合計', cost)
合計 9595390
E
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib
# https://www.data.jma.go.jp/yoho/typhoon/position_table/table2023.html から「台風位置表(CSV形式)」をダウンロード
df = pd.read_csv('table2023.csv', encoding='cp932')
# 2023年に上陸した7号
df01 = df[df['台風番号'] == 2307]
df01 = df01.reset_index(drop=True)
#display(df01.head())
plt.plot(df01['経度'], df01['緯度'])
plt.xlabel('経度')
plt.ylabel('緯度')
plt.title('台風7号(2023)')
plt.show()
-
Pythonによる気象・気候データ解析II 2章章末問題
先にII巻を買ったので下記記事もあります - Pythonによる気象・気候データ解析II 1章章末問題