自宅勤務の功罪の功の方

家で仕事することが増えて、働く父の背中を見せているせいか、最近、妻や子どもたちが、

「パパ大変ね」

「パパおつかれ」

「パパがんばってね」

と言ってくるようになりました。

ちょっと嬉しい。あともう少し「仕事ってこんなにも楽しいんだよ」ということも伝えていきたい。

「引きこもりの僕が久しぶりに登校する」という夢を見た

現実の世界では、起きた出来事に対して感情が生まれるが、夢の世界では、感情があって、その感情を象徴する何かが目の前に現れる。だから、夢で起きたことには意味はないが、夢で味わった感情には、真に迫った手触りがある。

今日は「引きこもりの僕が、久しぶりに学校(小学校)に行った」という夢を見た。

【Python】コロナの曜日別の東京の患者数をグラフに出してみた(挫折に挫折を繰り返した妥協の産物として)

機械学習があまりに難しかったので、一歩戻ってみることにしました。

何ができるだろう…
そういえば、csvデータを取り込むのと、グラフ書くのは勉強したから、公開されているコロナのデータをグラフにできるのではないか!?

そう思って、元データは「東京都 新型コロナウイルス陽性患者発表詳細」を使って、何かそれっぽい集計をしてみることにしました。

その後が挫折につぐ挫折。

● 最初は「曜日ごとの年代別の陽性者数」を出そうとしました。
でも、インデックスが複数あるときのグラフを作れず、挫折

● 年代別の陽性者数を出そうとしました。
でも、うまい具合に年代が横軸に並んでくれない(100歳とかが一番左に来てしまう)ので、挫折

● 曜日別の陽性者数を出そうとしました。
曜日を「月曜」とか「火曜」とか出そうとして挫折(weekday_nameを使うと「AttributeError: 'DatetimeIndex' object has no attribute 'weekday_name'」のエラーメッセージが出る。たぶんこの辺りが回答なんだろうけど、わからず)

というわけで、とりあえず以下のような妥協の産物ができあがりました……
なお、行間が空いていないのは、行間を開けると表示がおかしくなるからです。このブログのcssも直さなきゃ……

