(勉強会用資料)Python Pandas もくもく勉強会 in 新潟 #3

1. はじめに 2. import 文 3. 出現頻度のカウント 4. Excel あるある 4.1. 作者の主観により特定の行がデータの区切りとなっていると思われるエクセルをどうにかする 1. はじめに 新潟で Python Pandas もくもく勉強会 というものを主催しています。本記事は…

(勉強会用資料)Python Pandas もくもく勉強会 in 新潟 #2

1. はじめに 2. import 文 3. Series または DataFrame の index を1始まりにする方法 3.1. Series の場合 3.1.1. 使用するデータ 3.1.2. 方法 3.2. DataFrame の場合 3.2.1. 使用するデータ 3.2.2. 方法 4. Series または DataFrame を比較して一致する行を…

(エクセルで作成した csv ファイルについて)一つのセルに書かれている複数の行を、テキストエディタ Emacs で一つの行で見れるようにする方法

1. はじめに 2. 注意事項、制限 3. 入力ファイル 3.1. エクセル 3.2. 入力ファイルの初期状態 4. 方法 4.1. 1行への変換 4.1.1. 検索する正規表現 4.1.2. 置換のための emacs lisp 式 4.1.3. 置換実行後 4.2. 複数行への変換 4.2.1. 検索する正規表現 4.2.2…

Matplotlib でお絵かきアプリっぽいものを作る

Matplotlib でお絵かきアプリっぽいものを作ります。 1. matplotlib のバージョン 2. 仕様 3. コード 4. コードの説明 5. 実行結果 6. まとめ・考察 7. 今後の予定 8. 宿題 1. matplotlib のバージョン GUIのAPIの仕様は変わる可能性が高いため、matplotlib …

勾配降下法により PCA(主成分分析)の第2主成分を数値解析的に求め、PCAについて理解を深める

1. はじめに 2. 前回記事 3. サンプルデータについて 4. 実装の方針 5. ソースコード 6. ソースコードの説明 7. 出力結果 8. 考察 9. 第3主成分を求めるコード 10. 出力結果(第3主成分を求めるコード) 11. まとめ 1. はじめに 前回記事で、第2主成分は「第1…

点を移動させる行列と、その固有ベクトルについて可視化して理解を深める

目次 目次 1. はじめに 2. 固有ベクトルについて 3. 仕様 4. ソースコード 5. ソースコードの説明 6. 出力結果 7. 考察 8. まとめ 1. はじめに 2x2の行列を点(x, y)に適応すると、新しい点に移動します。本記事は、この行列による点の変換を可視化し行列の理…

勾配降下法により PCA(主成分分析)の第1主成分を数値解析的に求め、PCAについて理解を深める

1. 目次 1. 目次 2. はじめに 3. 参考文献 4. PCAの第一主成分について自分が理解していること 5. 検証の方針 6. ソースコード 7. 出力結果 8. まとめ・考察 2. はじめに 本記事は、主成分分析(以下PCA)について自分の理解があっているか確かめた時の記録で…

SciPy Japan 2019 に参加しました

前に申し込んでいた SciPy Japan 2019 に参加してきました。予定通り4/23, 4/24 に開催されました。無事に開催されて良かったです。開催の内容は、午前中はチュートリアル、午後は Enthoughtさん による公演や Science に関する問題を(一部) Python を使って…

sympy でニューラルネットワークの重みの更新に使用する式を計算グラフにしてみる

