Python3関連のことを調べてみた2020年12月07日

Python3関連のことを調べてみた2020年12月07日
目次

PythonとC++の中間言語を作ってみた(コード付き)

# まえがき
早く暖かくなってほしいがそういえばなんでうちにはこたつがないのか
疑問に思っているdangomushiです。

# 作ってみた

はい。いつものごとく何もやることがありませんので作ってみました。最近ファイルとかの
処理しかしてないんだが、、、、w
気を取り直して、概要です。

## どんなん?
例えば、このコードは(C++に翻訳してそのコードを)実行できます。
~~どうしてもOmega言語にしたい筆者~~

~~~test.om
import “iostream”

use std;

def main() {
print “OK”;
return;
}
~~~

これをpythonで読みこんでC++コードにすると

~~~cpp:test.cpp
#include “iostream”

using namespace std;

int main() {
cout << "OK"; return 0; } ~~~ こうなる。 ## コードです。 pythonコード ~~~python:main.py import sys cla

元記事を表示

【量子】量子ウォークの実装例

##1.はじめに
業務で時系列データ解析を担当している中で、たまたま本屋で参考資料[1]を見かけ、量子コンピューティングと時系列データ予測でリンクしている部分があると知り、個人で勉強を進めていた。
アドベントカレンダー(量子コンピュータ)も見かけ、せっかくなので勉強したことをまとめ、同じ分野に興味を持っている同志との出会いを期待し、本記事を作成する。

