投稿一覧

31-35件 / 78件

Flutterに興味あり

ちょっと前からDart(Flutter)に興味があるんです。以下の特徴を持つ言語(とフレームワーク)がないかなと前から思っていたんですよね。 学習に対するコスパがいい オブジェクト指向型言語 静的型付 クロスプラットフォーム 上に挙げた特徴で言えば、Pythonもいい線はいってるんですよね。ただ静的型付でないのが良くない。 Dart(Flutter)は一度ソースコードを書けば、それがWeb、デスクトップ、モバイルアプリのどれにもなるということで、Python以上の学習コスパを誇っているところがGood。しかも静的型付で実行速度も速いときました。欲を言えばFortranレベルの配列の扱いやすさがあるともっといいのですが(ひょっとしたらライブラリでその点は補えるのかもしれませんが、調べてません)、それは贅沢ですね。 先日色々と書きましたけど、まずはDart(Flutter)の勉強をしようと思います。書き方もJavaっぽくてすんなり入っていけそうです(飯塚は一時期ずっとJavaを触っていた時期がありました)。 今日はこの辺で。

pageview 108

学習効率

本日の気付き 新しい技術を学ぶとき、その都度一から全てを学んでいたら効率が悪い。以前学習したものと似たような概念であれば、それと何が同じでどういう部分が違うのか、まずは意識する。同じ部分は全てが同じでなくとも、根幹となる部分(考え方)は同じはずなので、それを新しい枠組みで実現するための方法論を押さえる。違う部分だけ、新しいものとして一から学べばよい。 本日の読書 本 経営の教科書ー社長が押さえておくべき30の基礎科目ー | 新 将命 読んだ範囲 第5章 目標に向かってともに進める社員がいるか(174-178頁) 内容 任せられない原因は主に次の4つである。①任せることが重要だと思っていない、②任せるよりも自分でやった方が早いと思ってしまう、③社員を信用していない、④うまくいってもらっては困る 日頃から部下の能力を見極めておく必要がある。見極めた上で、15~20%ストレッチした難易度の仕事を与えると効果的である。 人に任せて失敗するのと任せないで失敗するのだったら、前者の方がよい。同じ失敗でも、人が育つという観点でよりよいからである。 仕事を任せたら、報告を定期的に受ける体制を整える。例えば毎週月曜日の10時から等。こうすることで、仕事を任された側はある程度自分のペースで仕事を進めることができる。間違っても、頼んだ側のタイミングで報告を求めてはいけない。ただし、緊急である場合は報告するよう伝えておくべき。 仕事を任せたら必要に応じて相談に乗る(自責を求めることを前提とする)。このとき、過保護にならずにある程度自由にやらせることが重要である。但しやり方が明らかに間違っており、その方向性で仕事を進めると取り返しがつかなくなることが明らかな場合はその限りでない。 仕事を任せたら、その結果責任(Accountability)は社長にある。責任には「実行責任(Responsibility)」と「結果責任(Accountability)」の2種類があり、実行責任は仕事を任された部下に存在するが、結果責任は社長がすべて負う。 その他 昨日はブログを投稿せず、すみません。 Flutterの勉強を一度中断し、React/Next.jsとDjango REST Frameworkの勉強をしようと思っています。妻のブログサイトを構築するついでに勉強すると効率がよさそうだからです。Reactを押さえればReact Nativeを使うための土台ができる他、そこで学んだ考え方はFlutterにも使えます。 じゃあFlutter、そもそも学ぶか?という所に行きつきます。Flutter(というよりDart)はReact Nativeに比べて実行速度が速そうだったので、そちらを学ぼうと決心しました。実行速度が重要となる数値計算のシステムをDartで組んだら面白そうだと思ったからです。しかし、よくよく考えたら、それって本当なのでしょうか?またそれが本当だったとして、実際にはどれくらい違うのでしょうか?もし言うほど差がないのであれば、React Nativeでいいじゃん、ってなるんですよね。ちょっと調べてみようかな。実行速度に関する記事がネット上に転がっているかもしれない。

pageview 107

【pandas】データの代表値を求める

