Python関連のことを調べてみた2021年11月27日

Python関連のことを調べてみた2021年11月27日
目次

【図解解説】JOI2021-2022 一次予選 第1回 問題2 移動

## 図解解説シリーズ
競技プログラミングを始めたばかりでAtCoderの解説やJOIの解説ではいまいちピンと来ない…という人向けに、図解を用いて解説を行います。

## 問題文
### 情報オリンピック日本委員会に掲載されている問題

https://www.ioi-jp.org/joi/2021/2022-yo1/2022-yo1a-t2.html

### AtCoderに掲載されている問題
入出力など実際に確認して自分の作成したプログラムを採点することができます。

https://atcoder.jp/contests/joi2022yo1a/tasks/joi2022_yo1a_b

## 図解解説
今年度の一次予選のB問題は、以下の3つのスキルを確認する問題になっています。
1.入力・出力を正しく利用できる
2.算術演算子を正しく利用できる
3.条件分岐(if)を正しく利用できる

問題文を整理するために、具体的な数字を用いて、図示して考えてみます。
![スライド1.PNG](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

【図解解説】JOI2021-2022 一次予選 第1回 問題1 余り

## 図解解説シリーズ
競技プログラミングを始めたばかりでAtCoderの解説やJOIの解説ではいまいちピンと来ない…という人向けに、図解を用いて解説を行います。

## 問題文
### 情報オリンピック日本委員会に掲載されている問題

https://www.ioi-jp.org/joi/2021/2022-yo1/2022-yo1a-t1.html

### AtCoderに掲載されている問題
入出力など実際に確認して自分の作成したプログラムを採点することができます。

https://atcoder.jp/contests/joi2022yo1a/tasks/joi2022_yo1a_a

## 図解解説
今年度の一次予選のA問題は、以下の2つのスキルを確認する問題になっています。
1.入力・出力を正しく利用できる
2.算術演算子を正しく利用できる

![スライド1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2211017/0cd89743-ac2b-4f3e-4a4c-c13f187eb99

元記事を表示

【Lab色空間】cifar-10画像データを読み込みRGB画像をLab画像に変換する方法(Python)

# 目的
cifar-10の画像データを読み込みRGBをLabに変換する

# 事前準備
## インポート

“`python
import pickle
import numpy as np
import matplotlib.pyplot as plt
import cv2
“`
# 画像の読み込み
[cifar-10データセット](https://www.cs.toronto.edu/~kriz/cifar.html)から画像データセットをダウンロード

###**画像の中身**([cifar-10データセット](https://www.cs.toronto.edu/~kriz/cifar.html)より引用)

– 10クラスの60000の32×32カラー画像
– RGBフルカラー画像: RGB(赤色/緑色/青色)3色の組み合わせで、それぞれ「0」~「255」の256段階
– 1つ分のデータが基本的に(3, 32, 32)もしくは(32, 32, 3)(=計3072要素)という多次元配列の形状

**「pickled」オブジェクトのため、ファイルを開いて辞書を返す**

元記事を表示

Pyinstaller DLL 不足のエラー解決

##Issue
Imported package used in python script : pyexiv2
Exe creation by Pyinstaller was completed successfully but runtime error occurs.

###Error 1 (missing exiv2.dll)

“`python
pyimod04_ctypes.PyInstallerImportError:
Failed to load dynlib/dll ‘C:\\Users\\xxx\\AppData\\Local\\Temp\\_MEI120722\\pyexiv2\\lib\\exiv2.dll’.
Most likely this dynlib/dll was not found when the application was frozen.
“`

###Error 2 (missing exiv2api.pyd)
“`python
ModuleNotFoundError: No module named ‘exiv2api’

元記事を表示

作成したアプリをWebに上げてみた。(Flask、GitHub、Herokuにて)

#はじめに

今回は自分の備忘録としてFlaskを使用して作成したアプリをGitHub、Herokuを使いデプロイする方法を簡単にまとめてみました。
(※デプロイとは、作ったアプリを運用環境に配置・展開してWeb上で使える様にすること)

先に書いた通り備忘録なので、ざっくりと書いていきます。

#おおまかな手順
①アプリを作成する。

②Git Hub、Herokuを使える状態にする。

③Herokuにアプリを登録する下準備をする。

④HerokuにアプリをPush!

これだけ。
やる事は単純で、簡単そうに見えます。
というか、正しい手順を踏み外さなければそう難しいことではないです。

#構築環境

  • MacOS
  • VScode
  • Flask

    #①アプリの作成
    今回はPythonの四大フレームワーク(Django,Flask,Bottle,Tornado)のうち、学習量が少なく、シンプルかつ手軽にアプリを作成できるらしい”Flask”を使いアプリの作成を行いました。

    アプリの制作過程などについてがっつり書いても良いのですが、

元記事を表示

MMPoseで骨格推定をやってみる(Google Colab)

# はじめに

姿勢推定(骨格推定)の代表的なフレームワークであるMMPoseを使ってみて、日本語の記事が少ないなと思ったので、姿勢推定や骨格推定してみたい方の参考になればいいなと思って、記事を書こうと思いました。

# 姿勢推定(骨格推定)とは
上の画像を入力として与えたときに、下の画像のように物体(ここでは牛)の鼻や目、足などのキーポイントをそれぞれ特定し、適切な部分を線で結んだ画像を得るタスクになります。
![input_cow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/890361/b91fde1c-9738-7f5a-7b7c-55c879cb5dbd.png)![output.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/890361/a75edcb9-fcaa-40d5-e6e0-dc7722935a82.png)

対象としては上記画像のように動物もあるし、人間もあります。人間の場合は例えばテニスのサ

元記事を表示

【AWS Athena】クエリ実行結果を高速に取得する v2【Python】

# はじめに
Python3上でSQLを書き、[awswrangler](https://pypi.org/project/awswrangler/)を使用してデータを取得する方法を紹介します。
タイトルの「高速に取得する v2」ですが、以前書いた記事

[【AWS Athena】クエリ実行結果のデータを高速にPandas.DataFrameとして取得する](https://qiita.com/nijigen_plot/items/02051f09eee3a2dee2c2)

の続編的な形になるため、そのように書いています。
Python3上でSQLを書いてデータを取得するときは、**pyathenaよりawswranglerのほうが圧倒的に早いよ** ということを書きたいというのが趣旨です。

# 環境・使用ライブラリ

2種類あります
それぞれ箇条書きのリンク先は実際に計測したcolaboratoryとなっています

## colaboratory (Python 3.7.12)

– [pyathena側](https://colab.research.google.com/d

元記事を表示

LINEのBotからプッシュ通知する方法

## はじめに
以前にお試しでLINEのボットを作成したことがあるが、その時にプッシュ通知の方法についても調べたのでメモを残しておく。
(プッシュ通知のサンプルコードはPythonで作成。)

## メモ内容
① チャットボットの作成
② 作成したBotからプッシュ通知をしてみる。
③ 画像を送るプッシュ通知も試してみる。

### ① チャットボットの作成
LINEの公式アカウントが必要となるが、下記のサイトにBot作成までの流れが記載されているので、こちらを参考にすると良い。

LINE BOTの作り方

### ② 作成したBotからプッシュ通知をしてみる
プッシュ通知の方法やルールについては、LINE Developers の公式サイトを確認すれば大体のやり方を把握できる。

https://developers.line.biz/ja/docs/messaging-api/sending-messages/

https://developers.line.biz/ja/reference/messag

元記事を表示

NetworkXで経路探索をやってみる。<グラフ作成〜A*アルゴリズム>

#はじめに
グラフ理論を学ぶ機会が、増えてきました。
ある出発地点から、目的地点までの経路を考える時にも、グラフ理論が活用できます。
Pythonでは、NetworkXという、グラフ計算ライブラリがあります。
本記事は、NetworkXを使用して、グラフの作成〜経路探索してみました。

今回やりたいことは、3つ。

* 格子状にノードを配置した、グラフを作成する(下図、左)
* グラフから、ランダムにノードを削除する(下図、中央)
* A*アルゴリズムを使用して、経路探索する(下図、右)
![graphs.002.png.001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1902761/3a174746-b586-5d48-82dd-2340b1a5dd5b.png)

#コードを書いていく
##Step0. 準備
Python 3.8.6、NetworkX 2.6.2を使います。
まず、importしていく。

~~~python
import matplotlib.pyplot as plt

元記事を表示

WindowsでPDMを使ってtorchvisionを入れようとしたらエラーで怒られてしまった人へ

# はじめに

Windowsで`pdm add torchvision`しようとしたら

“`
assert record is not None, “In {}, {} is not mentioned in RECORD”.format(
AssertionError: In C:\Users\hoge\AppData\Local\Temp\pip-unpack-XXXXXXXX\torchvision-0.11.1-cp39-cp39-win_amd64.whl, torchvision-0.11.1.dist-info/LICENSE is not mentioned in RECORD
“`

とassertが出てインストールできなかった。本稿では何とかしてインストールするための方法を紹介する。

# 実行環境
OS: Windows 10 Pro (19044.1348)

# エラーの再現方法
1. `$mkdir tmp` で空のディレクトリを作成する。
1. powershellを開いて、上で作成したディレクトリをカレントディレクトリにする。
1. powers

元記事を表示

ショットガンシャッフルはN回やると元の状態に戻るぜ!

##ショットガンシャッフルはカードを痛めるぜ!!!
カードを痛めることで広く知られている通称ショットガンシャッフル、
正式名称リフルシャッフルはN回目のシャッフルでシャッフル前の状態に戻るそうです。
何回で元に戻るのか検証してみましょう。

##52枚のトランプを痛める

それではやっていきましょう。
今回は52枚のトランプを使っていきます。

手順としては52枚のトランプを用意してショットガンシャッフルを行い、
元の状態に戻るまでシャッフルを続けて、その時のシャッフル回数を表示する方針となります。

元の状態に戻ったかどうかの判定ですが、頭のいい方法が思いつかない凡骨だったので
シャッフル前のデッキとシャッフルしているデッキ間の52枚全部についてそれぞれ繰り返しで比較しています。

無限ループに陥ってしまうと怖いので100回のシャッフルでループを抜けるようにしましたが、
結果それ以下の回数で試行が終了したのでコメントアウトしています。

“`py:ShotGunShuffle.py
import pandas as pd

vCards = []
for lSuits in [‘

元記事を表示

【AWS】素の Cloud9 に Python 3.9 をインストールする

結果何とかなりましたが時間を吸われたので、
備忘録として残します。

## 1. やりたいこと

– AWS Cloud9
– Python `3.7.10` (既定のバージョン※) を `3.9.0` にアップデートする
※ 2021 年 11 月 24 日 現在

## 2. 前提

– 環境
– 作成してそのままの Cloud9 (Amazon Linux 2)

## 3. 方法

Python バージョン `3.7.10` からスタートします。

“`sh
$ python –version
Python 3.7.10
“`

### 3.1. pyenv インストール

まず pyenv をインストールします。

“`sh
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

# 確認
$ ~/.pyenv/bin/pyenv –version
pyenv 2.2.2-1-gf2925393
“`

`~/.bashrc` に以下を記載し、 pyenv コマンドへパスを通します。

元記事を表示

Python,Djangoの正規表現まとめ

# はじめに

個人的まとめ

– PythonのreモジュールはPerlに見られる正規表現マッチング操作と同様のものを提供するもの
– DjangoなどでもURLパターンの指定の際などに使われる

[re – Regular expression operations – Python 3.9.7 documentation](https://docs.python.org/ja/3/library/re.html)

[Regular Expression HOWTO – Python 3.9.7 documentation](https://docs.python.org/ja/3/howto/regex.html#regex-howto)

# raw string 記法

– 多くの場合 Python コードの中の正規表現はこの raw string 記法を使って書かれる

“`python
\section # マッチさせるテキスト
\\section # re.compile() のためのバックスラッシュエスケープ
“\\\\section” # 文字

元記事を表示

PythonでSeleniumのHeadless Chromeを用いたWebスクレイピング (目的地までの所要時間を調べる)

#概要

下記の記事に引き続き,今回は入力された『出発地』から『目的地』までの所要時間をWebスクレイピングにより取得するPythonスクリプトを開発してみた.

[PythonでSeleniumのHeadless Chromeを用いたWebスクレイピング (30画以下の漢字の画数を調べる)](https://qiita.com/rimorimo/items/b83588c72f60d88be3c7)

#開発

**【システム環境】**
OS X El Capitan 10.11以降(他のOSでも可)
Python 3.6.5以降

**本記事ではディレクトリ操作をMacに合せて記述しているため,他のOS(Linux, Windows等)の使用時は必要に応じてディレクトリ構造を置き換えて考えるものとする.**

**外部ライブラリのインストール**

“`bash
$ pip install selenium
“`

**Pythonスクリプトとパッケージ・モジュールの作成**

“`bash
$ mkdir ~/RequiredTimeSearcher
$ touch ~/R

元記事を表示

コンピュータとオセロ対戦28 ~勝敗予測、改善~

https://qiita.com/tt_and_tk/items/068f2afde6db637e189f

[前回](https://qiita.com/tt_and_tk/items/98a06feb9b3c66fa2e89)

# 今回の目標
[前回](https://qiita.com/tt_and_tk/items/98a06feb9b3c66fa2e89)の機械学習を改善する
# ここから本編
具体的に、ターン数5でも平均絶対誤差が10程度になれば有効に予想できているといえると考え、これを目標に改善をしていきます。

## 改善案1

前回は盤面情報のみから学習を行い、最終結果を予想しました。
今回はより精度の高い学習を目指し、以下の点を変更しました。

* 説明変数として次のターンで相手が置ける手数を追加
* 最終スコアを「黒の駒の数-白の駒の数」から「自分の駒の数-相手の駒の数」に変更、それに伴い「黒の盤面」を「自分の盤面」に、「白の盤面」を「相手の盤面」に変更
* 学習方法を、前回良い結果を残したLinearRegression、Ridge、KNeighborsCl

元記事を表示

QGIS+VSCodeでのデバック環境構築

## はじめに

QGISのためのVSCodeでのデバック環境を構築します。

## 環境
– Windows 10
– QGIS 3.16
– OSGeo4W

## 最初の環境構築(QGISとVSCodeのインストール)
1. QGISのインストール
1. ネットワークインストーラーで可変な環境をインストールしましょう
2. https://qgis.org/ja/site/forusers/download.html
2. VSCodeのインストール
1. https://azure.microsoft.com/ja-jp/products/visual-studio-code/

## VSCodeでのデバック準備

**`ptvsd`のインストール**

1. OSGeo4Wのshellを起動する
1. `C:/OSGeo4W64/OSGeo4W.bat`でcmdを起動する
2. python3をメインで使用するようにコマンドを実行する
1. `py3_env`でpython3をメインで使えるようになる
3. `pip`を

元記事を表示

PythonでSeleniumのHeadless Chromeを用いたWebスクレイピング (30画以下の漢字の画数を調べる)

#前述

私事であるが子供の頃から漢字が非常に苦手である.書き順も滅茶苦茶でなおかつかつ悪筆なため日々反省している.

以前,漢字の画数を使ったクイズに挑戦した際に多くの漢字の画数を調べる必要があったため,とあるWebサイトを利用させていただいた.

そのWebサイトで検索可能な漢字の画数の上限は30画ではあるものの,余程の事がない限りそれ以上の画数の漢字に遭遇する事はないので,個人的には問題なかった.

Webスクレイピングの手法はSeleniumの他にBeautiful Soupやurllibが存在するが,今回は最も単純なコードで記述できるSeleniumのHeadless Chrome (ヘッドレスモード) を採用した.

Headless ChromeはWebブラウザの直接起動ではなくバックグラウンド起動である.

バックグラウンド起動とは言うものの,処理のために時間がかかるのが欠点である.

#開発

**【システム環境】**
OS X El Capitan 10.11以降(他のOSでも可)
Python 3.6.5以降

**本記事ではディレクトリ操作をMacに合せて記述し

元記事を表示

【Python】株価データ分析 株価チャートを描く~mplfinance トレンドライン編~

## 修正(2021.11.27)

データ(株価データ)によっては,
高値と安値の線を引くためのデータ(hlinesに渡すデータ)がfloatでないというエラーが発生しましたので,

“`python
# エラー箇所
hlines=[df[‘High’].max(), df[‘Low’].min()]
“`

次のように修正しています

“`python
# float変換
max = float(df[‘High’].max())
min = float(df[‘Low’].min())
hlines=[max, min]
“`

## はじめに

[【Python】株価データ分析 株価チャートを描く~mplfinance編 その1~](https://qiita.com/tnozoo/items/60151108f946c48b666d)で描いた線が思ったより良い感じだったので,トレンドラインっぽい線を描きたいと思った

今回は線形回帰トレンドラインを描いてみる

株価チャートに,線形回帰で導いた一次関数
$y = ax + b$
$y$ … 株価
$x$ … 日付
$a

元記事を表示

【Python3】0から作るPython初心者プログラミング【03】-大人数でじゃんけんプログラム-

#【ご挨拶】こんにちは! ぬかさんエンジニアリングです。(3回目‼)
前回の投稿にまたまたありがたいことにコメント頂きまして、**クラス**の使い方について教えて頂きました。
今回は、それらの内容も含めた上で**複数人同時にじゃんけんが出来るようにアップデート**した内容になっております。
**クラス**を使って実際に遊べる程度のプログラムを作ってみたいと思っていた初心者の方がいらっしゃいましたら是非挑戦してみてください!また、複数の**インスタンス**をまとめて扱う方法や特殊**メソッド**`__str__`など少し応用的な話もありますので、既にクラスを理解されている方も興味があれば見ていってくださいね!
**LGTM**も是非よろしくお願いし

元記事を表示

【図解解説】ARC129 B Range Point Distance

## 図解解説シリーズ
競技プログラミングを始めたばかりでAtCoderの解説やJOIの解説ではいまいちピンと来ない…という人向けに、図解を用いて解説を行います。

## 問題文

ARC129 B – Range Point Distance

https://atcoder.jp/contests/arc129/tasks/arc129_b

## 図解解説

問題文を整理するために、具体的な数字を用いて、図示して考えてみます。
![スライド1-11-23-21_14-34-11-495.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2211017/04a9549d-5157-cc0b-2a34-408d133c0abc.png)
そこで、問題文に示されているdist(l,r,x)に具体的な数字を入れて考えます。まずl=2,r=4として、◯をl、●をrとして数直線に表したものが左上の図になります。xの値がlとrの間にあれば、答えは0(dist(2,4,2)=dist(2,4,3)=dist(2,4,

元記事を表示

OTHERカテゴリの最新記事