Python
安島直円:不朽算法(上巻) 東北大学総合知デジタルアーカイブhttps://touda.tohoku.ac.jp/portal/item/10010000022977キーワード:円3個,三角形#Julia #SymPy #算額 #和算 #数学 第十四 (不等辺)三角形の中に,大円,中円,小円を容れる。各円は三角形…
Julia の SymPy プログラムを Python の sympy プログラムに書き換えるには,ChatGPT が使えます Julia との違いポイント 内容 Julia Python シンボルの宣言 @syms a::positive symbols("a", positive=True) solve の返り値 シンボリック辞書の配列 変数タ…
安島直円:不朽算法(上巻) 東北大学総合知デジタルアーカイブhttps://touda.tohoku.ac.jp/portal/item/10010000022977キーワード:円,三角形#Julia #SymPy #算額 #和算 #数学 第十二 (不等辺)三角形の中に等円を複数個容れる。三角形の大斜(底辺),中…
データのシリアライゼーションと逆シリアライゼーション データのシリアライゼーションと逆シリアライゼーションは,データの保存,転送,復元において非常に重要な役割を果たす。シリアライゼーションは,データをバイト列やテキストなどの直列化された形式…
CSV、JSON、Excelなど異なる形式のデータのエクスポートとインポート方法 データのエクスポートとインポートは,データ分析プロジェクトにおいて非常に重要なスキルである。異なる形式のデータを扱うことがあり,それらを適切にエクスポートおよびインポート…
PythonのJupyter Notebookを使用したリポータブルなデータ分析の作成 データ分析の成果物を他の人と共有する際,分析の過程や結果をわかりやすく伝えることは非常に重要である。Jupyter Notebookは,リポータブルなデータ分析を行うのに役立つツールであり,…
データ収集から可視化、モデリング、デプロイメントまでのエンドツーエンドのデータ分析プロジェクトの実行 データ分析プロジェクトは,データを収集し,処理し,可視化し,モデルを構築し,最終的にデプロイメントする複数のステップで構成されている。この…
Vaexという高速なデータフレームライブラリの紹介 データの処理や分析はデータサイエンスプロジェクトの中核であるが,大規模なデータセットを効率的に処理することはしばしば難しい課題である。そこで,高速なデータ処理を実現するためにVaexというライブラ…
StatsModelsを使用した統計モデリングと仮説検定 統計モデリングと仮説検定は,データ分析の中核的なスキルであり,データから洞察を得るために非常に重要である。PythonのStatsModelsライブラリは,統計モデリングと仮説検定を行うための強力なツールを提供…
MatplotlibとSeabornを使ったデータの視覚化の基本 データの視覚化は,データ分析とデータの理解において不可欠なステップである。Pythonにはデータ視覚化ライブラリとしてMatplotlibとSeabornがあり,これらのツールを使うことで美しいグラフを作成し,デー…
Plotlyを使用した対話型データ可視化の作成 データの可視化は,データ分析と情報の共有において極めて重要である。Plotlyは,対話的なデータ可視化を作成するための強力なPythonライブラリで,グラフや図表を対話的に操作し,データのパターンを探索するのに…
NumPyとPandasを組み合わせて高速なデータ操作を実現する方法 データ操作はデータサイエンスと機械学習の中で不可欠なスキルである。NumPyとPandasはPythonのデータ操作において非常に強力なツールであるが,それらを組み合わせて利用することで,さらに高速…
Pandasを使用したデータのクリーニングと前処理のベストプラクティス データ分析プロジェクトの最初のステップは,データのクリーニングと前処理である。クリーンで整然としたデータは,正確な分析とモデリングの基盤となる。この記事では,PythonのPandasラ…
ツェラーの公式を利用して列挙する def Zeller(y, m, d): w = ['Sat', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri'] if m == 1 or m ==2: m += 12 y -= 1 C = y // 100 Y = y % 100 return w[(d + 26*(m+1)//10 + Y + Y//4 -2*C + C // 4) % 7] for y in rang…
データフレームのマークダウン出力ができるようになった >>> pd.__version__'1.0.1'>>> df = pd.DataFrame({"a": list("abcde"), "b": [1,2,3,4,5]})>>> df a b0 a 11 b 22 c 33 d 44 e 5>>> df.to_markdown()'| | a | b |\n|---:|:----|----:|\n| 0 | a | 1…
df2 = df.groupby(群) df2.agg(自作関数の名前)
文字列中に,どのような文字が幾つあったか知りたいって... >>> import numpy as np>>> str = 'あいうえおあおaiueoao999112'>>> index, count = np.unique(list(str), return_counts=True)>>> indexarray(['1', '2', '9', 'a', 'e', 'i', 'o', 'u', 'あ', '…
a, b, c, d の4個の数字を入力とする もしどれかが 0 なら,それぞれに 0.5 を加える x = a * d / (b * c) としたとき,x か 1 / x の大きい方を返す関数を定義せよ 言語は問わない。合計文字数が少ない方がいいぞ! 解答例は,ずっとスクロールダウンして..…
import numpy as npprint(np.nan == np.nan)print(np.nan != np.nan) の結果がどうなるか答えよ 答えは,スクロールした,ずーーーと下の方にある print(np.nan == np.nan) は Falseprint(np.nan != np.nan) は True 正しくは is, is not を使うべきなのだ p…
range と numpy.arange は速度が大違い。numpy.range を使うべし。 import numpy as npdef Eratosthenes(n): """ n 以下の素数をエラトステネスの篩で生成 """ tbl = np.arange(n+1, dtype=int) tbl[1] = 0 for i in range(2, int( np.sqrt(n))+1): if tbl[i…
リストから k 番目の要素を削除したものを返す。k はリストで指示する(要素が 1 個の場合もリストで指示)hoge = ["a", "b", "c", "d"] のときrdel(hoge, [2]) は ['a', 'b', 'd'] を返すrdel(hoge, [1, 3]) は ['a', 'c'] を返すdef rdel(lis, ind): lis2 …
R の .Machine$double.eps the smallest positive floating-point number x such that 1 + x != 1. It equals double.base ^ ulp.digits if either double.base is 2 or double.rounding is 0; otherwise, it is (double.base ^ double.ulp.digits) / 2. Nor…
Python 3 において, import numpy as npa = np.array([[1,2,3], [4,5,6], [7,8,9]])a[1, :] += 3a[1, :] -= 3a[1, :] *= 3は問題ないが, a[1, :] /= 3 はエラーを生じる ---------------------------------------------------------------------------Type…
Python では,ベクトルや配列を別の変数に代入しても,新しいメモリが確保されるのではなくもとのメモリが参照される。これはときどきやっかいなバグのもとになるが,便利に使うこともできる。 >>> import scipy as sp>>> a = sp.arange(10)>>> aarray([0, 1…
a = ("foo", "bar", "baz") のとき,x が "foo" なら 5,"bar" なら 9,"baz" なら 17 を返すようにするなら(他の値はないとする) (5, 9, 17)[("foo", "bar", "baz").index(x)]
Python だと x = "odd" if a%2 == 1 else "even" になるんだけど,以下の方がまだましだと思うのだ x = ("odd", "even")[a%2 != 1]
環境変数にサーチパスを付け加える例としては,先頭に付け加える例が説明されることが多いようにみえる。 もう一つの方法,import sys; sys.path.append("foo") では,当然ながら末尾に付け加える例が説明されることが多いようにみえる。 当然ながら,後者を…
きりがないので,これで止める。 R でもそうだけど,for を使ったところは,使わないように書き換えるのが吉。 単に行数が短くなると言うことではなく,その方が効率的だから。 Java や JavaScript, C, C++ 古くは FORTRAN などの経験者はどうしても自分の経…
d = 'a b c d e's = d.split()label = []for v in s: label.append(v) というようなことをやっているが,作られる label は s と同じだ。つまり,3 行使って無駄なことをしている。
for 文を使って書かれると,何をやっているのか,一目で分からない 以下のプログラム,何やっているかすぐ分かる?scale は何になる? scale = 0.0for t in range(n_dim): for i in range(n_row): if scale < abs(y[t][i]): scale = abs(y[t][i]) for j in r…