python:ローカルサーバーを起動する

anacondaプロンプトで

(base) C:\Users\omoiy>python -m http.server 8080

と打つと、
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) …
127.0.0.1 – – [04/Nov/2018 23:11:06] “GET / HTTP/1.1” 200 –
127.0.0.1 – – [04/Nov/2018 23:11:07] code 404, message File not found
127.0.0.1 – – [04/Nov/2018 23:11:07] “GET /favicon.ico HTTP/1.1” 404 –

と返ってくるので、

ブラウザ上で

http://localhost:8080/

と打つと

Directory listing for / というローカルサーバーの
画面になります。

webブラウザの画面

でも、Flaskを使ったほうが良さそうです。こちらは別途アップします。

圧倒的python:numpy データサイエンス受験用

かずまなぶです。

ランダムウォークを作ってみた 株式チャートっぽい

日々、独学で学び続けているデータサイエンスの分野ですが、体系的に学びたい思い、このたび

東京大学 工学系研究科 技術経営戦略学専攻


グローバル消費インテリジェンス寄附講座

【第三期社会人向けデータサイエンスコース】

というものに応募してみました。

しかし、応募者数が受講可能人数を上回ってしまい、とりあえずpythonスキルのテストを実施して人数を絞るとのことで、本日受験いたしました。

