きょうも亀だけど

機械学習やデータサイエンスの勉強記録など

Python

Python文法メモ

関数呼び出し時のアスタリスク 引数に渡したリストやタプルをバラして渡せる。 T.Composeの引数に渡すときなど可変長引数に柔軟に渡せるのが便利。 items = [1, 2, 3] func(*items) # func(1 ,2 ,3) 【参考】 qiita.com 三項演算子を使ってリストに入れる要…

AtCoder Beginner Contest 174, 175, 176参戦

ABC3つに参加した。 AtCoder Beginner Contest 174 A, B, Dの3完で終了。Cは数学的な知識を使うんだろうなというのは読めたけど見いだせず。解法見てなるほどなと納得した。 github.com AtCoder Beginner Contest 175 A, B, Cの3完で終了。解けたけど時間か…

AtCoder M-SOLUTIONS プロコンオープン 2020参戦

A, B, C, Dの4完で終了。PCが起動しなくて初動10分遅れで焦った。Dまでは簡単だったけど少し時間がかかりすぎた。C以上をいかに速く解けるようになるかが次の課題。 また、リストへのアクセスが多いと計算量的にイケると思ってもTLEになってしまう。ループ内…

AtCoder Beginner Contest 171, 172, 173参戦

ABC3つに参加した。 AtCoder Beginner Contest 171 A, B, C, Dの初の4完で終了。Cはアルゴリズムをググって見つけてしまった。DはTLEで苦しんだけど、怪しいところ見つけてギリギリでAC。 TLEからACに到達する際に以下の気付きがあった。 numbersという名前…

AtCoder Beginner Contest 169, 170, NOMURA, 東京海上日動 プログラミングコンテスト2020参戦

4つのコンテストに参加した。 NOMURA プログラミングコンテスト2020 A, Bの2完で終了。得点配分を見た上での作戦として、「Bまでを早解きし、Cに手を出せればラッキー」で挑んだ。 前回の反省を踏まえ、コメントや命名よりも早さを意識できたのがよかった。 …

AtCoderに挑戦開始&AtCoder Beginner Contest 168参戦

AtCoderに挑戦開始した。言語はPythonでやっていく。 先日、最初のコンテストとして「AtCoder Beginner Contest 168」に参戦し、A、B、Cの3完で終了。 過去問を含めた体感としては、「A~Cまでは何とかなる、D以降はアルゴリズムを学ばないと無理」といった…

文字列からクラス名を取得してインスタンス生成

これのgetattrを使うパターンでうまくいった。 前回の記事で書いたyamlファイルから情報を取得する方法を利用し、 必要に応じてインスタンスを作成する仕組みを作れた。 便利。 qiita.com

yamlの読み込み

設定ファイルを読み込む形を作りたくて調べた。 最初はxmlでやろうと思ったけど、yamlの方が可読性が高いとのことで 使ってみることにした。 python.swift-studying.com これでうまくいった。

read_csvでファイル名が日本語のcsvを読み込む

pandas.read_csvで pandas.read_csv('../日本語ファイル.csv') で読み込むと OSError: Initializing from file failed が発生してしまう。 読み込みエンジンのデフォルトであるCだと半角にしか対応していないとのことで、 エンジン指定をPythonに変更したら…

フォルダが存在しない場合に作成する処理を、存在確認なしで実行

csv出力の際に、作成先フォルダおよび中間フォルダが存在するかの チェックを入れてから出力するのがめんどくさい。 一気に出力する方法がないか調べたところ、 os.makedirs(フォルダパス, exist_ok=True) でいけることが分かった。 note.nkmk.me 便利

Prophetをimportするまでにつまづいたことと対応

Anaconda環境でProphet使おうと思い、 install後にimportしようとしてつまづいた。 なんとかimport成功まで行ったので手順を記録する。 参考にさせてもらった以下スライドのP.15に沿って、 まずはpystanをpip installした。 Prophet入門【Python編】Facebook…

pandasで縦持ちデータを横持ちデータにする

時系列データで種類を表す列に複数パターンが存在するとき、 グラフ表示のために横持ちにしたくなった。 以下のページが参考になったのでやってみる。 blog.amedama.jp pivot_tableを使えばいける。 便利。 Jupyter Notebookを貼り付ける方法が見つかったか…