#ライブラリ読み込み
import pandas as pd
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
import japanize_matplotlib
#日付記述を日付データとしてcsv読み込む
covid_data = pd.read_csv("
(都合により改行)
https://stopcovid19.metro.tokyo.lg.jp/
(都合により改行)
data/130001_tokyo_covid19_patients.csv", index_col="公表_年月日", parse_dates=True)
#曜日と日付のマルチインデックスにする
covid_data_multiindex = covid_data.set_index([covid_data.index.weekday, covid_data.index])
#余計な列を削る
cd = covid_data_multiindex.iloc[:,7:8]
#列名を変える
cd.index.names = ["曜日", "公表_年月日"]
#ソートする
cd_sorted = cd.sort_index()
#数を出す
cd_weekday_count = cd_sorted.count(level="曜日")
#グラフ表示
print("0=月曜、1=火曜、2=水曜、3=木曜、4=金曜、5=土曜、6=日曜")
cd_weekday_count.plot(kind="bar", legend=False)

Covidweekday

月曜と水曜が少なめなのですね(死んだ魚の目で)。

極めて釈然としませんが、週末のお勉強としては、今日はこの辺が限界ということで……
次は、

● 「曜日ごとの年代別の患者数」を出す
● 曜日のところを数字から曜日にする

にチャレンジして、どうしてもダメだったら捨てて前に進もうと思います。わからないものをわからないまま抱えて生きることも大切です(村上春樹風味)。
……ヒントあればどんどん教えてください!!!!

p.s.
thx!
https://miyukimedaka.com/2019/10/06/blog-0108-matplotlib-japanese/

【Python勉強中】とうとう機械学習まで来た……!

ざっくりと「AIしたい」という気分だけがあるまま、どこから手を出していいか分からないので、手近なものを無作為に食べてみて、続けられるやつを続けてみる、という戦略をとってみました。

残ったのは「Tellus×TechAcademy初心者向け Tellus 学習コース」。静的htmlだったのと、僕的にわかりやすい文章だったのが決め手。

どうも最初は、Pythonをある程度いじれるようならないといけないらしい。
ということで、この1ヶ月ほど、空き時間に少しずつPythonのお勉強をしていました。

基本的な、printとかwhileとかそういうのから、NumPy、Matplotlib、Pandas、Pillow、ときて……

先日、とうとう、とうとう機械学習へとたどり着きました!!!
やっと山の麓に辿り着いた!!!

Scikitlearn

これからどんな困難、難題が待ち構えているのか、想像すらできない状態ですが、とりあえず今日は、辿り着いたことを喜ぼうと思います。
最近はOBSとかAtemとかもいじってるし、昨年は結構Adobe Premiereいじってたし、もちろんプロダクトマネジメントや編集、経営といった課題とは正面から取り組みながら……なかなかがんばってるじゃないかー。

【Python勉強中】for文の訓練

for文って、どんな言語を習っても最初に学ぶものなんだけど、whileに比べて全然腑に落ちてないので、今回無理やり使って練習しました。

まずは以下のように、図とその図のRGBの値をグラフ表示してから、

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
tokyo_tower = Image.open("tokyo_tower.png")
tower_color = np.array(tokyo_tower)
hist_r, bins_r = np.histogram(tower_color[:, :, 0].flatten(), bins=256)
hist_g, bins_g = np.histogram(tower_color[:, :, 1].flatten(), bins=256)
hist_b, bins_b = np.histogram(tower_color[:, :, 2].flatten(), bins=256)
plt.figure(figsize=(10, 3))
plt.subplot(1, 2, 1)
plt.imshow(tokyo_tower)
plt.subplot(1,2,2)
plt.plot(hist_r, color="red")
plt.plot(hist_g, color="blue")
plt.plot(hist_b, color="blue")
Pythonnofor

繰り返し同じことが書いてあるところを、forに置き換え。

iとかjとかkとかに数字を入れて、それをシーケンスのオブジェクトの番号(言葉の使い方合ってる?)に代入したい。普通に書いて、ちゃんと番号として扱ってくれるのかどうかちと不安だったのですが、なんだかいい感じに処理してくれたみたいです。

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
tokyo_tower = Image.open("tokyo_tower.png")
tower_color = np.array(tokyo_tower)
rgb = [0] * 6
j = 0
for i in range(0, 5, 2):
    rgb[i], rgb[i+1] = np.histogram(tower_color[:, :, j].flatten(), bins=256)
    j += 1
plt.figure(figsize=(10, 3))
plt.subplot(1, 2, 1)
plt.imshow(tokyo_tower)
rgbcolor = ["red", "green", "blue"]
k = 0
plt.subplot(1,2,2)
for i in range(0, 5, 2):
    plt.plot(rgb[i], color=rgbcolor[k])
    k +=1
Pythonfor

whileみたいに+=1とかカウントアップしているのが、本当にこのやり方クールなのかわからないぞ? とか、元よりむしろ長くなってる! とか、いろいろ思うところはありますが、今日のところはいいかな。週末のお勉強としてはまずまずではないでしょうか。

p.s.
thx!
https://qiita.com/gaku8/items/90167693f142ebb55a7d
https://udemy.benesse.co.jp/development/web/python-for.html
そしていつもの「Tellus×TechAcademy初心者向け Tellus 学習コース

子ども、とうとうポケモンになる

3月から学校が休みの子ども2人は、毎日、実に楽しそうにしている。

レゴ、読書、ダンス、ごっこ遊び、工作、ゲーム、テレビ、漫画、トランポリン、粘土、お絵描き……飽きるということがない。つまらない/寂しいから学校に行きたいとか、友だちに会いたいとか、一度も言ったことがない。

日課の散歩または家の前での外遊びと、たんまり出ている宿題をこなしながら、どんどん新しい遊びを開発していく。

2ヶ月を過ぎた最近、とうとう日本語をしゃべらなくなった。

僕「ご飯なに食べたい?」

子どもたち「ワギャー?」

僕「え? 何?」

子どもたち「ワギャァ……ワーギャワギャ!」

僕「どういうこと?!」

子どもたち「ワギャワーギャ、ワーギャ、ワギャァ」

どうも、ポケモンになることに決めたらしい。

人は、完全なる自由を獲得すると、このように変化していくのか、と、むしろ感心した。大人になったとき、この数ヶ月を、子どもたちはどう思いだすんだろう?

特別定額給付金で「本当にこのフォームを再送信しますか?」で引っかかった場合

やった……数十分におよぶ格闘の末、とうとうiPhoneから特別定額給付金を申請することに成功しました!

基本的には、よくできてる仕組みだと思いました。ただ、僕の場合は、最後の段階で、アプリで電子署名すると、Safariで「本当にこのフォームを再送信しますか?」と聞かれ、キャンセルを押しても再送信を押しても申請が中断されてしまう、という問題に直面していました。

いろいろ試した結果、以下をやればこの問題をクリアできるみたいなので、ニッチながら同様の問題に直面し血管が切れそうになっている方々に、情報をシェアします。

1.直前で、入力データの保存(画面下部にあります)を押し、データを保存する

2.マイナポータルのアプリを削除し、再インストールする

皆様の成功をお祈りしております。

【Python勉強中】plt.figureとplt.subplotで画像を並べることができた

教科書の写経じゃない、自分で考えたコードその2ができました。その1とやり方はたいして変わっていないのですが、やはり自分で書いたものは可愛いものです。

まあ、いくつも作って慣れてくると、こうやってブログに書くほど興奮するほどでもなくなるのでしょうね……GitHubのissuesにでも残しておこうかしら……

今回書いたのは、「図を並べる」というヤツです。
まずは以下を実行し、

from PIL import Image
import matplotlib.pyplot as plt
%matplotlib inline
import math

そのあと、いろいろとconvertした画像を並べようとしたのですが、以下の書き方だと、どうしても画像が1つしか表示されませんでした。

tokyo_tower = Image.open("tokyo_tower.png")
imgmode = ["1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "HSV", "LA", "I", "F"]
imgnum = len(imgmode)
i = 0
plt.figure(figsize=(20,20))
tower = [0] * imgnum
while i < imgnum:
    tower[i] = tokyo_tower.convert(imgmode[i])
    plt.imshow(tower[i])
    i += 1

悪戦苦闘したあげく、どうやら、まずplt.figureというので、図が表示される領域を指定し、そのあとplt.subplotというので、領域を何分割し、どの領域にどの図を表示するのかを指定する必要があるらしいということがわかったので、以下のように書いたところ、

tokyo_tower = Image.open("tokyo_tower.png")
imgmode = ["1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "HSV", "LA", "I", "F"]
imgnum = len(imgmode)
i = 0
plt.figure(figsize=(20,20))
tower = [0] * imgnum
while i < imgnum:
    tower[i] = tokyo_tower.convert(imgmode[i])
    plt.subplot(math.ceil(imgnum / 4),4,i+1)
    plt.imshow(tower[i])
    i += 1

無事に図が複数表示されました。
ついでに縦横に格好良く並べることもできて、120点でした。

Tokyo_tower

週末のお勉強としては及第点だと、ひとり満足です。
内容は相変わらず何の役にも立たないものなのですが。

ところで、今はパソコンにjupiter notebookをインストールしてPython書いているのですが、どうもAWSのCloud9とやらでやったほうが、ローカルのマシンパワー食われずにいいのでは? という予感がしています。
しかし、金額がわからない(Cloud9自体は無料)ので、いつか時間をとって調べるまで保留中。

画像処理お遊びサービスが作りたいのですが、道のりは遠そうです。

p.s.
thx!
https://qiita.com/pashango2/items/145d858eff3c505c100a
https://teratail.com/questions/9130
https://www.headboost.jp/python-how-to-create-a-list/
https://ymgsapo.com/2019/07/21/jupyternotebook-image-show/
https://qiita.com/KntKnk0328/items/5ef40d9e77308dd0d0a4
https://qiita.com/gaku8/items/90167693f142ebb55a7d
https://openbook4.me/sections/1829
そしていつもの「Tellus×TechAcademy初心者向け Tellus 学習コース

SLAM DUNK桜木のその後

久しぶりに「SLAM DUNK」読みました。もうストーリーも何もかも知ってる話なのに、やはりテンション爆上がり! 感動しました。

ところで……

以前何回か読んだときは、桜木のその後、というか、復帰できるのか、復帰したあと元のようにプレイできるのか、気になって仕方なかったのですが、今回読み直して、vs豊玉高校のときに、以下のような解説が入ってるのに気づきまして。

このときから、桜木は流川のプレイを目で追うようになる。

それに伴い、のちにさらに加速度的に成長していくことになるのだが……

「あぁ、桜木のその後は、既に本編で書かれていたんだ」「桜木はバスケに復帰できるんだ」と、大変安堵した次第です。

欠けていたピースが、自分の中でパチっとハマった気がして、ますますスラムダンクが好きになりました。やはり名作だわー。

[記念メモ]はじめて自分で考えて書いたPythonコード

最近、プログラミングを勉強しています。

なぜか? 『シン・ニホン』を読んだ影響もあるのですが、そもそも自分の中にずっとくすぶっていた「これはできるようになりたい」リストの中の1つだからです。

このまま一生プログラミングを学ばずにいくのか? と考えたとき、使うあてはないけど、今からやろうと思い立った次第です。

選んだ言語はPython。機械学習やAIといったことに興味があるので、簡単にですが調べた結果、この言語がいいのかなと思いました。あんまり考えていません。勘です。

いま使っている教材は、「Tellus×TechAcademy初心者向け Tellus 学習コース」というヤツです。無料で、とてもわかりやすく丁寧に書かれています。ありがたや……

で、しばらく教材を見ながら写経をしていたのですが、先ほど、

「これとこれをこう組み合わせたら、こういうのができるのでは?」

と思いたぢ、しばし悪戦苦闘して、とうとうはじめて、写経ではなく、自分で書いたコードを動かすことができました。
記念にここに置いておきます。

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
i=0
x=np.arange(1,11)
y=np.zeros(10)
while i <=9:
    y[i]=np.random.uniform(1,10)
    i +=1
plt.plot(x,y)
スクリーンショット 2020-05-01 23.29.15

……見る人が見ればわかるように、「グラフっぽい何かを描く」という、全く意味のないプログラムです。
でも予想通りに動いたときは嬉しかったです!

果たして、この勉強は、どこへ向かっていくのでしょうか……
上手くAIとかにつながっていってくれるといいのですが……