データの代表値をpandasで求める方法を紹介します。 計算する代表値 以下の代表値を計算します。 平均(相加平均) 中央値 最頻値 分散 標準偏差 四分位数 パーセンタイル 各代表値の説明は以下の通りです。 平均(相加平均) 全てのデータを足してデータの個数で割った値です。 $$ \begin{align} {\bar{x}} = \frac{1}{N}\sum\limits_{i}^{N}{x_{i}} \end{align} $$ 中央値 全てのデータを値の大きさの順に並べたときにちょうど中央に来る値です。データの個数が偶数であるときは中央に来る2つのデータの平均値を中央値とします。 最頻値 全てのデータの中で最も多く出てくる値です。 分散 各データが平均値から平均的にどのくらい離れた値を有しているかを、各データの平均値からの差分の2乗を平均することで評価した値です。 $$ \begin{align} s^{2} = \frac{1}{N}\sum\limits_{i}^{N}{\left(x_{i} - {\bar{x}}\right)^{2}} \end{align} $$ 標準偏差 分散の平方根をとった値です。 四分位数 全てのデータを小さい順に並べたときに、小さい方から全体の4分の1の位置に来るデータの値のことを第一四分位数、4分の2の位置に来るデータの値のことを第二四分位数、4分の3の位置に来るデータの値のことを第三四分位数といいます。第二四分位数は中央値と等しいです。 パーセンタイル 全てのデータを小さい順に並べたときに、小さい方から全体の$n$%の位置に来るデータの値のことを$n$パーセンタイルといいます。25パーセンタイル、50パーセンタイル、75パーセンタイルはそれぞれ第一、第二、第三四分位数と等しいです。 サンプルコード copy_allimport pandas as pd import numpy as np # サンプルデータを用意する data = { 'column': [3, 5, 6, 10, 6, 6, 20, 14, 1, 6] } df = pd.DataFrame(data) """ 代表値の計算 """ # 平均値 mean = df['column'].mean() # 中央値 median = df['column'].median() # 最頻値 mode = df['column'].mode() # 複数ある場合が存在するため、結果がSeriesとなる # 分散 variance = df['column'].var() # 標準偏差 std_dev = df['column'].std() # 四分位数 quartiles = df['column'].quantile([0.25, 0.5, 0.75]) # パーセンタイル(90パーセンタイルの例) percentile_90 = np.percentile(df['column'], 90) # 結果の表示 print(f"平均: {mean}") print(f"中央値: {median}") print(f"最頻値: {mode}") print(f"分散: {variance}") print(f"標準偏差: {std_dev}") print("四分位数:") print(quartiles) print(f"90パーセンタイル: {percentile_90}") 以下が実行結果です。 copy_all平均: 7.7 中央値: 6.0 最頻値: 0 6 Name: column, dtype: int64 分散: 31.34444444444445 標準偏差: 5.598610938835137 四分位数: 0.25 5.25 0.50 6.00 0.75 9.00 Name: column, dtype: float64 90パーセンタイル: 14.599999999999998

pageview 107

選択と集中

※昨日の夜投稿しようとして投稿できなかった分の記事です。よく寝てくれるはずの子が夜泣きしまして・・・。 うちの子はいい子で、夜とてもよく寝てくれます。そのおかげで自由時間はあるはずなのですが…いつの間にかこんな時間。どうしてでしょう。何もできないまま時間が過ぎていく。 自分が本当にやりたいことは何なのか、今一度見つめ直す必要がありそうです。時間には限りがあるので、選択と集中が必要ですね。記事を書いたり数値計算をしたり、今気になっているプログラミング言語の勉強をしたり…。やりたいことはたくさんあるけれど、どれか一つを選択して集中的にやっていきます。 明日は自分を見つめ直す日にしよう。あ、年末調整もやらなきゃ…。

pageview 106

Linux上に構築した仮想環境をJupyterLabで動かす

準備:仮想環境の作成 JupyterLabで動かす仮想環境を作っておきます。以下では用意した仮想環境の名前を.venv313であるとし、作成した仮想環境と同じ階層にいるものとします。参考:uvコマンドの使い方 ipykernelのインストール 作成した仮想環境を有効化し、ipykernelをインストールします。 copy_all# 仮想環境を有効化する source .venv313/bin/activate # ipykernelを仮想環境にインストールする uv pip install ipykernel カーネルの作成 以下のコマンドを実行し、JupyterLab上で動かすカーネルを作成します。 copy_all# .venv313の仮想環境を有効化するカーネルを作成する # Python3.13(data_science)はJupyterLab上での表示名 python -m ipykernel --user --name .venv313 --display-name "Python3.13(data_science)" カーネルの再起動 仮想環境にパッケージを追加する等の変更を加えたりメモリのリセット(入力/出力の消去)をしたりする場合、カーネルの再起動をするとよいです。ページ上部タブの「カーネル」 > 「カーネルを再起動」から再起動ができます。 補足:カーネルの削除 不要なカーネルを削除する場合は、 copy_alljupyter kernelspec list でカーネルに対する一覧を表示して削除したいカーネルのパスを確認した後、 copy_allrm -rf <カーネルのパス> でカーネルが削除できます。

pageview 106