2016-08-01から1ヶ月間の記事一覧
jupyter-notifyパッケージを入れると通知できるようになる。デスクトップに通知がフワッと出るだけだから気付かないこともありそうだけど。。 インストール手順は以下参照。 github.com これを入れるとCellの先頭に%%notifyと書くと通知が出るようになる。
series.str.strip() を実行するとすべてstripできる。 ただし、文字列以外の値がSeriesに含まれている場合エラーになるので注意。 read_csvはSeriesに含まれる値によってdtypeが変わるので厄介。。 読み込むときにread_csv('path', dtype=str) のように型を…
前処理の実装時にどんな値がどれだけあるのかを確認するときにSeries.value_counts()を使う。 これだけだとNaNの数が分からないのでSeries.isnull().sum()もよく使う。 参考: note.nkmk.me
以下のようにすると、'a'以外の値はNaNになってしまう。 series.map({'a':1} 'a'以外は元の値のままにしてほしい。。という場合はfunctionを作って渡すしか無いっぽい。 以下のようなイメージ。 def to_int(val): if val == 'a': return 1 else: return val …
Pythonの型判定について。 isinstance(val, int)はサブクラスでもTrueになるというメリットがある。 つまり、valがint64でもint32でもisinstance(val, int)はTrueになる。 参考: stackoverflow.com
以下の関数で判定できる。 import boto3 import botocore BUCKET = "バケット名" def exist_file_in_s3(key): s3 = boto3.resource('s3') try: s3.Object(BUCKET, key).load() except botocore.exceptions.ClientError as e: if e.response['Error']['Code']…
subplotを使って複数のグラフを並べて描いたが6x4のマスで描くとグラフがかなり重なってしまった。 そういう場合はplt.figure() を呼ぶと別の図として描画してくれる(Jupyter上だと縦にグラフが並ぶようになる) 参考: ja.stackoverflow.com
Mobile SafariでWebRTCで動画をWebに表示する時の解像度は自由に選べるわけではなく、 以下の選択肢から選ぶ必要がある。 320x240 640x480 1280x720 参考: stackoverflow.com
以下のようなコマンドを実行するとCドライブのフォルダに移動できるので、そこから色々やればよい。 cd /mnt/c/Users/<ubuntu.username>/Pictures 参考: stackoverflow.com</ubuntu.username>
ターミナルを閉じてもWSLが停止するわけではないっぽい。以下を実行してからexitを実行すると再起動する。 sudo touch /var/run/reboot-required 参考: superuser.com
原因はWindows Subsystem for Linuxのインストール処理の途中でapt-getか何かがネットワークアクセスをしているが、 Proxyの設定がされていないのでインターネットと通信できず処理が止まっていたためだった。インストール完了前のUbuntuで動いているapt-get…
rsyncのコマンドを以下のようにするとできた。 ポイントはサーバにログインするsshのコマンドを-e "ssh -p 10022"のように書くのでは無く.ssh/configにHOST dev_serverの設定を書くこと。 -eを使ってsshコマンドを書いた場合、-iオプションを使っても秘密鍵…
原因はWindows Subsystem for Linuxがinotifywaitが使っているファイル監視APIに対応していないため。 Windows 10 Insiders build #14942で対応済らしいが、俺が使っているWindows10のバージョンは14942より低いのでだめだった。。 本当はファイル変更通知を…
括弧の中のIPアドレスがIPv6アドレスになっているのがポイント。 原因はIPv4アドレスしか使えない環境なのにIPv6アドレスでアクセスしていること。 以下のようにオプションでIPv4を強制すると直る。 sudo apt-get -o Acquire::ForceIPv4=true update 参考: …
原因は社内プロキシが通信をブロックしていること。環境変数のHTTP_PROXYなどは設定してあるから大丈夫だと思ってた。。 /etc/apt/apt.conf にプロキシ設定を書かないといけないっぽい。 以下 sudo nano /etc/apt/apt.conf を実行して以下をファイルに書き込…
以下を参考に/etc/hostsにホスト名を追加すると直った。 qiita.com
WebRTCを使いたい・・となったのでサンプルコードを探し、発見したコードが Navigator.getUserMedia を使った実装だった。 それをMobile Safariの上で動かしてみたが思い通りに動かずはまった。。 原因は Navigator.getUserMedia がすでにDeprecatedになって…
classification_report関数を使うと適合率・再現率・F1値などが一気に出せて便利。 今までsklearn.metrics.precision_scoreとか使って一個ずつ出してた。。 参考: looseleaf0727.hatenablog.jp
どのアルゴリズムを使うべきかを判断するフローチャートがあるのでそれを使う。 詳細は以下参照。 qiita.com ただし、これはscikit learnが実装しているアルゴリズムのみを対象としているのでDeep Learningなどは出てこない。
iOS/Androidでcanvasに描画した画像をメールで送信する手順は以下。 ・以下の処理を実行する(保存ボタンタップ時の処理で行う) const image = canvas.toDataURL("image/png"); window.location.href=image ・別タブで画像が表示される ・画像を長押しする…
以下のコンペのデータ(学習データは1400万行ぐらい)の前処理・学習・予測まで回そうとすると、手元のマシンで15時間かかる・・・ということがわかったのでパフォチューした。 www.kaggle.com やったことは以下。 Jupyterの全セルに%%timeを埋めて計測(デー…
定期的な予定を開き、「定期的なアイテム」をクリックすると時間を変更するウィンドウが表示される。 手順の詳細は以下参照。機械翻訳されたページだから読みづらいが。。 https://www.extendoffice.com/ja/documents/outlook/4192-outlook-calendar-change-…
画像などのバイナリファイルをgitにcommitすべきかどうかだが、自分はすべきというスタンス(1GBを越えるぐらい大量でなければ)。 理由は以下。 画像などもシステムを動かすのに必要なリソースであり、コードの近くに置くべき(ネットからとってくるとか、…
日付(アクセス日時とか登録日とか)が特徴量に含まれている場合、どう前処理すべきか。 そのまま使うことは少ない。理由は季節性・曜日の影響などが分からないので。解く問題によって変わるが、以下のようなやり方がある。 年・月・日にそれぞれ分ける。年…
括弧でくくってreturnされたオブジェクトのメソッドを呼び出すということはできるが。。 まあ素直に関数を定義して使った方がよさそう。 参考: programming-study.com
原因はカテゴリ変数の場合は数値に変換してからLightGBMに渡さないといけないため。 trainメソッドにはcategorical_featureという引数があり、これでカテゴリ変数がどれか指定するがその値は以下の制約がある。 ・int32の範囲の数値 ・0から連続した数値にな…
以下のようなエラーメッセージが出た。 An error occurred while uninstalling package 'conda-forge::cryptography-2.3.1 ERROR conda.core.link:_execute(507): An error occurred while installing package 原因は不明だが、virtual envを作り直して再度…
以下と同じ現象。 stackoverflow.com これはIntelliJ/PyCharmのバグで、Issueがあがっているがまだ対応されていない。 https://youtrack.jetbrains.com/issue/PY-25931 もう報告されてから1年以上経ってるんですが。。 こりゃデータ分析にIntelliJは使えない…
モチベーションは以下。 JupyterNotebookから自分が作成した.pyファイルを読み込む場合、%load ./tmp.py のように指定することになる この時のカレントディレクトリはAnacondaPromptでjupyterコマンドを実行したパスになる。もしくはJupyterのオプションでも…
一度Jupyterサーバを終了し、実行し直すと発生した。 JupyterサーバのURLを問い合わせるダイアログに新しく起動したJupyterサーバのURLを入れてもだめ。 原因はよくわからないがIntelliJを再起動したら直った。