- 1. 【Python】dict in listやinstance in listをsortする方法
- 2. pytube3を使って、youtubeの動画をダウンロードする方法
- 3. jupyter notebook でコマンドを実行する方法
- 4. Mac OSにpyenvをHomebrewを使ってインストールしたけど、pythonのバージョンが切り替わらないときの対処法
- 5. Kaggle~住宅分析③~Part1
- 6. EC2のGPU環境でtensorflow動かしたメモ
- 7. ゼロから始めるLeetCode Day79「1282. Group the People Given the Group Size They Belong To」
- 8. PyCaret2.0 (pycaret-nightly)を試してみた
- 9. Python と selenium でAmazonの購入履歴を取得する
- 10. DataFrameで’nan’が消えてしまうのを直す。
- 11. C系プログラマが始めるPython
- 12. VSCodeでPC毎のPython仮想環境の設定
- 13. ゼロから始めるLeetCode Day78 「206. Reverse Linked List」
- 14. ConfluenceのPython APIでページ作成&ページ移動してみた
- 15. 初心者が機械学習をやってみたら
- 16. 極方程式で花の曲線を描いてみた
- 17. Python Tips
- 18. Cloud Pak for DataのNotebookでDb2のデータを読み書きする
- 19. はじめてのPython3 ~はじめての計算編~
- 20. グラフの最短経路探索アルゴリズムの速度計測
【Python】dict in listやinstance in listをsortする方法
listのソートはよくありますが、ここではdict in listやinstance in listをsortする方法を書き留めます。
sortは全て昇順とします。
sortで使用するのは組み込み関数の`sorted`です。## 動作確認済みのPythonバージョン
– 3.7
– 3.8標準ライブラリdataclassesを使用しなければ3.6とかでも動くはずです
# dict in list
dict in listの場合はsorted関数のkey引数を指定してあげる必要があります。
keyを指定する時にlambda使って無名関数で`lambda x: x[‘a’]`でもいいですが、公式によると標準ライブラリoperatorのitemgetterを使用した方が高速らしいです(検証していないのでなんとも言えませんが)。https://docs.python.org/ja/3/howto/sorting.html#operator-module-functions
> Python は高速で扱いやすいアクセサ関数を提供しています。 operator モジュールには i
pytube3を使って、youtubeの動画をダウンロードする方法
## 環境
OS: mac os x 10.15.5
python: 3.8.0
pythonバージョン管理: pyenv## pytube3とは
[pytube](https://github.com/nficano/pytube)はyoutubeの動画をインストールするpythonライブラリです。
googleさんは[youtube Data API](https://developers.google.com/youtube/v3/getting-started?hl=ja)を公開しておりますので、ビジネスなどでyoutubeの動画のダウンロード機能を使う場合は、pytubeは使わないことをおすすめします。pytubeはあくまで、私的で非営利な活動で、過度なリクエストを送らない程度にお使いください。
## pytube3をインストール
python3 をお使いの場合は、pytube3をインストールしてください。“`
pip install pytube3
“`python2 をお使いの場合は、pytubeをインストールしてください。
“`bash
p
jupyter notebook でコマンドを実行する方法
jupyter notebookでコマンドを実行するには先頭に`!`をつけることでできます。
“`
!ls!pwd
“`google の[colab](https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja)でも同じように実行できるので、画像の転送し、画像の有無など`!ls`で確認できます。
Mac OSにpyenvをHomebrewを使ってインストールしたけど、pythonのバージョンが切り替わらないときの対処法
## 問題
mac osでHomebrew(パッケージ管理ツール)を使って、pyenvをインストールし、pythonのバージョンをglobalに設定してみたけど、pythonのバージョンが切り替わらない。“`shell
$ brew install pyenv # pyenvのインストール
$ pyenv install 3.8.0 # pythonのバージョンのインストール
$ pyenv global 3.8.0 # pythonのバージョンをglobalに設定
$ python -V # バージョンを確認
2.7.7 # デフォルトのバージョンと変わらない問題“`
## 解決法
ホームディレクトリの`.bash_profile`または`.zshrc`にeval “$(pyenv init -)”を加え、`source`コマンドで適応させる“`
$ vim .zshrc
$ source .zshrc
“`
Kaggle~住宅分析③~Part1
# 1. はじめに
住宅分析もかれこれ3回目になりました。
前回までスコアが0.17付近でモデルを変えてもこれ以上伸びないなーといった感じ。今回はCRISP-DMを用いた標準プロセスで実施。
※Shearerらが提唱しているCRISP-DM(CRoss Industry Standard Process for Data Mining)データ分析のプロセスには、標準プロセスとしてCRISP-DMとCRIISP-DMよりデータ分析部分にフォーカスしているKDDがあります(今回はKDDの説明は省略)
CRISP-DMのプロセスは①ビジネス理解→②データ理解→③データ準備→④モデリング→⑤評価→⑥適用というふうに進んでいく。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621150/b7e3e150-16c3-ebce-88d2-1e3e0a15fcf3.png)
図1 CRISP-DMといった流れで進め、なおかつこれらについて自分の考えたこ
EC2のGPU環境でtensorflow動かしたメモ
機械学習の勉強でTensorflowをCPU環境で動かしていたけど、GPU環境で動かすとどれくらい変わるのか確かめたかった、程度だけど思ったより色々とハードルがあったので今後のためのメモ
### GCPで挫折
初期登録時に無料枠があったので、最初にGCPを試した。
CPUインスタンスでサンプルが動いたのでGPUインスタンスを立ち上げようとしたら
`Quota ‘GPUS_ALL_REGIONS’ exceeded. Limit: 0.0 globally`
とお断りされた[ここ](https://stackoverflow.com/questions/53415180/gcp-error-quota-gpus-all-regions-exceeded-limit-0-0-globally)を見るとリソースの割り当てを要求しないといけないらしい
ということで、GPU1個要求したら“`
Unfortunately, we are unable to grant you additional quota at this time. If
this is a new proj
ゼロから始めるLeetCode Day79「1282. Group the People Given the Group Size They Belong To」
# 概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。
どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。
早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。
と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。
ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。
[Leetcode](https://leetcode.com/)
Python3で解いています。
[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)
前回
[ゼロから始めるLeetC
PyCaret2.0 (pycaret-nightly)を試してみた
# はじめに
* PyCaret2.0が、Nightlyビルド版で公開されており、試してみました。
* PyCaret自体については、以前投稿させて頂いた下記もご確認ください。
* [low-code機械学習ライブラリ「PyCaret」でモデルを可視化してみた](https://qiita.com/shnchr/items/bdd4810b3477aa977413)
* v2では下記のように、不均衡データに対しての前処理が追加されているようなので、試してみたいと思います。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183826/7f06bf3d-5b21-adc5-7a87-99a0a5765273.png)
# 試し方
* pipしてください。“`shell
pip install pycaret-nightly
“`* pipすると、version 2.0.0を試すことができます。
![image.png](https://qiita-image-store
Python と selenium でAmazonの購入履歴を取得する
# この記事の内容
Amazonの購入履歴から、領収書をすべてpdf化し、ファイル名を注文番号にして指定したフォルダに保存するという作業をPythonとseleniumによって実現します。
プログラミングをやり始めて3か月なので上手くないところもあるかもしれませんが、備忘を兼ねて記事を残します。### 目次
1.この記事を書くに至った経緯
2.実装内容の概要
3.実装
3.0.環境
3.1.コード全体
3.2.Selnium のインストール
3.3.パッケージインストール
3.4.初期設定
3.5.ログイン・注文履歴画面へ
3.6.1ページ内の領収書リンクを取得、領収書内へ
3.7.領収書をpdf保存し指定のフォルダに名前を変更して保存
3.8.次のページへ
4.追加の機能追加について
5.saleceforceでの固有の論点
5.1.二段階認証の突破
5.2.画面には確かに存在する要素がdriver.find_elementsで取得できない場合->iframeを疑う
5.3.無限スクロールを読み込む
6.最後に# 1. この記事を書くに至った背景
先日
DataFrameで’nan’が消えてしまうのを直す。
CSVの段階で”nan”という文字列を利用していたのに、DataFrameに入れたときに勝手に’NaN’になってしまうので困った。
もう一度”nan”を利用するためには、`fillna(‘nan’)`を使うことで解決。“`Python
import math
import numpy as np
import pandas as pd
# データの作成
data = [
[”, 1, ‘2’, 3],
[math.nan, np.nan, pd.np.nan, ‘np.nan’],
[None, None, ‘nan’, ‘nan’]
]df = pd.DataFrame(data)
print(df)
# 0 1 2 3
#0 1.0 2 3
#1 NaN NaN NaN np.nan
#2 None NaN nan nanna = df.fillna(‘nan’)
print(na)
# 0 1 2 3
#0
C系プログラマが始めるPython
#Pythonを勉強することになったきっかけ
前々から話題になっており触りたいと思っていたまま、時が過ぎてました…
つい最近、Python触れる子が周りにいたり、企業の人にも他の言語にも触れてみたらとアドバイスをもらったりしたので勉強するモチベが高くなったって感じです。#余談
この画像は[ちょまど](https://twitter.com/chomado?s=20)さんが描かれたものです。Pythonちゃん可愛いですよね!
![pythonChan] (https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647793/2bd0d071-820c-0d07-ed79-424aa2d449cb.png)#この記事を読む前に
投稿主は**C/C++**、**Java**、**C#**をすでに触っているため、そういったC系の言語と比較した視点で記事を書いていくので予めご了承ください。#お〇ぱいそんを触りたい
ド下ネタな見出しですみません。ただ言いたいだけです。
ここから具体的なPythonの基本文法についてまと
VSCodeでPC毎のPython仮想環境の設定
## はじめに
PCを変えるとその度にVSCodeの仮想環境の設定方法を調べているのでメモ## 設定方法
`@sync-ignore`をつけていると[Setting Sync](https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync)で同期されなくなるので便利.
“`settings..json
@sync-ignore
“python.pythonPath”: “YOUR_PYTHON_PATH”,
@sync-ignore
“python.venvPath”: “YOUR_VENV_PATH”,
“`– e.g. (on Windows)
– `YOUR_PYTHON_PATH`: “C:/Users/mocobt/AppData/Local/Programs/Python/Python38”,
– `YOUR_VENV_PATH`: “C:/Users/mocobt/AppData/Local/pypoetry/Cache/virtualenvs”,
– 設定
ゼロから始めるLeetCode Day78 「206. Reverse Linked List」
# 概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。
どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。
早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。
と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。
ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。
[Leetcode](https://leetcode.com/)
Python3で解いています。
[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)
前回
[ゼロから始めるLeetC
ConfluenceのPython APIでページ作成&ページ移動してみた
# やりたいこと
Confluence(以下、コンフル)を使って会議の議事録などを取っていると、
下図のようにタイトルに日付がついたページがいくつも作成されることがあります。
ここでは、Python APIを使って、タイトルが「202006」ではじまるページをとあるページの下に移動させてみます。![move_before.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329888/789c5825-aa3a-4d18-ad93-b320d48cc84d.png)
# 環境
### Confluence
https://www.atlassian.com/ja/software/confluence
今回はクラウド版の無料トライアルを利用します。
申し込みの方法などは省略します。
以下コンフルの画面は2020年7月5日時点のものになります。### Python実行環境
“`
$sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.6
B
初心者が機械学習をやってみたら
Python初心者である私が、
機械学習というキーワードにひかれ手を出してしまった。
これが全ての間違いだった。。。
# 1.なぜここに?
機械学習を学びたいと思い、色々情報を集め学び、試行錯誤してきました。
その、学んだことを忘れないために、とりあえずまとめることにしました。
まとめると言っても、たいしたことないですが・・・
同じような気持ちの人がいればチャレンジして欲しいと思い。# 2.なぜ機械学習なの?
昨今、世間で騒がれている機械学習を知りたいと思ってしまった。
遅すぎるかも。# 3.機械学習といっても何をすればいいの?
多くのデータが必要ということは知っている。
そこで、機械学習を学ぶためにお題を探していたところ、
ボートレース(旧競艇)は過去のレース情報が取得可能と知り、今回のお題にしました。
また、私はギャンブルは嫌いではない方なので。あわよくば・・・です。なんとボートレースは毎日、日本全国10箇所くらいで開催されているため、
学習(機械学習も含め)ちょうど良いと、判断した!!
ちなみに、ボートレースの会場は、日本に24箇所あります。# 4.今回
極方程式で花の曲線を描いてみた
“`php3
def pcf_to_graph2(pcf, last):
start = 0 #定義域の左端def here_function2(f, th):
r = f(th)
x = r * np.cos(th) # 極座標からの変換(x座標の抽出)
y = r * np.sin(th) # 極座標からの変換(y座標の抽出)
return x, yth = np.arange(start,last, 0.01)
x, y = here_function2(pcf, th)fig = plt.figure(figsize=(5,5)) # サイズを均等に
ax = fig.add_subplot(1,1,1)
#ax.set_aspect(‘equal’)ax.spines[‘right’].set_visible(False)
ax.spines[‘top’].set_visible(False)
ax.s
Python Tips
## .gitignore
– [gitignore.io](https://www.gitignore.io/ )
– テキストボックスで “Django” を入力後、”Create” ボタンをクリックする## Python3.8 for Mac
“`
# Homebrew update
$ brew update# Pythone3.8 install
$ brew install python@3.8# Python3.8 update
$ brew upgrade python@3.8# venv
$ /usr/local/opt/python@3.8/bin/python3 -m venv ~/.venv/3.8
$ source ~/.venv/3.8/bin/activate
(3.8) $ python -V
Python 3.8.3
“`## 資料
– [brew python@3.8](https://formulae.brew.sh/formula/python@3.8)
Cloud Pak for DataのNotebookでDb2のデータを読み書きする
Cloud Pak for Data(以下CP4D)上で、分析プロジェクトのNotebookでPythonを使ってDb2のデータを読み書きする方法です。と言っても、CP4D固有の部分は最初のDB接続情報を取得するproject_libの部分だけで、後は一般的なpythonでのDb2の読み書きと同じです。
検証したCP4Dバージョン: v3.0.1
# CP4D上で使えるDb2接続用pythonライブラリ
代表的には3つの方法があるようです。いろいろ比較してみたところ、Read(Select)ならデータをPandasデータフレーム化してくれるpd.read_sqlが便利で、Write(Insert/Update)やその他DB操作はibm_dbを使うのが良さそうです。
| |pandas | ibm_db | ibmdbpy |
|:—|:—:|:—:|:—:|
|概要|select結果をpandasデータフレーム化(read_sql)
pandasデータフレームのデータを書き込み(to_sql)|SQLベタ書きなのでほぼ何でもできる
CP4Dに導入済|
はじめてのPython3 ~はじめての計算編~
# はじめに
この記事は、私がPython3で学んだことを備忘録としてメモしている程度のものです。### Python3 バージョンについて
この記事は以下のバージョンで進めています。“`
% python3 –version
Python 3.7.3“`
# Python起動
“`
% python3
Python 3.7.3 (default, Apr 7 2020, 14:06:47)
[Clang 11.0.3 (clang-1103.0.32.59)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
>>>“`
この >>> になっている状態なら、入力を待機してくれています。
# 計算
|演算式| |
|:———:|:—–:|
|x + y|xとyの和|
|x – y|xとyの差|
|x * y|xとyの積|
|x / y|xとyの商|
|x // y|xとyの商の小数点以下を切り上げる|
グラフの最短経路探索アルゴリズムの速度計測
二次元のメトリックな地図における最短経路を動的に探索する必要があったため、重み付きグラフの最短経路探索アルゴリズムをpython3で実装し、速度を計測してみました。
# 今回実装したアルゴリズム
今回は、下記のような状況下で最短経路を動的探索する必要がありました。* 最短経路探索の要件
* 各ノードはメトリックな地図上の「座標 (x, y)」によって特徴づけられる
* スタートノードとゴールノードが一つ与えられる
* エッジの重みはノード間のユークリッド距離で良い上記要件から、今回はWikipediaの解説を参考に[A*アルゴリズム](https://ja.wikipedia.org/wiki/A*)と[ダイクストラアルゴリズム](https://ja.wikipedia.org/wiki/%E3%83%80%E3%82%A4%E3%82%AF%E3%82%B9%E3%83%88%E3%83%A9%E6%B3%95)を実装しました。なおA*のヒューリスティック関数は、当該ノードとゴールノード間のユークリッド距離としました。
# 計測結果
50 x 50 のグリ