Juno Connectというアプリなんですが、ほぼ Jupyter Notebookそのままに使えます。
iPhoneでPythonプログラミングと言えば、Pythonista3が有名だと思います。
私も以前「[Pythonista3] Youtubeダウンロードライブラリ「Pytube」がまたエラーを出すようになったので「youtube-dl」に変更してみた!」や「よく使う駅名をリスト化して、簡単にYahoo!乗換案内検索ができるpythonスクリプトを作ってみた!」など多数のスクリプトを公開してます。
でもPythonista3は凄いアプリなんですが、データ解析等でよく使うpandas等が使えなかったりするんですよ。(T_T)
会社ではJupyter Notebookの開発環境でPythonのコーディングをしてるので、出来ればiPhoneでもJupyter Notebookが使えないかと思ってました。
そしたら、Juno Connectというアプリがあることを知ってダウンロードした訳です。
Juno Connectとは
iOS上で動作するJupyterクライアントアプリで、iPhoneにインストールしたJuno ConnectからリモートJupyterサーバーにアクセスしてデータ分析を行います。
Jupyterサーバーとして以下の4つが使えますが、これ以外にも独自のサーバーもOKなようです。
- Juno社のリモートサーバー(Try Jupyter!)
- Azure Notebooks
- COCALC
- binder
私はMicrosoftのアカウントを持ってるのでAzure Notebooksにしてましたが、2020年9月に使えなくなるらしいので、COCALCに変更しました。
ちなみにリモートサーバーを使わずにローカルでJupyter Notebookが使えるJunoというアプリもあります。こちらの方が更に高いですが、お好きな方で。
前回、iPhoneのMatlabで行列を使ってn次近似する方法を紹介しました。
今回も同じように行列を使って近似式を求めてもいいんですが、折角Pythonなのでライブラリを使って近似してみます。
・ExcelData.xlsx取得部
import numpy as np
import pandas as pd
df=pd.read_excel('ExcelData.xlsx',index_col=0)
B=df.values
Bnp=np.matrix(B)
print(Bnp)
・n次近似指定部
print('n次近似(n>=1) n=?')
N=int(input())
・n次近似演算、グラフ化部
import numpy as np
import matplotlib.pyplot as plt
x=Bnp[:,0].T.tolist()[0]
y=Bnp[:,1].T.tolist()[0]
\#近似式の係数
res=np.polyfit(x,y,N)
xMax=Bnp[:,0].max()
RANGE=10
xMax=int(np.ceil(xMax/RANGE)*RANGE)
\#近似式の計算
yy = np.poly1d(res)(x)
\#グラフ化
plt.plot(x,yy)
plt.plot(Bnp[:,0],Bnp[:,1],marker='*',linestyle='None')
plt.xlim(0,xMax)
\#グラフタイトルに近似式
title=''
for i in reversed(range(N+1)):
if i==N:
if res[N-i]!=0:
title=title+'{:.5f}'.format(res[N-i])+'x^'+str(i)
elif i>1:
if res[N-i]>0:
title=title+'+{:.5f}'.format(res[N-i])+'x^'+str(i)
elif res[N-i]<0:
title=title+'{:.5f}'.format(res[N-i])+'x^'+str(i)
elif i==1:
if res[N-i]>0:
title=title+'+{:.5f}'.format(res[N-i])+'x'
elif res[N-i]<0:
title=title+'{:.5f}'.format(res[N-i])+'x'
else:
if res[N-i]>0:
title=title+'+{:.5f}'.format(res[N-i])
elif res[N-i]<0:
title=title+'{:.5f}'.format(res[N-i])
title='y='+title
plt.title(title,fontsize=20)
plt.savefig(str(N)+'次近似.png')
plt.show()
プログラムを見て頂ければわかりますが、近似してる部分はライブラリNumpyを使った以下の2行だけです。
res=np.polyfit(x,y,N)
yy = np.poly1d(res)(x)
Pythonは簡単でいいですね。(^^)
▼プログラムを実行すれば、近似したグラフが表示され
カレントディレクトリに「n次近似.png」として保存されます。
Jupyter Notebookにはコマンドモード(ショートカット)があって、例えばセルを削除するにはDD、新規セルを下に追加するにはB等いろいろありますが、Juno Connectにもあります。
▼雷ボタンを押せば、色々選べるようになってます。
iPhoneでJupyter Notebookが使えるようになったので、電車通勤の無駄な時間も有効に使えて良かったです。
これから機械学習等もやっていこうと思います。(^^)
happyChappy(@happyChappy1115)でした。
Sponsored Link
Posted from するぷろ for iOS.