※会社休んでまで受験してますので、絶対に受かりたい~。(; ・`д・´)

テストの前に、今一度 numpyを復習してみましたので、貼っておきます。

ここには出てきませんが、np.split(A,2)とかnp.split(A,2,axis=1)とかスプリット系は絶対必須です。

そのほか 順序入れ替え系の参考サイト

参考書:Pythonによるデータ分析入門 第二版

圧倒的python:numpy についてまとめる

こんにちは かずまなぶ(=゚ω゚)ノ です。

きょうは、python numpy についてまとめました。超基本的なことだけです。

応用例や他の便利メソドなどはdocsで確認してください。

基本形を作る

調べる

変形する

演算する

ベクトル演算する

行列演算する

連結する

削除する

pandas.DataFrameにする

数学関数

インデックス指定をする

圧倒的python:moduleを自作しよう!!

こんにちは かず まなぶです。

今日は、

コワーキングスペース秋葉原Weeyble

さんにお邪魔して、もくもく会の仲間たちと揉まれながら(酒を飲みながら)モジュールの作り方を学んでいきます。※本当はword pressをやりたかった・・・

モジュールを作ったら、pathの通っているディレクトリに なんちゃら.py で保存しましょう。

私はjupyter notebokを使っているので、そこのディレクトリにいれました。

では、自作モジュールを使ってみましょう。

やりました! 

自作モジュールで定義したvalue1 も呼び出せているし 関数function1もちゃんと機能しています。

class1もmethod1も機能しています!

あとはアイデア次第で無限の可能性があります。

お疲れさまでした。目標達成です。

今日は帰って寝ます。最後まで見ていただきましてありがとうございました。

(=゚ω゚)ノ かずまなぶ。

圧倒的python:関数 そして クラスとメソドの作成方法

こんにちは (‘ω’) かず まなぶ です。

今日も Python やっていきましょう。 実務でコードを書いているとモジュールの作り方を忘れがちなので、備忘録としてまとめておきたいと思います。

が!その前にモジュール以前であるクラスとメソッドの作り方、そしてさらに戻って、関数の作り方まで Python 始めたばっかりの方の為に残しておこうと思います。

  1.  関数の作り方
  2. クラスとメソッドの作り方
  3. モジュールの作り方

例題として二つの数の平均を求めるプログラムを考えてみます。

ベタ打ち:関数もなにも使わない場合

まず関数を使わない場合のシンプルなコードを書いてみます。

5回繰り返してみましょう。

1行だけ作って、それをコピーして中の数値を書き換えただけです。シンプルですね。

関数を使った場合

こちらも5回やってみました。

function 1という関数を定義して引数arg1,arg2を指定することによって毎回同じ 行の answer = ( arg1 + arg2 ) / 2 という計算を繰り返しています。

5回繰り返す程度では逆にコード自体は長くなっています。

しかし、

実用面では関数を何千回、何万回繰り返す

場合や

演算式がとても複雑になりがち

なので、 関数としてまとめておくと、圧倒的に全体の行数は減りますし、修正の手間は格段に少なくなります。

相当昔からあるプログラミングの表現方法なのでしっかり使えるようになりましょう。

実際仕事で何かしら、計算しようと思ったらこの

関数だけあれば、なんとかなります。

クラスとメソドを作ってみる

もっとこのプログラムに拡張性を持たせたり流用したりソフトウェアっぽくしてみたり、そういった場合に次のクラスとメソッドを使ってみましょう。

メソドといえども、最初は関数として作ってみて、動きを確認しましょう。

次にクラスとメソドの基本形(ひな形)を確認しましょう。

では、関数をメソドに書き換えていきましょう。

と、こうなります。

実際、仕事でやる技術計算でも、使ったことはありません。結果が解ればいいので、ベタ打ちで数式を書いていって、まとめたほうがすっきりするところは、関数にまとめなおす感じです。

次回予告

本日も、最後まで見てくださいまして、まことにありがとうございました。次回は、モジュールの作り方をやっていきましょう。(‘ω’)かず まなぶ

圧倒的に自動化:pyautogui でマウスとキーボードを自動化 on python

こんにちは、(‘ω’) かず まなぶ です

今日も圧倒的仕事の自動化について使えるモジュールを紹介したいと思います。

その名も、パイオート グイ ( pyautogui ) .

ネーミングが長いんで私は省略して ピーエー( PA ) と呼んでいます。

マウスの動きだとかキーボードのタイピングの動きを丸ごと Pythonからコードによって自動 操作してしまうという、

” 原始的で画期的 “

なモジュールです。

ディスプレイ操作

#

マウス自動操作

#

キーボード自動

#

前回ご紹介いたしました selenium と組み合わせると、自動化の実現可能性が飛躍的に高まります。

本日も最後まで見ていただきまして誠にありがとうございました。(‘ω’) かず まなぶ

圧倒的に自動化:Seleniumを使う。webブラウザ on python

今日は ”(‘ω’) かず まなぶ” です。

最近 Web ブラウザを使ったソフトウェアってすごく多くないですか?

毎日の仕事の中で

同じような繰り返し作業

があったらそれ、

自動化してみたい

と思いませんか。

私は selenium を使っています。

今日は selenium のさわりだけですが、皆さんに紹介したいと思います。

検索エンジンに調べたいワードをに入力して検索するというところまで自動化してみました。

このように、アイディア次第では色んなことができます。

今回は Google Chromeで行ったので簡単でしたが、これを Internet Explorer 11でやろうとすると結構大変でした。

レジストリの追加をするという作業があります。

これを会社でやろうとすると十中八九、情報システム部にお叱りを受けます。気をつけましょう。

Internet Explorer 11の場合

1. 公式サイトより IEDriverServer_Win32_3.9.0.zip をダウンロードし解凍。webdriver パス指定の場所に移動。
2. IEの詳細設定の拡張保護モードを有効にする。
3. IEのセキュリティを中、保護モードをオン。(制限付きサイトだけは高。なぜか変更できない)
4. 64ビット版の指示の通り regedit でレジストリを編集
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHEを新規に作成。iexplore.exeを新規作成し DWORDを16進数で0に設定した。
5.ブラウザの拡大を100%に設定
6.PCを再起動

しかし、疑問点がいくつか。

(1)なぜ64bitなのにwin32のドライバーで動くのか?x64では動かない。
(2)公式サイトによると拡張保護モードは無効にすると書いてある(逆)。

本日も最後まで見ていただきまして、ありがとうございました。(‘ω’) かず まなぶ

圧倒的使い分け:pythonのlist , array , numpy.array , pandas.Seriese , pandas.DataFrame

今日はかずまなぶです。

Python でデータを処理するときにベクトルだったり行列だったり使うわけですが、じゃあどれを使ったらいいのかって迷ったことありませんか?私はいつも迷ってます。

そんな毎日に終止符を打つべく今回はしっかりと、まとめていきたいと思います。

私たちの選択肢は,

  1. list                             (Python標準の組み込み型 インポート不要)
  2. array.array              (Pythonの標準モジュール)
  3. numpy.array           (数値計算ライブラリ NumPy。行列演算)
  4. pandas.Series          (データベース分析ライブラリPandas。ベクトル)
  5. pandas.DataFrame(データベース分析ライブラリPandas。行列)

list

まずは、listを確認しましょう。

カンタンにデータの入れ物をつくるならlistは便利ですね。最も輝かしい使い方は、

for構文のインデックス番号として

使われることだと思います。

こんな応用もあります。よく使います。(zip , enumrate)

array.array

では次の、arrayモジュールの array.arrayを確認しましょう。

結論として、これは使う必要はありませんね。忘れましょう。

numpy.array

ここからが本番、numpy.array です。

行列演算をするなら

これで決まり。

pandas.DataFrame

いよいよpandasです。pandas.Seriesはぶっちゃけ要らないです。なので飛ばして、pandas.DataFrameを確認しましょう。データの取り込み、表計算やSQLのような使い勝手です。時系列処理、文字列と数値が混ざっているデータでも処理できます。データの欠損があっても取り込めますし、除去することもできます。

まさに、データベース分析ライブラリ。

pandas.DataFrameはデータの取り込みと成形は得意ですが、演算はそれほどではなさそうです。演算はnumpy.narrayに任せましょう。

まとめ

  • それぞれの得意分野を明らかにしました。
  • array.array と pandas.Series の存在は忘れましょう。
  • データの操作は、以下のような順番が良いと考えます。
  1. pandas.read_csv(“ファイル名.csv”,index_col=0) でデータフレームとして取り込む。
  2. pandasでデータフレームを成形する。
  3. データフレームからnumpy.arrayに変換して、演算する。
  4. 結果を再びpandasのデータフレームに変換する。

本日も最後まで見ていただきまして誠にありがとうございます。

(‘ω’)かず まなぶ

次回からは、取り込んだデータを整形するというテーマでpandas.DataFrameを深掘りしていきましょう。