##2.参考資料
[1] [今野紀雄著、量子ウォークによる時系列解析、日本評論社、2020年9月](https://www.amazon.co.jp/dp/B08JYBQCW8/)
[2] [webマガジン「RAD-IT21」,ランダムウォークから量子ウォークへ](https://rad-it21.com/%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9/konno_norio_20200422/)
[3] [a memory less ephemeral 実装例](https://susan-stepney.blogspot.com/2014/02/mathjax.html)
[4] [今野紀

元記事を表示

地球上のポイントとラインで「点と直線の距離問題」を考える

# この記事でやること

GIS系のプログラミングをしている時、しばしば「点と直線の距離問題」に帰着させた処理を実装することがあります。(たとえば、現在地から指定したエリア(多角形で構成されていると仮定)まで距離を計算する、など)平面上の「点と直線の距離問題」であれば中学数学の範囲で楽に計算することができます。

– http://www.geisya.or.jp/~mwm48961/koukou/kyori04.htm

しかし、Geo系の図形問題は、元々の位置を表す値が平面上のものではないので上記公式が使えないです。

この状況下で地球上での「点と直線の距離問題」を解く一つの方法として「平面直角座標系に変換して、その上で解く」という方法があります。しかし、「平面直角座標系の適用範囲は日本だけでも限定的な地域でしか適用できず適用地域横断では、この方法が使えない」という問題があり、異なる座標系に跨がる場合を考慮しないといけないこともあるのでちょっとめんどくさいです。

– https://ikatakos.com/pot/programming_algorithm/g

元記事を表示

Digdagで長時間実行中の処理をチェックする仕組み

アプリケーションで利用したデータを分析やマーケティングに活用するために、Digdagで分析用データベースに転送する処理を定期実行しています。その処理が期待した時間以内に終わらなかったことを検知するために、実行中のワークフローを定期的にチェックし、実行時間の監視するワークフローを作成したのでその紹介をします。
※Digdagそのものに関する説明は割愛しています。

# 環境
Digdag Serverは[REST API](https://docs.digdag.io/api/)を提供しており、HTTPリクエスト経由で状態を取得することができます。
この機能を使って、全プロジェクトの実行状況をチェックし、長時間実行中のジョブがあったらslackで通知する仕組みを作りました。

利用言語は`python3.8.1`で依存ライブラリは`requests`と`pytz`です。

# 前提
まずDigdagで実行されるワークフローがどんな単位でデータが保持されているのかを説明します。これはあくまで私の理解なので誤りがあるかもしれません。

Digdagにはproject, workflow, s

元記事を表示

【Python】ロギングはとりあえず basicConfig() 呼ぶところから初めて、次は YAML で書いて dictConfig() で設定しろ

> 公式ドキュメントには「モジュール」と書かれているが、正しくは「logging パッケージ」だと思う。

# 概要

詳しくは、後述の対応するセクションを読んでほしい。

– (A) まず、何も設定しなくても **ログレベル WARNING 以上のログが標準エラーに出力される。**
– (B) レベルやフォーマットだけ設定したいなら、トップレベルのスクリプトで **`logging.basicConfig()` を呼び、設定する。**
– (C) もっと詳しく設定したいなら、**設定ファイルに書く。**
– INI 形式で書いたら `fileConfig()` で読み込ませる。
– YAML や JSON なら dict 形式で読み込んだあとに `dictConfig()` で設定する。
– プログラムでも設定できるけどおすすめしない。

長くなったので、アーキテクチャについては別の記事で解説する。

# 環境

– macOS Mojave
– Python 3.9.0 (anyenv-pyenv でインストール)

# 参考文献

– Python 3.9.1rc1

元記事を表示

[Python3 / pandas] elementwise comparison failed; が出るとき

# 経緯

このwarningはたまにしか見かけないけれども、発生すると毎回解決に時間がかかってしまっている。
もっと理解を深め(なるべく即座に解決す)るため、事例を記録してみた。

# 概要

タイトルの通り。

`FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison`が、

– どんな時に発生したか
– どうやって解決したか

を記録したもの。

※ただし、pandasがメインターゲットです。
 numpyで発生している場合の対策は特に記載しません。

(numpyはそんなに使わないので…。numpyで同じ問題にぶつかったら追記するかもしれません。)

# Environment

| |version|
|:—–|:—–:|
|Python|3.8.1 |

# 事例

## 1. `’string’ in np.array`

ソースコードは[

元記事を表示

if文付きの内包表記のやり方【Python】

この記事では、
if文付きの内包表記のやり方
を紹介します。

## 内包表記とは
内包表記とは、リストや辞書などののループ処理をシンプルに記述できる記法です。
[式 for 任意の変数名 in イテラブルオブジェクト]
の式で表されます。
内包表記の書き方【Python】 – Qiita
上の記事で主なやり方を載せてますので、内包表記自体が全くわからない方はこちらの記事からご覧ください。

## やり方
まずは、**サンプルデータを用意**します。
ランダムで10個の1~100の数をリストに取得します。

“`python
from random import
s = [randint(1, 100) for _ in range(10)]
“`

もし上記コードの意味がわからなかったら下の記事から内包表記の基本的なやり方を学習してください。
BFS(breadth-first search) by Python 備忘録(自分用)

自分用なので、かなり雑です。
また、以下のコードは[こちら](https://note.com/melon_ms_mtcc/n/nd2c0c7c16edb)から、引用させていただいたものです。
頂点n個、辺の数m本を標準入力で受け取り、その後、m(辺の数)回2つの頂点を受け取り、それを二つの辺における辺とする。そして、頂点1からの最短距離を出力する。
例えば、例えば頂点4個で辺4本、つながっている頂点が(1, 2)、(2, 3)、(3, 4)、(4, 2)なら

>入力
4 4
1 2
2 3
3 4
4 2

>出力
0
1
2
2

と言う感じ。

“`BFS.py
from collections import deque #1

n, m = map(int, input().split()) #2

graph = [[] for _ in range(n+1)] #3

for i in range(m): #4
a, b = map(int, input().split())
graph[a].a

元記事を表示

【Python初心者】社内業務の自動化(Webスクレイピング編)

# 自己紹介
ITでもプログラマでもない、生産系のEngineerです。
現在の業務も、プログラミングは必要ありませんが、自部門の業務改善に
 『Pythonのプログラミングが役にたつのでは?』
という、かなり単純な考えのもと、2020年9月から個人的にプログラミングを勉強し始めました。
最初の3か月間は、とにかく基礎的なことを身に着けるのに徹しました。
 『そろそろ、具体的に動くプログラムを作って業務に適用してやろう!』
と思い、ググりまくりながらプログラムを書いています。

# 取り組み内容
各種社内システムを使った、データの入力・登録・参照・更新などの業務が多々あります。
人頼りのやり方なので、データ量や頻度が多くなると(少なくてもですが…)、時間(工数)が増大しミスも増えます。
システム改修がいちばんと思いますが、予算、工数など現実的ではありません。
そこで、解決する手段として機械化(自動/半自動)を考えた。ツールは、無償・個人で取り組める、Python + Selenium でのWebスクレイピングを試すことにしました。

社内システム:
 ・物品の管理台帳システム
 ・

元記事を表示

Python / TweepyでOAuth認証してツイートする

・まず、Twitter developer登録が必要であるが、このサイトを参考にした 

Twitter Developerの登録手順と、APIでツイート取得するまでの記録。


・developer登録をしたら、Twitter developer portalで、PROJECT APPの設定ボタンを押す(以下の設定ボタン)

![スクリーンショット 2020-12-04 0.01.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29856/70c1ebbd-113f-9590-425e-e6a67066b3cb.png)

次に、Authentication settingsのEditボタンを押し、CALLBACK URLSにコールバックするURLを設定し(以下では、htt@://127.0.01:5000/authとした)、WEBSITE URLに、自身のURLを設定する

![スクリーンショット 2020-12-04 0.04.15.png](https://qiita-image-store.s3.ap

元記事を表示

DjangoでHTMLを読み込む方法【Python】

この記事では、
DjangoでHTMLを読み込む方法
を書いていきます。

## Djangoとは
Django(ジャンゴ)は、Pythonで実装されたWebアプリケーションフレームワーク。MVCデザインパターンに緩やかに従う。
Django – Wikipedia

## 実行環境
– MacOS
– python 3.7.5

## やり方
まずは、**Djangoをインストール**します。

“`terminal
$ pip install django
“`

次に、**ターミナルで好きなファイルに移動**します。
例えばデスクトップにあるprojectというファイルだったら、

“`terminal
$ cd desktop/project
“`

のように、cd の後にPathを書きます。

移動したら次に、**プロジェクトを作成**します。
myblogのところには、自分の好きな名前を入れて構いません。

“`terminal
$ django-admin s

元記事を表示

Pythonで東京の1日の新規感染者数を予想してみた!

今回は、Pythonを使って東京の1日の新規感染者数を予想してみました。

初めての機械学習ということで、シンプルなことしかできませんが、温かい目で見ていただけたら幸いです。

1. NumPyやPandasなどの外部ライブラリをインポート!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/933659/29ac568c-2219-a3fb-5242-0a28dc1c1b14.png)

NumPy, Pandas, Matplotlibをそれぞれインポートします。
import matplotlib.dates as mdatesは、後にグラフを作る際に日にちを加えるためのコードです。

2. データを集める
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/933659/9d2204d8-488e-5b86-06d5-cda25324f4a4.png)

都内の最新感染動向というホームページ

元記事を表示

python typing example

after set `python.linting.mypyEnabled` to true(not to sell you have Pylance in place) you are equipped with typing

“`python

import sys
from typing import Tuple, Union

global nums

def sum2(start: int, end: int, target: int) -> Union[Tuple[int, int], None]:
seen = set()
for i in range(start, end):
n = nums[i]
if target – n in seen:
return (n, (2020 – n))
else:
seen.add(n)
return None

if __name__ == “__main__”:
nums = sorted(m

元記事を表示

【 Word, Excel, PowerPoint, PDFファイル選択可能 】日本語テキストから、SVO格を指定した検索単語を含む「係受け元単語 -> 係受け先単語」を全件出力するGUIツール

##作ったもの

__[前回の記事](https://qiita.com/Afo_guard_enthusiast/items/7bd5f5ce581140299671)__で作成したコードを機能拡張して、テキストファイル(拡張子.txt)以外に、Word, Excel, PowerPoint, PDFファイルを、ファイル選択ダイアログから選択できるようにしました。

___

###( 挙動確認 )

####Wordファイル読込み

![tkinterword.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/862466/1cc7efb8-962c-1bbe-44a2-0426a0655ddb.gif)

今回は、インターネットから取得した政府(財務省)のWordファイルを使ってみます。

![スクリーンショット 2020-12-05 12.25.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/862466/

元記事を表示

【Discord.py】チャットのメッセージにリアクションを付ける

#はじめに
###投稿者の自己紹介
どうもまぬおです!discord.pyでBotを開発しています。よろしくお願いします

###お知らせ
[Discord Bot Advent Calendar 2020](https://qiita.com/advent-calendar/2020/discordbot)
この記事はDiscord Bot Advent Calendarの5日目の記事です。ほかの方の投稿もぜひご覧になってください

[1日目【Discord.py】Discord.py 1.5で追加されたIntentsを攻略する](https://qiita.com/manuo/items/7f62dc2f1e0a801a0708)
[2日目【Discord.py】チャンネルを持ったカテゴリを作成する](https://qiita.com/manuo/items/0723b9d47bddd755ea76)
[3日目【Discord.py】ボイスチャンネルの招待メッセージを送信する](https://qiita.com/manuo/items/7811987a932a1d25c780)

元記事を表示

OpenPyXLを使ったPythonでのExcel操作まとめ

OpenPyXLを利用したExcelをごにょごにょするツールを作成する機会があったので、実用ベースでの色々な操作方法(基礎的なものから幅広く)、注意点等をまとめておきます。

公式ドキュメント (http://openpyxl.readthedocs.io/en/default/)
# 環境
Windows 10
Python 3.8.1
OpenPyXL 3.0.3
Excel 2019
# 基本操作
### ブック操作
“`python
import openpyxl

# 新規作成
new_wb = openpyxl.Workbook()

# 既存Excelファイル読込
filepath = r’C:\hoge\hogehoge.xlsx’
wb = openpyxl.load_workbook(filename=filepath, read_only=False)

# 保存
wb.save(filepath)

# 閉じる
wb.close()
“`
#### *openpyxl.load_workbook()*
|引数|概要|
|—-|—-|
|read_on

元記事を表示

電話番号トラッカーのアプリを作る – Python3 / PyQt5

追記: windowのresizeに対応したほうが良いでしょうか?

固定電話番号の大まかな住所を教えてくれるアプリを作ります。
固定電話番号は10桁ではじめの一桁は「国内プレフィックス」二桁目からの五桁が「市外市内局番」となります。今回使うのは二桁目から五桁目となります。
[イメージ](https://www.soumu.go.jp/main_content/000270960.gif) ([電気通信番号指定状況](https://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html) (総務省))

## 見た目

### イントロダクション

まず見た目の部分のを作って行きます。

ページは2ページで`main`ページで電話番号を入力し、`result`ページで検索結果を表示します。それぞれわかりやすいようにまず階層構造を簡単にHTMLで表しましました。

メインページ(`main_page`)

“`

[誰でも出来る!]スタジオジブリ作品の場面写真を全て保存する方法

#はじめに
今年の9月からスタジオジブリ全作品の場面写真が順次提供され始めました。
常識の範囲でご自由にお使いくださいとのことでダウンロードしたい人も多いはず。

しかし,各作品50枚ずつなので,全部で950枚!!
好きな作品だけ、もしくは全部保存しようと思うと大変ですよね。
簡単に保存できる方法があればいいなと思っている人もいるのではないでしょうか。

そこで,提供されている場面写真全てを**作品ごとにフォルダを分けて自動で保存できる**方法を紹介します。

ページ下部の[Google Colabを使ったダウンロード手順](#google-colabを使ったダウンロード手順)に記載している手順通りに作業して貰えれば大丈夫です。

また,Google Colabを使う関係上,作業はPCで行うほうが楽ですが,スマホやタブレットでも同様の作業ができます!
[スマホやタブレットの手順はこちら](#スマホやタブレットの場合)

この記事の方法では自動的にGoogleDriveに保存されるようになっていますので,ダウンロード後はスマホ(iPhone,Android)やタブレット(iPad,And

元記事を表示

kaggle の Courses を読む —Intro to Machine Learning 4~7

# 冬が来ましたね
こんにちは!まはらせないき と申します!
2020/12/4現在、大学1年生で機械学習を勉強中です。

自分のモチベを保つために、[__kaggle__](https://www.kaggle.com/) の __Courses__で学習したことを書いていきます。
前回と今回は、Courses の __Intro to Machine Learning__ をやっています。

本格的に冬となってきましたが、パソコンの前ではあまり関係がありませんね。
今冬は、学校の授業はほどほどにして、Qiita の方に力を入れていきたいです!!

それではやっていきましょう!
___
__Intro to Machine Learning__ では、_pandas_ を使って内容が進んでいきました

~Intro to Machine Learning の流れ~
 1.モデルとは何か
 2.データを見てみる
 3.”決定木”による機械学習のモデル作成
 4.モデルの検定
 5.ランダムフォレスト
 6.機械学習の大会

今回は、__4~6__の内容です
# モデルの検証
モデルの作

元記事を表示

CloudMapper を daemon にする

# CloudMapper とは

awsのネットワーク構成図を作成してくれるツールです。
python3で動きます。

https://github.com/duo-labs/cloudmapper

インストール手順

[CloudMapperを使ってAWS環境を可視化する。](https://qiita.com/kooohei/items/58b6d8654a89c911a2e9)

# daemon にする

“`properties:/etc/systemd/system/cloudmapper.service

[Unit]
Description=cloudmapper
After=network.target

[Service]
Type=simple
WorkingDirectory=/var/www/github.com/duo-labs/cloudmapper/
ExecStart=/usr/local/pyenv/shims/python -u cloudmapper.py webserver
Restart=always
StandardOutput=j

元記事を表示

OTHERカテゴリの最新記事