1. はじめに sympy(https://www.sympy.org/en/index.html) を使用し、ニューラルネットワークの重みの更新に使用する式を計算グラフにしてみます。具体的には、 sympy を使って、損失関数の勾配の計算を計算グラフとして表し、それを graphviz で画像に出力…

Numpy 入門 (機械学習勉強会 in 新潟 2019/03/23)

Numpy 入門 */--> /* @licstart The following is the entire license notice for the JavaScript code in this tag. Copyright (C) 2012-2018 Free Software Foundation, Inc. The JavaScript code in this tag is free software: you can redistribute it …

SciPy Japan 2019 に参加します

SciPy Japan 2019 に参加します。www.scipyjapan2019.scipy.org開催は4/23, 4/24の二日間、場所は東京。チュートリアル、トーク、ポスター発表が行われるようです。チュートリアルも二日間に渡って行われるようです。英語のリスニングができずに、ほとんど理…

Wikipediaの文書を使って文の長さの平均を求める

Wikipediaの文書を使って文の長さの平均値と最頻値を求めました。機械学習勉強会 in 新潟で発表した内容です。Wikipedia の約60億文字以上のXMLファイルから、独自に定義した文を抜き出し、その文に対して統計量を求めました。使用言語はいつも通りPythonで…

Pythonで2次元データ作成ーポリゴンに収まる点の集合

前回の続きです。今回は、前回に引き続き、ポリゴンに収まる点の集合を作成します。アルゴリズムは簡単で、ランダムに点を打ち、それがポリゴンの内側であれば点を残す、ポリゴンの外側であれば点を消すを繰り返すだけです。「ポリゴンの内側か?」を判定す…

Pythonで2次元データ作成ー三角形に収まる点の集合

前回の続きです。今回は、前回に引き続き、Pythonで三角形に収まる点の集合を作成します。アルゴリズムは簡単で、ランダムに点を打ち、それが三角形の内側であれば点を残す、三角形の外側であれば点を消すを繰り返すだけです。「三角形の内側か?」を判定す…

Pythonで2次元データ作成ー四角形に収まる点の集合

Pythonで四角形に収まる点の集合を作成します。アルゴリズムは簡単で、ランダムに点を打ち、それが四角形の内側であれば点を残す、四角形の外側であれば点を消すを繰り返すだけです。「四角形の内側か?」を判定する関数を作成し、その関数に様々な点を与え…

numpyの2次元配列の非ゼロ領域を囲む四角形の情報を取得する方法について理解する

本記事は、Stackoverflowにに記載されているnumpyの2次元配列の非ゼロ領域を囲む四角形の情報を取得する方法について理解を深めるための記事です。 1. 目次 1. 目次 2. numpyの2次元配列の非ゼロ領域を囲む四角形の情報を取得する方法 3. 解説 4. 注意点 2…

nvprofコマンド と NVIDIA Visual Profiler(GUIアプリ) を使って GPUのプロファイリングを行い、tf.nn.conv2d の計算時間を計測してみる

以前の記事で tf.nn.conv2d を複数GPUでやったら遅かったという記事を書いたのですが、「オーバーヘッドも含めて計測しているため遅いだろう」というご指摘があったため、もう一度検証してみました。最近参加している勉強会の主催者の方から、NVIDIA Visual …

Pythonでドーナッツの形を描画する

いきなりですがPythonでドーナッツの形を描画します。まず、頭の中でその形をイメージします。次にそれを数式で表し、Python 3 で実装します。最後に描画されたものをみてみます。 1. 頭の中でドーナツの形をイメージする ドーナッツの形をイメージします。…

TensorFlowで複数GPUで2次元畳み込みやってみる(tf.nn.conv2d with multiple GPUs)

1. やったこと TensorFlow の tf.nn.conv2d関数 を GCE 上でK80とV100のGPUを1個〜8個を用いて、データ並列で実行。処理速度の検証を行った。 2. わかったこと 以下のコードを試した結果、CPUのほうが3倍早く、期待はずれの結果となってしまった。こうすれ…

数値をエクセルの列を表すアルファベットに変換する関数

前回の記事で、数値をエクセルの列を表すアルファベットに変換するプログラムを自作しましたが、stackoverflow でもっと良い方法を見つけたため紹介いたします。そのコードを参考に関数を作成しました。このような問題は、みんながよく考えそうなことですか…

エクセルの列を表すアルファベットを数値に、または数値をエクセルの列を表すアルファベットに変換する話

以前の記事で、エクセルの列を表すアルファベットを数値に変換するプログラムを書いたのですが、今回は、その逆変換つまり、数値をエクセルの列を表すアルファベットに変換してみようと思います。———————— ※2018/11/15追記 数値をエクセルの列を表すアルファ…

少数で表される数値の出現頻度を数えてヒストグラムを作成したいAさんの話(問題)

題名の通りの問題です。問題は以下の通りです。汚文字ですいません。問題文では少数の最小値と最大値が-2.0と2.0で、それを8つの領域に均等に分割していますが、これは一例にしかすぎません。これら(最小値、最大値、分割数)の数字が変化しても機能するよう…

指数移動平均(ema)について考察する

指数移動平均(Exponential Moving Average 以下 ema)の仕組みや動作がよくわからないので、計算式をPythonで実装し、関数に適用してみます。 emaの計算式は以下のWikipediaのページを参考にしました。https://en.wikipedia.org/wiki/Moving_average#Exponent…

TensorFlow で「y=x*(x-1)*(x-2)」の極小値を求める

TensorFlow を利用し関数の局所的に凹になってる箇所ー Local Minima ーすなわち数学的にいう極小値を求めてみようと思います。今回、対象とする関数は 「y = x*(x-1)*(x-2)」です。グラフにすると以下のようになると思います。汚くてすいません。ちなみにこ…

ニューラルネットワークで"Z = x*x + y*y"を学習させてみた

いきなりですが、関数 "Z=x*x + y*y" の様な曲面をニューラルネットワークで学習させてみます。ディープラーニングの話です。目的:多層ニューラルネットワークが色々な関数を近似できるとは聞いていたが、それが本当かどうか確かめる。多層ニューラルネット…

numpy.sumのaxisを指定したときの挙動が覚えられないのでイメージ化してみた

numpyの関数にはnumpy.sumやnumpy.anyなど引数にaxisを指定できる場合があるのだけど、いまいちイメージがつかめなかったのでnp.sumのaxis指定したときの挙動のイメージをお絵描きしました。2次元の行列に限定した話です。以下の図のように「axis=0のときは…

エクセルのアルファベットの列番号を数値に変換するPythonプログラム

昼休みの暇つぶしに書いたコードを載せます。 エクセルのアルファベットの列番号を数値に変換する簡単なPythonプログラムになります。例: "A"は1 "Z"は26 "AA"は27アルファベットを数値に変換し、各桁の重みをかけて右から左へ順に足しこんで行くプログラム…

2つの線の交点を表す数式を作ってpython matplotlibで検証

XY座標に点A1(Xa1, Ya1), A2(Xa2, Ya2), B1(Xb1, Yb1), B2(Xb2, Yb2)があったとして、線A1A2 と 線B1B2の交点を数学的に求め、数式があってるか確かめようという話。以下のように数学的に求めます。 まず交点の式をだします。 次に上画像の一番下に書いてあ…

無人島で直角三角形の角度をかなりアバウト(誤差20%以内)に計りたい時に使えるかもしれない簡単な計算式

おそらく、無人島の先生がこの直角三角形のアバウトな角度出しなさいという問題に答える生徒しか使わない気がしますが一応書いておきます。無人島で直角三角形ABCの角度をアバウトに図りたい時は角度 = 60 * 高さ / 底辺を計算します。計算した角度から…

二値画像にk-meansを適用し、細線化?してみる

前回の続きです。今度は二値画像にk-meansを適用し、細線化?してみます。 二値画像においてk-meansが細線化や情報削減に利用できるのではないかと思えるような結果になりました。今回は、scipyのkmeans2を使用し、代表点の初期配置を領域内に収めることで、…