- 1. AtCoder Beginner Contest 217 バーチャル参戦記
- 2. 辞書型を使って特定のデータを抜き出した
- 3. 【Python】importが必要なPythonをAWS Lambda へ移行してみた 事前準備編
- 4. Python開発環境設定・確認のメモ
- 5. 【Python】正規表現メモ
- 6. Python仮想環境作成
- 7. HerokuのSendgridを利用してDjangoで楽々メール送信の巻
- 8. ABC151 C – Welcome to AtCoder から学んだ
- 9. ID&PASS LINE bot
- 10. 【python】CSVファイルの読み込み
- 11. 初心者がDjangoでHerokuにデプロイした際のserver error 500解決策 DB編
- 12. Databricks(Spark)にてDelta Lake形式とParquet形式における実行計画のデータサイズの比較
- 13. ABC155 C – Poll から学んだ
- 14. myCobot Pi sshで記録再生動作実現までの手順
- 15. MLP-MixerのすごさをPython Pytorch実装しながら体感してみる。
- 16. ABC196 C – Doubled を解いた
- 17. UAV写真測量の撮影枚数(測量士試験問題)をpython で解く
- 18. Python3.9.6でNumpyがインストール出来ない。
- 19. Pythonで標準偏差を理解してみる
- 20. Introducing TensorFlow Similarity まとめてみた
AtCoder Beginner Contest 217 バーチャル参戦記
# AtCoder Beginner Contest 217 バーチャル参戦記
87:39でABCDE完. とはいえ、本番だったらさすがにA問題のRE2はしなかったと思うので、実質は77:39と思うと、参加できてたらパフォ1225だった模様. 参加できなくてよかったですね(笑).
## [ABC217A – Signed Difficulty](https://atcoder.jp/contests/abc217/tasks/abc217_a)
3分で突破、RE2. 書くだけ. 全く動作確認をせず突っ込んで死んだ(笑).
“`python
S, T = input().split()if S < T: print('Yes') else: print('No') ``` ## [ABC217B - AtCoder Quiz](https://atcoder.jp/contests/abc217/tasks/abc217_b) 2分で突破. どうとでも書けるだろうけど、set が一番楽かなと思ってこうなった. ```python S1 = input(
辞書型を使って特定のデータを抜き出した
##はじめに
データ管理で下図のように、商品No.の検索から別シートにある情報を転記できたらいいのになと思った。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1259951/805cb358-8a3a-0c6c-211c-fb838cbb549a.png)
数が少ないうちはコピペなどで入力したらいいけど、データ数が膨大になったらめんどくさいのでpythonで自動化できないか試してみた。
##環境(Colabratory)
windows 10
Python 3.7.10
pandas 1.1.5##内容
“`python
#データの読み込み
import pandas as pd
import numpy as npfrom google.colab import files
files.upload()df = pd.read_csv(‘/content/dict.csv’,encoding=’SHIFT-JIS’,index_col=0)
df.head()
`
【Python】importが必要なPythonをAWS Lambda へ移行してみた 事前準備編
#はじめに
昨日、macOSのcronで自動実行するためにmacOSの省電力モードをOFFにすると1ヶ月で1,200円程度電気代がかかるのでは!?という記事を書きました(あくまで試算です)https://qiita.com/hirockio2206/items/2ce4fcac798a21ad40b4
やはり、オンプレ運用はよくないと。これからはクラウドっしょ!
ただ、AWS Lambdaってよくわからん。
って思っている方いますね?(私)ってことで本日はAWS Lambda へPython実行環境を移行にチャレンジしてみました。
少し長くなるので、事前準備編とAWS編で分けて投稿します。#環境
・既にAWSのアカウントを持っている(お持ちでない方でもすぐ発行できますよ。)
・Python3.9
・macOS Catalina10.15.7
・定期実行したいpythonがある#事前解説
今回はサンプルとして、ccxtという複数の仮想通貨取引所のAPI操作が集約されたライブラリをAWS Lambdaで実行したいと思います。AWS Lambdaにはデフォルトではccx
Python開発環境設定・確認のメモ
“`:Pythonバージョンの確認
python -V
“`“`:環境の一覧表示
workon
“`“`:環境「azure」のアクティブ化
workon azure
“`“`:pip自体をアップグレード
pip install –upgrade pip
“`“`:インストール済みのパッケージの一覧表示
pip list
“`“`:環境「azure」の非アクティブ化
deactivate
“`“`:環境「azure2」の作成
mkvirtualenv azure2
“`“`:環境「azure2」の削除
rmvirtualenv azure2
“`# 導入
“`bash
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper
vim ~/.profile
“`“`bash:.profileに追記
source /usr/local/bin/virtualenvwrapper.sh
export WORKON_HOME=~/.virtuale
【Python】正規表現メモ
#1.はじめに
Sphinx拡張で使おうと思っている正規表現のメモ。
思い付く限りのパターンを試して、問題ないことを確認したサンプル。#2.サンプル
“`python
#!/usr/bin/pythonimport re
regex = re.compile(r'([ ]*)((.*?)\|)*([^_]*)((_)([0-9a-z]*)?)?’)
ps = []
ss = [
“読み1|用語1”,
“読み2|用語2_120a3”,
“読み3|用語3_”,
“読み4|用語4_120a3あいうえお”,
“読み5|用語5_あいうえお”,
“用語6”,
“用語7_120a3”,
“用語8_”,
“用語9_120a3あいうえお”,
“用語A_あいうえお”,
” 読み1|用語1”,
” 読み2|用語2_120a3″,
” 読み3|用語3_”,
” 読み4|用語4_120a3あいうえお”,
” 読み5|用語5_あいうえお”,
” 用語6”,
Python仮想環境作成
# 環境
* VS Code(ターミナルGit Bash)
* Python3.9.1# 仮想環境作成
アプリ作成するフォルダに移動
env: 任意“`
python -m venv env
“`# アクティブ化
### windows
“`
source env/Scripts/activate
“`### Mac
“`
source env/bin/activate
“`# VS Codeインタープリンタ選択
コマンドパレットで「Python: Select Interpreter」入力し、
作成した仮想環境のPythonを選択
HerokuのSendgridを利用してDjangoで楽々メール送信の巻
##
もしもアプリにメール送信機能がある場合にはメールの設定が正確かどうか確認してください。
Gmailで送信する場合もあればSendGridを利用して送信するかもしれません。
私はSendGridを利用しましたので今回はSendGridの設定を例にご紹介します。SendGridの利用方法ですがまずはアカウントの作成とHerokuのAdd-onに追加する作業を行ってください。
(ちなみに私はアカウントの取得に数日かかりました…)SendGridをDjangoで利用する場合おそらくAPIキーを利用する方法が公式の推奨法かと思います。
APIキーの発行については公式で優しく解説してくれていますのでここでは割愛させていただきます。
https://sendgrid.kke.co.jp/docs/Tutorials/A_Transaction_Mail/manage_api_key.htmlいきなりですが最終的にこの形になります。
“`python:settings.py
#メール設定
EMAIL_BACKEND = ‘dja
ABC151 C – Welcome to AtCoder から学んだ
https://atcoder.jp/contests/abc151/tasks/abc151_c
![abc151_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/ff0b239e-7046-9716-a71e-8e8295932952.png)
うーん、いけそう。
![abc151_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/1b1d19a6-b379-5532-7371-0343c58b4447.png)
だが、しかし wa.
“`WelcomToAtcoder_r0.py
N,M = map(int,input().split())memo = [False]*N
wa = 0
for _ in range(M):
p,S = input().split()
p = int(p)-1
if not memo[p] and S == “W
ID&PASS LINE bot
ブログ記事は[こちら](https://cyrus.tokyo/blog/idpass-line-bot “ID&PASS LINE BOT”)
[こちら](https://qiita.com/kro/items/67f7510b36945eb9689b “PythonでLine botを作ってみた”)を参考にさせていただきました。“`python
from flask import Flask, request, abort
import pandas as pdfrom linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
import osapp = Flask(__name__)
#環境変数取得
YOUR_CHANNEL_ACCESS_TO
【python】CSVファイルの読み込み
CSVファイルの読み込み。
初心者がDjangoでHerokuにデプロイした際のserver error 500解決策 DB編
私自身初めてHerokuでアプリをデプロイした際にこのserver error 500に非常に悩みましたので投稿させていただきます。
まずは基本ですが開発環境(ローカルで)全てのページが正常に動作するか確認してください。
当然遷移先のページがないような場合でもserver error 500と表示されます。それでも改善しない場合は以下の記述が正確かどうか確認してみてください。
確認するポイントとしては
・データベースの接続
・メールの設定(メール送信をする場合は)
・ALLOWED_HOSTSの設定
・staticの設定上記の箇所が主なつまずきポイントだと思います。1つずつ正確に記述してください。
今回は1つ目のデータベースの接続について解説していきます。
##<データベースの接続は本当に問題ないですか?>
私のエラーは主にここが原因でした。
postgreSQLでもMySQLでも共通ですがHerokuのデータベースの設定には
“`dj_database_url“`
を使用するかと思います。こいつが結構重要なのにあまり詳しい情報が載っていないように思いました。
まず
Databricks(Spark)にてDelta Lake形式とParquet形式における実行計画のデータサイズの比較
## 概要
Databricks(Spark)にてDelta Lake形式とParquet形式における実行計画のデータサイズを比較したところ、Delta Lake形式では約1万分の1のサイズとなりました。Delta Lake形式の利用により、Parquet形式を利用よりも性能の向上が期待できます。パーティション列を設定したParquet形式のデータセットとDelta Lake形式のデータセットに対してfilterを行う処理の実行計画を比較する検証を実施しました。本記事では、その手順と実行結果を記述します。
optimizedPlanの実行計画ステージ以降で、Parquet形式ではサイズが変わらないのに対して、Delta Lake形式ではサイズが縮小することが判明しました。
Delta Lake形式の実行計画のデータサイズ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/57462328-ff04-1824-21e5-5d7a188febcd.png)Parquet形
ABC155 C – Poll から学んだ
https://atcoder.jp/contests/abc155/tasks/abc155_c
![abc155_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/7c67b8a5-43e0-545e-b772-1fc780ccd5bd.png)
何か辞書で行けないかな?
とりあえずサンプルを見てみる![abc155_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/1e197bfc-c281-6aee-5d9b-9d4522915c18.png)
辞書で各要素をカウント。
=> 最大値を取り出して
=> 辞書順に最大値に合うものを print する。辞書を key / item で一回ずつソートすれば行けるんじゃね?
=> 最大値を取り出して …item でソート
=> 辞書順に最大値に合うものを print する。…key を辞書順でソート調べたらスグに出て
myCobot Pi sshで記録再生動作実現までの手順
##はじめに
myCobot Piは動作を記録再生することができる。こちらの動画のmyCobotはM5版なので記録再生は本体スイッチを使って簡単に行えているが、
myCobot Piにはそれがないため、自分で記録再生をできるようにする必要がある。
そこまでの手順を備忘録的に残す。## ssh経由によるアクセス
HDMIでPCモニター等に映像を写し、USBマウス・キーボードによる操作でもよいが、、
ssh経由でmyCobot Piにアクセスも可能なので、できるようにして
MLP-MixerのすごさをPython Pytorch実装しながら体感してみる。
# MLP-Mixer
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/3949842b-3572-c16a-a929-2f8293dfa38e.png)
[MLP-Mixer: An all-MLP Architecture for Vision](https://arxiv.org/abs/2105.01601)
# はじめに
近年、自然言語処理・画像認識・音声認識において、Transformerを使った事前学習モデルの成果が著しいが、一方で古典的なMLP(Multi Layer Perceptron)を改良した驚くほどシンプルなアーキテクチャでTransformerと同等の性能がでることが[MLP-Mixer: An all-MLP Architecture for Vision](https://arxiv.org/abs/2105.01601)で確認されており、非常に気になるところである。本記事では、MLP-MixerとVision Transforme
ABC196 C – Doubled を解いた
https://atcoder.jp/contests/abc196/tasks/abc196_c
![Abc196_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/b7a78ab6-3fed-08c4-6abd-71d006c728bb.png)
文書のまま入力してみようと思った。
念のためサンプルを確認![Abc196_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/3b112d5f-b3a8-d556-6f0e-18b54ebab906.png)
ふむふむ。とりあえず書いてみよう。
“`Doubled.py
N = int(input()) #N は偶数桁。
a,b = 1,1 # a と b を用意。
X = int(str(a)+str(b)) # a b を合体して X
lis = [] # 条件に
UAV写真測量の撮影枚数(測量士試験問題)をpython で解く
# はじめに
測量士の過去問を見ていると、最近はUAV写真測量の問題が出題されています。
同じような問題を出題しているのですが、それはきっと大切な内容なのでしょう。今回、それをプログラミングしてみました。
問題はこちら。直接ダウンロードもできます。
https://www.gsi.go.jp/LAW/SHIKEN/past.html令和元年度、午後(記述式)のNo.2-C を解きます。
# UAV写真測量の撮影枚数をpython で計算する
## 試験問題の設定条件
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294040/6d6bd648-cdaa-b92b-6a08-f5f22ee52609.png)
設定は以下の通りです。
(1) カメラパラメータ
要素名 | 記号 | 数値 | 内容
— | — | — | —
画面距離(焦点距離) | f | 16mm | イメージセンサへの入力が像を結ぶ点
撮像素子 | s | 4um | イメー
Python3.9.6でNumpyがインストール出来ない。
Numpyインストールの際にかなり手間取ったので、
記載。Pythonを勉強し始めたのでモジュールとしてNumpyとDjangoをインストールしようと試みたが、
何度やっても「pip not found」
と出てきてしまい、どんなに調べても解決しなかったので挫けそうになった。
ただ調べていく中で、「pip」は無いが「pip3」は入っている。という事が分かった。
もしやと思い、
「pip intsall numpy」を
「pip3 intsall numpay」に変更したところ、
やっとインストールに成功した。
おそらく最新のpythonバージョンではpip3でのインストールを行う。
的なものなんだと、自身に言い聞かせて終了。さて、勉強再開しましょ。
Pythonで標準偏差を理解してみる
# 標準偏差とは
>https://ja.wikipedia.org/wiki/標準偏差
>標準偏差(ひょうじゅんへんさ、(英: standard deviation, SD)とは、データや確率変数の、平均値からの散らばり具合(ばらつき)を表す指標の一つである。偏差ベクトルと、値が標準偏差のみであるベクトルは、ユークリッドノルムが等しくなる。
>標準偏差を2乗したのが分散であり、従って、標準偏差は分散の非負の平方根である[1]。標準偏差が 0 であることは、データの値が全て等しいことと同値である。
>母集団や確率変数の標準偏差を σ で、標本の標準偏差を s で表すことがある。
>二乗平均平方根 (RMS) を用いると、標準偏差は偏差の二乗平均平方根に等しくなる。なるほどわからん。
どうやら**平均からどれだけデータがばらついているかを表す指標**ということらしい。平均は文系の私でもまあわかる。
標準偏差は次の式で求められるみたいだが…。
![式](https://wikimedia.org/api/rest_v1/media/math/render/svg/edd83fd57
Introducing TensorFlow Similarity まとめてみた
TWに流れてきたので、学習の一環としてまとめてみました。
※ 間違いに気づいたらブラッシュアップします。ソース:[Introducing TensorFlow Similarity](https://blog.tensorflow.org/2021/09/introducing-tensorflow-similarity.html) September 13, 2021
#TensorFlow を使って類似性モデルを簡単かつ迅速にトレーニングするために設計された python パッケージ
![tensorflow-similarity-output-visualization.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310668/33ca151a-77fc-5b85-db38-ff5228e545bc.jpeg)
#TensorFlow Similarity が提供しているもの
– **類似性の学習評価や query** を直感的かつ簡単に行うために必要なすべてのコンポーネント
– 特