pd.read_csv でデータを読み込んだ時の列の型

自分が主催をしている Pandas 勉強会で read_csv について学んだことの一部をここに記載します。結論を言ってしまうと、 csv を受け取る時は列の型を聞いておく必要があるよねという話です。最後に、勉強会で、 pd.read_csv の引数である keep_date_col につ…

Pandas の Series オブジェクトと DataFrame オブジェクト の四則演算(足し算)した時の挙動についていろいろ試してみた

Pandas の Series オブジェクトと DataFrame オブジェクト の四則演算(足算)の挙動を調べてみました。結果、 Series オブジェクト の index のラベルと DataFrame オブジェクト の columns のラベルがマッチする時、計算が行われることがわかりました。また…

Pandas の obj[i] と obj.loc[i] などの違いについて

Pandas の Series オブジェクトの話になります。 Series オブジェクトを obj とした時、 obj[i] と obj.loc[i] と obj.iloc[i] の違い、さらに obj[s:e] のようにスライスした時の動作の違いを理解するために、コードを書き実行して動作を確かめました。確認…

三面体のサイコロを2000回投げたとき、それぞれの面の出る回数の分布

1. はじめに (注意:一般的に三面体のサイコロというものは現実には存在しません。説明の便宜上、3つの面をもつ空想のサイコロのことを三面体のサイコロと表現しています) Pandas 勉強会で、サンプルの状態が割とよく発生することなのか、稀にしか発生しない…

Pandas の DataFrame をエクセルで開く自作関数

表データを可視化したい時、まずエクセルで生のデータを表示したい時があります。これは具体的には「Pandas の DataFrame を Excel で保存し、それを開く」という作業です。この作業を自動化したら、便利だったので、ここに紹介します。 1. 動作環境 OS MacO…

(勉強会用資料)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" の様な曲面をニューラルネットワークで学習させてみます。ディープラーニングの話です。目的:多層ニューラルネットワークが色々な関数を近似できるとは聞いていたが、それが本当かどうか確かめる。多層ニューラルネット…