- 1. 224 Triangle
- 1.0.1. LambdaからDynamoDBを操作する
- 1.0.2. 【初心者が始める】githubの環境構築(前編)
- 1.0.3. Flaskを使って10分でAPI作る
- 1.0.4. Python3: Cloud Firestore に ndjson のデータを追加
- 1.0.5. Python3: Cloud Firestore のデータを ndjson に変換
- 1.0.6. 【合格体験記】Pythonエンジニア認定試験(基礎、データ分析)
- 1.0.7. ABC 082 B – Two AnagramsをPython3で解く
- 1.0.8. オンライン畳み込み
- 1.0.9. Pythonの組み込みhash関数を使ってバグを作った話
- 1.0.10. 『ゼロから作るDeep Learning』ひとり購読会 #01
- 1.0.11. Python の BeautifulSoup.find() の戻り値を確認
- 1.0.12. Python3: Elastic Cloud の filters の使い方
- 1.0.13. S3に格納されたファイルを検知し、EC2上のシェルを自動実行する
Python3: Elastic Cloud に ndjson 形式のデータを投入する
こちらにあるデータを使いました。
[新型コロナワクチンの接種状況](https://info.vrs.digital.go.jp/dashboard/)データの取得
“`bash
wget https://data.vrs.digital.go.jp/vaccination/opendata/latest/prefecture.ndjson
“`“`py:elastic_cloud_insert_ndjson.py
#! /usr/bin/python
#
# elastic_cloud_insert_ndjson.py
#
# Apr/04/2022
# ——————————————————————
import sys
import json
import ndjson
import requests
# ——————————————————————
def file_to_s
「X」記号を検出するOpenCVライン検出
行内のX記号を検出する必要がある画像があります。
画像:
上の画像を見るとわかるように、線の中にX記号があります。シンボルのX座標とY座標を知りたい。この絵の中でこのシンボルを見つける方法はありますか、それとも小さいですか?
“`
import cv2
import numpy as npdef calculateCenterSpot(results):
startX, endX = results[0][0], results[0][2]
startY, endY = results[0][1], results[0][3]
centerSpotX = (endX – startX) / 2 + startX
centerSpotY = (endY – startY) / 2 + startY
Python3: Elastic Cloud に API でデータを投入する
こちらと同じことを Python3 で行いました。
[Elastic Cloud に API でデータを投入する](https://qiita.com/ekzemplaro/items/5591fa43c2dc39d47a6b)“`py:elastic_cloud_insert.py
#! /usr/bin/python
#
# elastic_cloud_insert.py
#
# Apr/04/2022
# ——————————————————————
import sys
import json
import requests
# ——————————————————————
def file_to_str_proc(file_in):
str_out = “”
try:
fp_in = open(file_in,encoding=’utf-8′)
str_out = fp_
[Atcoder]python3の入力処理方法
3/26からAtCoder始めました。対戦よろしくお願いいたします。
AtCoderの入力方法は標準入力です。
普段、標準入力はあまりしないので、戸惑ってしまいました。
そのため、主な入力処理パターンをまとめました# 入力個数が1つ(ex 1)
“`python
# int
a = int(input())
# str
a = str(input())
“`# 入力個数が決まっているパターン(ex A B C Dが与えられるパターン)
“`python
# int
a, b, c, d = map(int, input().split())
# str
a, b, c, d = str(int, input().split())
“`# 個数が指定されない場合(ex. A1~Anの個数が当たられるパターン)
“`python
# int
An = list(map(int,input().split()))
# str
Bn = list(map(str,input().split()))
“`楽しく競技プログラミングしましょう!
Python Embeded でお手軽(?)環境構築の忘備録
## 別にインストーラ版使えば良くね?
そう思った貴方!!そのとーーーーーーりーーーー!!!
以下の精神がない方は素直にインストーラ版使ってください。
そのほうがネットで情報探すのも楽だし何よりつまづく事ほとんどないはず。## なんでEmbeded版使うの?
理由は以下2つ
①開発環境をイチから構築してこそ三流くんの鏡
②会社の環境でレジストリ荒れると警告食らう
一番の理由は①、これくらいできなきゃ開発者名乗る資格なし
そして個人的には②の理由も結構致命的。違法ソフト呼ばわりされるのが迷惑なのでインストールはなるべくしたくない、ってことです。
但し、インストーラ版にしか含まれてないフォルダはなんとか取り出すしかないです……標準装備してくれよ…## 動作環境
OS:Windows 11 Pro 21H2
Python Version:Python 3.10.4
PCスペックは皆さんが使用しているマシンより間違いなく性能低いです。## 構築してみよう
まずは、Python公式サイトからEmbeded版をDLしましょう。
ついでに同じバージョンのInstaller版もDLしましょ
【AtCoder解説】PythonでABC246のA,B,C,D,E,F問題を制する!
**ABC246**の**A,B,C,D,E,F問題**を、**Python3**でなるべく丁寧に解説していきます。
ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。
– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増えるご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!
**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM
超初心者がAtcoder ProblemsのC問題を224回から230回までをpythonで解いてみた
解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!
224 Triangle
https://atcoder.jp/contests/abc224/tasks/abc224_c
“`python:practice.py
n = int(input())
points = [list(map(int, input().split())) for _ in range(n)]
nums = [i for i in range(n)]
cnt = 0
for i in range(n):
x1,y1 = points[i]
for j in range(i+1,n):
x2,y2 = points[j]
for k in range(j+1,n):
x3,y3 = points[k]
if (y2-y1)*(x3-x1) != (y3-y1)*(x2-x1):
LambdaからDynamoDBを操作する
# 背景・目的
– 以前、「[VPC内のLambdaからインターネットに接続する](https://qiita.com/zumastee/items/21c77e66156a8d26856e)」と「[DynamoDBを試してみた](https://qiita.com/zumastee/items/ef8a5c855161f9e4ba92)」で作成したLambdaとDynamoDB(以降、DDBという。)を使用してQiitaの記事一覧を取得し、その内容をDDBに登録する。# 内容
## 前提
### DynamoDBテーブル
– DDBのテーブル名は「qiita_user_articles」、各項目は以下の通りとする。| 項目名 | キー/インデックス | タイプ| 例|
|:— | :—- | :—- | :—- |
| user_id | パーティションキー| 文字列 |test|
| article_id | ソートキー | 文字列 |00001|
| title | グローバルセカンダリーインデックス | 文字列|test title|
| url |
【初心者が始める】githubの環境構築(前編)
Pythonの勉強を始めました。
『ゼロから作るDeep Learning』にて、githubで公開しているスクリプトを使用するために、今回githubを使い始めました。
githubを使い始める際の手順は下記リンクで行なっています。https://prog-8.com/docs/git-env
上記サイトの手順5 「Githubにプッシュする」で、`git init`を実行すると下記のようなヒントが表示されました。
“`python:
hint: Using ‘master’ as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config –global init.de
Flaskを使って10分でAPI作る
# Flaskを使って10分でAPI作る
PythonのFlaskを使ってAPIを作ってみようと思います。## Flaskのインストール
“`
mkdir flask-api
cd flask-apipython3 -m venv .venv //任意
source .venv/bin/activate //任意pip install Flask
“`## もっとも単純なもの
– urlにリクエストが来たらdataを返すAPI
“`python
@app.route(‘/’)
def return_data():
data = {1: “a”,
2: “b”,
3: “c”,
4: “d”,
5: “e”}
return data
“`## 条件をつけたもの
“`python
@app.route(‘/id=‘)
def designated_return_data(id):if id == ‘1’:
d
Python3: Cloud Firestore に ndjson のデータを追加
こちらを参考にしました。
[ドキュメントの追加](https://firebase.google.com/docs/firestore/manage-data/add-data?hl=ja#add_a_document)“`py:put_firestore_docs.py
#! /usr/bin/python
#
# put_firestore_docs.py
#
# Apr/02/2022
# ——————————————————————
import sys
import json
import ndjson
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
from datetime import date, datetime
# —————————————————-
Python3: Cloud Firestore のデータを ndjson に変換
こちらを参考にしました。
[コレクションのすべてのドキュメントを取得する](https://firebase.google.com/docs/firestore/query-data/get-data?hl=ja#get_all_documents_in_a_collection)“`py:get_firestore_docs.py
#! /usr/bin/python
#
# get_firestore_docs.py
#
# Apr/02/2022
# ——————————————————————
import sys
import json
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
from datetime import date, datetime
# ———————————–
【合格体験記】Pythonエンジニア認定試験(基礎、データ分析)
# はじめに
ちょっと息抜き。本稿は趣向を変えて、お届けします。
筆者、Pythonエンジニア認定試験を直近の約半年のうちに2つ受験し、合格しました。
というわけで、合格を記念して、合格体験記を綴ることにしました。(Pythonエンジニア育成推進協会に投稿しろよ、って話ですが恥ずかしい。)
# 受験結果
– Python3エンジニア認定基礎試験
:::note info
合格評価得点:700/筆者の評価得点:850/結果:合格
:::
– Python3エンジニア認定データ分析試験
:::note info
合格評価得点:700/筆者の評価得点:975/結果:合格
:::」の各問題の類題をPythonで解きます。
(解法に詰まって調べたとき、C++の解法が多くPythonしか分からない私では参考にできなかったため。)
*競プロ & Python初心者のため、解法やコードの改善例、別解等アドバイス頂けますと大変ありがたいです。# [ABC 082 B – Two Anagrams](https://atcoder.jp/contests/abc082/tasks/abc082_b)
**【問題文】**
英小文字のみからなる文字列 s, t が与えられます。 あなたは、s の文字を好きな順に並べ替え、文字列 s′を作ります。 また、t の文字を好きな順に並べ替え、文字列 t′を作ります。 このとき、辞書順で s′
オンライン畳み込み
# この記事の目的
オンライン畳み込み(Relaxed Convolution [^ref1] または Relaxed Multiplication [^ref2] などとも呼ばれるようです)を $O(N(\log N)^2)$ で処理する方法について書きます [^bunkatsu] 。
[^bunkatsu]: 分割統治 FFT とも呼ばれるようですが、本稿では分割統治の考え方は使っていません。結果的には似たような処理をやっていることになりますが。
[^ref2]: New algorithms for relaxed multiplication
畳み込みがオンラインとは、 $A$ および $B$ の各項が前から順に与えられたとき、その都度、畳み込み $C=A*B$ の各項を順に返すことを言います [^online]。詳細は後述します。
[^online]: 参考文献では Relaxed という用語が使われていますが、「オンライン」の方
Pythonの組み込みhash関数を使ってバグを作った話
# 経緯と問題
DynamoDB で効率よいシャーディングの実施のために、キーの末尾に特定の識別子を付与する方法はベストプラクティスとして公式でも紹介されている。
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/bp-partition-key-sharding.html#bp-partition-key-sharding-calculated
今回は、このシャーディングを行うためにユーザー固有のID (文字列) を元に識別子を計算したいと考えた。 その対策として、以下のようなコードを書いた。
“`python:バグありなのでこのコードは利用しないこと!
def primary_key(uid: str) -> str:
num = hash(uid) % 10
return f’SampleData.{num:02d}’
“`[`hash` 関数](https://docs.python.org/ja/3/library/functions.html#hash
『ゼロから作るDeep Learning』ひとり購読会 #01
(#01って、二桁で読み終われるのだろうか…。)
大変よろしくないことに仕事が停滞してしまっているので、すき間時間を使って『[ゼロから学ぶDeep Learning](https://www.oreilly.co.jp/books/9784873117584/)』の勉強を始めました。私は何ごとに付け基本がなっていないし、機械学習をまともに学習したこともないので、最も基本となるところはここかなと本書に手を出した次第です。
#まあ、QIITAでリンクを貼る必要はないかもしれないですけどね
とりあえず今日は1章をさらさらっと。Python自体はすでにインストールしてあって、VS Codeも使えるようにはしてある程度の経験者なので、NumPyのところ以外は復習という感じもありました。
NumPyはまったく初めてではないですが、今まで読んだ書籍で紹介されていたサンプルプログラムに出てきたくらい。そこでの解説を読めば「なるほど」とは思いますが、あんまり理解できた感じはしない。ましてやNumPyを使ったコードなど書けません。そもそも、NumPyが必要なプログラムを着想することもできなさそうと
Python の BeautifulSoup.find() の戻り値を確認
BeautifulSoup.find() の戻り値を簡単に確認してみた。
“`python
$ python
Python 3.10.3 (main, Mar 29 2022, 01:35:20) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
>>> from bs4 import BeautifulSoup
>>> inner_html = r”’
…
…524…
…
… ”’
>>> soup = BeautifulSoup(inner_html)
Python3: Elastic Cloud の filters の使い方
こちらと同じことを python3 で記述しました。
[Elastic Cloud の filters の使い方](https://qiita.com/ekzemplaro/items/1ab696e2d230a59b548d)“`py:elastic_filter.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# elastic_filter.py
#
# Apr/01/2022
#
# ——————————————————————
import sys
import json
import requests
# ——————————————————————
def file_to_str_proc(file_in):
str_out = “”
try:
fp_in = open(file_in,encoding=’utf-8′)
S3に格納されたファイルを検知し、EC2上のシェルを自動実行する
### S3に格納されたファイルを検知して、EC2上のシェルを自動実行する(&SNSにて、結果をメールに送信する)
(やった手順)
1.(EC2上)シェルの作成
2.(EC2上)シェルの動作確認
3.(AWS)S3バケットの作成
4.(AWS)Lambdaの作成 & IAMの設定
5.SNSの設定(トピックの作成 & サブスクリプションの作成)
6.動作確認(省略していること)
・EC2へのsshの接続手順(teratermなどで、接続済みの状態で記載してます)
・EC2のインスタンス名などは、知っている状態で記載しています### 1.(EC2上)シェルの作成【test.sh】
(※今回は環境の都合上、「hulft」ユーザで作成しています。)
(※合わせる必要がある箇所は、※表記していきます)
(【test.sh】の中身)
“`