- 0.0.1. windowsでJupyter Notebookを用いてRDKitを使えるようにする方法
- 0.0.2. プログラミング未経験者が育休中にKagglerになるまでの記録(1か月進捗 2022/7)
- 0.0.3. 【Python】学習時間記録Discord Bot作成(Heroku Postgres連携Ver)
- 0.0.4. Python3エンジニア認定データ分析模試試験1回目 -間違えた問題-
- 0.0.5. DjangoのWebアプリケーションにユーザ認証を追加する(django-allauth)
- 0.0.6. 【AWS】Lambda関数のLayerを使ってみた
- 0.0.7. スクレイピイング途中のAttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_id’の解決策
- 0.0.8. 投稿の前に
- 0.0.9. PySimpleGUIでexpand_x=Trueを指定したテーブルを並べていたら片方のテーブルが消えた
- 0.0.10. PLATEAUのCityGMLに所在(建物の住所)を追加するスクリプトを作った。
- 0.0.11. AWS + Python + LINEbotでゴミ出しリマインドをする【後編】
- 0.0.12. リザバーコンピューティング概観
- 0.0.13. すでに存在しているCloudWatchアラームからCloudFormationテンプレートを作成する
- 0.0.14. PyG (PyTorch Geometric) で Recurrent Graph Neural Network
- 0.0.15. cosθ の 計算方法(Python)
- 0.0.16. WSGIの概要
- 1. WSGIの概要
- 2. 二、WSGI基本原理
windowsでJupyter Notebookを用いてRDKitを使えるようにする方法
Windows PCでもRDKitを便利に使いたい!
と思ったものの,設定になかなか手こずったのでその備忘録。## STEP1
まずはAnaconda3をインストールする。
インストールされたAnaconda Prompt(anaconda3)を開き,以下のコマンドを実行。
“`
conda create -c rdkit -n my-rdkit-env rdkit
“`
my-rdkit-envという仮想環境が作成される## STEP2
以下のコマンド例に従い,Anaconda Promptを立ち上げ、baseとmyenv両方にインストール。
(仮想環境の切り替えを相互に行うため、base仮想環境と自分の仮想環境両方にjupyterとenvironment_kernelsモジュールが必要らしい。)
“`
conda activate base
(base) C:\Users\((User_name))>pip install jupyter environment_kernels
(base) C:\Users\((User_name))>conda deactiva
プログラミング未経験者が育休中にKagglerになるまでの記録(1か月進捗 2022/7)
育休中にkagglerになれるかの記録。
kaggleスキルはいずれ海外含めたビジネスシーンで活用したい。
そのため、英語とビジネススキルについても同時並行で習得目指す。# プログラミングやったこと
・kaggle の Courses
- Python, Intro Machine to Learning, Intro to Deep Learning はほぼ完了。
- Data Visualization, Feature Engineering, Data Cleaning は一部完了。・kaggle の Competition
- House Prices の特徴量を吟味(EDA)したのみ。特徴量エンジニアリングまだ。
他者のコードをコピペして一つ一つ意味理解しながら実行。・Signate の Quest
- 株価予測(ファンダメンタルズ分析)はほぼ完了。# 英語やったこと
・Amazon Prime のドラマ
- 「ラグジュアリーシドニー」を観ながらシャドーイング# ビジネススキルやったこと
・Udemy の 米国MBA教授が教える:起業か
【Python】学習時間記録Discord Bot作成(Heroku Postgres連携Ver)
# 概要
Discord Botを改修した。
以前学習時間記録Discord Botを作成した。
特定のボイスチャンネルを監視し、ユーザ入退室時間を記録、滞在時間を計算して通知するbotである。https://qiita.com/asami0420/items/bfab99b0ca665875887d
上記ではプロセス上の変数に情報を保存していたが入室時刻はDBに保存してデータが消失しないようする。
# 方法
## Bot作成
以下の記事を参考にDiscord Botを作成する。https://qiita.com/asami0420/items/bfab99b0ca665875887d
## DB作成
HerokuにDBを作成する。https://qiita.com/asami0420/items/d757f4bcedb04ee3565b
## Botのコード追加・修正
(コード全文は一番下に掲載)### PythonからHerkouDB接続
PythonでHeroku上のDBに接続する例は以下の記事を参考にした。
以下の記事ではコード内にDB接続情報を埋
Python3エンジニア認定データ分析模試試験1回目 -間違えた問題-
獲得点数 475/1000点
正答率: 47.5 % ( 19問 / 40問 正解 )
“`python
以下のコードの後に、np.dot(a, b)を実行した場合の出力と同じにならないものを選べ
import numpy as npa = np.array([[0,1,10],[0,1,10]])
b = a.copy()
a = a.reshape(3,2)A,np.multiply(a,b)
“`
:::note info
インフォメーション
NumPyの行列積メソッドの問題です。dot、@、matmulは
全て行列積のメソッドですが、
multiplyはスカラー倍のメソッドになります。
:::“`python
以下のコードを実行した後に、np.hstack((a,b))を実行した場合の出力と同じにするにはどれを実行すれば良いか?正しいものを選べimport numpy as np
a = np.array([[0,1,10],[0,1,10]])
b = np.array([[100],[100]])A,np.
DjangoのWebアプリケーションにユーザ認証を追加する(django-allauth)
# 1. はじめに
前回の「[DjangoでHello Worldを表示する](https://qiita.com/t-shirayama/items/bc18d924dc672c7215cd)」で作成したWebアプリケーションにユーザ認証を追加していきます。# 2. Djangoのユーザ認証について
Djangoは標準でユーザ認証システムを搭載しています。Djangoの複数のビューを使って、ログイン、ログアウト、パスワード管理を行うことができますが、認証ビューに対してデフォルトのテンプレートはありません。
そこで今回はテンプレートも含まれるdjango-allauthを利用し、さらに簡単にユーザ認証を追加します。# 3. django-allauthのインストール
pipコマンドでdjango-allauthをインストールします。
“`
pip install django-allauth
“`
# 4. setting.pyの変更
setting.pyにユーザ認証の設定を追加します。追加や変更していない箇所は省略しています。“`setting.py
import
【AWS】Lambda関数のLayerを使ってみた
# 1.はじめに
どうも、ARIの名古屋支社に勤務している愛知県民です♪
(/・ω・)/先日、AWSのLambda関数をテストしようとしたところ、以下のエラーが出ました。
|![010_エラー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1372071/cddbe3fd-68c5-f097-946d-11a59a1ca870.png)|
|:–|どうやら、必要なライブラリが含まれていないことが原因のようですが、
他にも同じライブラリを使うLambda関数を作成予定だったため、
「いちいち設定するのは面倒だな・・・」と思いました。解決する方法がないか、調べたところ、
**Lambda関数のLayerという設定を使うことで、
複数のLambda関数に同じライブラリを入れられるようです!**そこで今回は**Lambda関数にLayerを設定する方法**を記事にしてみたいと思います♪
AWSやLambda関数について勉強中の方の参考になれば幸いです。
(*^^)v# 2.用語の説明
#
スクレイピイング途中のAttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_id’の解決策
## 課題
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1446396/1bd0fa63-0fc3-72f5-8ea3-0dc2ecb6de98.png)
JupyterLabでスクレイピングを行おうとしたら
AttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_id’
とのこと。## 仮説
・タイプミス
・取得しようとしてる場所がおかしい## 原因
結局仮説は外れており、ぐぐったらすぐ出てきた。
seleniumのバージョン4以上から、find_element_by_xxxのメソッドが使えないみたい。
以下コマンドでバージョンを確認してみると…“`
pip list
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1446396/5a7b6657-11db-fedb-18f3-a
投稿の前に
投稿の前に,単純な準備を
コードブロックについて
単に \`\`\` とする人が多いですが,言語により,
たとえば Python ならば \`\`\`Python としましょう注釈記号 # の後には 半角空白を置きましょう
その他,プログラムの書式については,多くありますが,たとえば
https://python.keicode.com/lang/control-basic-rule.php
その他を見ましょう。
人様に見せるプログラムは,動けばいいというものではないのです。
PySimpleGUIでexpand_x=Trueを指定したテーブルを並べていたら片方のテーブルが消えた
# 初めに
PySimpleGUIを使って,二つのファイルを左右に表示するような画面を作っていたら,ある時画面右側のテーブルが急にどこかに消えてしまうトラブルが発生した.
原因を探っていると,どうやら **2つのテーブルにexpand_x=True** を指定した状態でテーブルがスクロール表示されているタイミングで,新しくWindowを作って表示したりpopupを出したりすると,急に**左側に置いたテーブルが画面いっぱいに表示**されて,右側のテーブルが消える(=表示幅0になって戻ってこない)ということが起こっていたらしい.そこで,下記記載の対処法で今回は何とか繋いだのでメモ代わりに記事にしておく.
# 問題のコード
下記のコードの`open_file_view_window`関数に適当にファイルの幅がでかいやつを与えた状態で「もう1画面開く」を押すと,上記の問題が発生する.
“` Python
import PySimpleGUI as sg
from pathlib import Path
import numpy as npdef open_file_view_
PLATEAUのCityGMLに所在(建物の住所)を追加するスクリプトを作った。
![スクリーンショット 2022-07-27 0.53.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1135021/387ee62b-6498-3914-01b2-ce89e9305809.png)
# 経緯度を逆ジオコーディング
GoogleMaps APIのreverse_geocodeを使って経緯度から所在を取得します。
“`python
googleapikey = ‘apikey’
gmaps = googlemaps.Client(key=googleapikey)geocord = lat + “, ” + lon
results = gmaps.reverse_geocode((geocord), language=’ja’)
add = [d.get(‘formatted_address’) for d in results]
list_add = add[1].split()
return list_add[1]“`
# C
AWS + Python + LINEbotでゴミ出しリマインドをする【後編】
## はじめに
この記事はタイトルの通り、【前編】の続きとなっています。
【前編】では、ゴミの日の前日にリマインドをするLINE botを作りました。
【後編】では、【前編】で作成したLINE botに、ゴミの種類をメッセージとして送信すると、収集日が返ってくる設定を加えたいと思います。例えば、「燃えるゴミ」と送信すると、「≪収集日≫毎週火曜日・金曜日」と返ってきます。【後編】だけ見ていただいても問題ないですが、【前編】のリンクも貼っておきます。
【前編】はこちらから!
[AWS + Python + LINEbotでゴミ出しリマインドをする【前編】](
https://qiita.com/poyopoyo7254/items/193feb9605a121efea6f)## 使用技術
・Python3.9
・LINE Messaging API
・AWS Lambda
・Amazon API Gateway## 簡単な構成の説明
①ユーザーがメッセージを送る
②指定したURL(API GatewayのURL)に、Webhookイベントオブジェクトを含むHTTPS POS
リザバーコンピューティング概観
# リザバーコンピューティングとは
みなさんは「リザバーコンピューティング」という技術を耳にしたことがあるでしょうか。
リザバーコンピューティングとは時系列パターン認識に適した機械学習手法の一つであり、以下のような構成をもつニューラルネットワークです。![reservoir.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1940763/98cf4a9a-a151-e73d-b519-7899437b3426.png)
通常のニューラルネットワークと同様、多次元のベクトルを入力とし、出力されるベクトルが目標のベクトルに近づくように学習を行います。逐次的に入力される時系列データの情報を再帰的な結合を持つリザバー部が記憶し、その内部状態を出力層で読み取る(リードアウト)ことで時系列性を活かした回帰・分類が可能となります。特筆すべきは、リカーレントニューラルネットワーク(RNN)等と異なり、リザバー部の結合の重みについては学習を一切行わず、固定されたランダムな値を使うという点です。つまり学習を行うのはリザ
すでに存在しているCloudWatchアラームからCloudFormationテンプレートを作成する
## 大事なことなので要確認
CloudFormationテンプレートからCloudWatchアラームを作るのではなく、すでに存在しているCloudWatchアラームからCloudFormationテンプレートを作ります。
繰り返します。アラーム設定からCloudFormationテンプレートを作ります。## アラーム数が少ない場合
CloudWatchアラームが少ない場合は手作業でソースを取得しても良い。
やり方としては、AWSコンソールより、対象となるCloudWatchアラームを選択 > アクション > ソースを表示より、JSONやYAML形式でダウンロードできます。また、aws-cliを使うことで、取得とある程度の整形もできます。
JSONとYAMLの整形ライブラリであるjqとyqをインストールした状態で、
“`sh
brew install jq python-yq
“`下記のようにすると、resouces以下に記述すべき内容が取得できます。このままではフォーマットがあってないため、手動で修正してください。
“`sh
aws –profile
PyG (PyTorch Geometric) で Recurrent Graph Neural Network
グラフ構造を深層学習する PyG (PyTorch Geometric) を Google Colaboratory 上で使ってみました。今回は、Recurrent Graph Neural Network を使うことがテーマです。
# 学習済みモデルを Google Drive に保存するための準備
学習済みモデルを Google Drive に保存するため、Google Drive をマウントします。
“`python
from google.colab import drive
drive.mount(‘/content/drive’)
“`Mounted at /content/drive
次のようにして Google Drive 上のディレクトリを指定します。
“`python
import osdirectory_path = ‘./drive/MyDrive/pyg_models/’
if not os.path.exists(directory_path):
os.makedirs(directory_path)
“`
cosθ の 計算方法(Python)
今回は[hmath](https://caleb7023.hmath.pro/)で使用されているcosθの計算方法をご紹介します。
## 計算式
[hmath](https://caleb7023.hmath.pro/)は次の数式でcosθを定義しています。
“`math
\cos θ = {\frac{e^{θi}+e^{-θi}}{2}}
“`
## プログラム
[hmath](https://caleb7023.hmath.pro/)内では次のプログラムで計算しています。
“`ruby:cos.py
import hmath
def cos(θ):
return (hmath.exp(θ * 1j) + hmath.exp(θ * -1j)) / 2
“`
### 別の計算方法
[hmath](https://caleb7023.hmath.pro/)内では利用していませんが次の式でcosθを計算することもできます。
“`math
\cos θ=\sum_{n=0}^{∞}{\frac{(-1)^n}{(2n)!}}θ^{2n}
“`
上の式をコードにすると
WSGIの概要
WSGIの概要
WSGI(Webサーバーゲートウェイインターフェイス、Webサーバーゲートウェイインターフェイス)は、主にサーバー側とアプリケーションプログラム間のインターフェイスを指定します。つまり、要求されたURLとバックグラウンド処理機能の間のマッピングを実装する方法を指定します。 wsgirefは、開発者がテストを開発するのに役立つ組み込みのPythonライブラリです。プログラマーは、このライブラリを使用してWSGIの基本的な動作原理を理解できますが、実稼働環境では使用できません。
二、WSGI基本原理
1.WSGI処理プロセス
– ブラウザからWSGIサーバーへ:ブラウザから送信されたリクエストは、最初にWSGIサーバーに送信されます。
– environ:WSGIサーバーは、HTTPリクエストのパラメーターとその他の情報をenviron(辞書)にカプセル化します。
– WSGIサーバーからWSGIアプリへ:アプ
sinθ の 計算方法(Python)
今回は[hmath](https://caleb7023.hmath.pro/)で使用されているsinθの計算方法をご紹介します。
## 計算式
[hmath](https://caleb7023.hmath.pro/)は次の数式でsinθを定義しています。
“`math
\sin θ = {\frac{e^{θi}-e^{-θi}}{2i}}
“`
## プログラム
[hmath](https://caleb7023.hmath.pro/)内では次のプログラムで計算しています。
“`ruby:sin.py
import hmath
def sin(θ):
return (hmath.exp(θ * 1j) – hmath.exp(θ * -1j)) / 2j
“`
### 別の計算方法
[hmath](https://caleb7023.hmath.pro/)内では利用していませんが次の式でsinθを計算することもできます。
“`math
\sin θ=\sum_{n=0}^{∞}{\frac{(-1)^n}{(2n+1)!}}θ^{2n+1}
“`
上の式をコー
matplotlibで複数系列の点をプロットして回帰式を描いた
# はじめに
エクセルでやってみると結構めんどくさかったので書いた。
以下のようなグラフを作成できる。
![TN.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1974522/492286e1-e7cc-d567-32fa-aa73a58ac949.png)# グラフ作成
## 解説
pandasでcsvを読み込んでmatplotを使って読み込んだ全ての値を用いて回帰式を作成。
回帰式を表示した後に, csvのmarkの項目に従って点の形を変えてプロット。:::note info
データセットは以下の形式のものを扱う(.csv)。
xValue, yValue, mark
0.341, 0.6546, winter
0.421, 0.5341, winter
0.113, 0.1536, summer
0.114, 0.1342, summer
.
.
.
:::## ソースコード
“`python
from turtle import color
import matplotlib
Training API:lightGBMのラベルエラー LightGBMError: Label must be in [0, 4), but found 4 in label
# 参加コンペ
https://signate.jp/competitions/724
# エラー内容
Training APIによるLightgbmの多クラス分類を実行する際に次のエラーが発生
*Scikit-learn APIの場合は実行可能“`
LightGBMError: Label must be in [0, 4), but found 4 in label
“`# 原因
元データに付与されているラベルが[1,2,3,4]と0から始まっていないことが原因# 解決法
ラベルを0から始まるように修正
[1,2,3,4]->[0,1,2,3]
画像選別を行うUI
# 目的
画像認識の機械学習の教師データ(Webからのスクレイピングで集めたデータ)のうち教師データとして不適切なものを削除するために用いる。
基本手作業で行うのでデータが多いほど効率は悪いからこれ以外の解決法がない場合にのみ使うことを推奨する。集め方についてはここから↓
https://qiita.com/taxinumber1729/items/9d61a65da7962225e765
# 環境
– python=3.6.13
– opencv=3.4.2
– pyautogui=0.9.53# コード
“`python
import cv2
import os
from tkinter import messagebox
import pyautogui as pag#自分が使っているモニターの高さを取得
monitor_height = pag.size().heightdef img_select(car_path):
car_img_list = os.listdir(car_path)
for car_img in car