Python関連のことを調べてみた2022年10月04日

Python関連のことを調べてみた2022年10月04日

Google Maps APIのGeocoding APIの番地取得処理を見直そう

# はじめに
[前回の記事](https://qiita.com/Kanno-san/items/689b463a030199c928cf,ジオコード)では、ジオコーディング時に変換前の住所と変換後の座標についてくる住所データを比較し精度のチェックをしました。
今回の記事では、残課題になっている変換後の住所で番地表記がブレる課題の対策をしていきます。

# 背景と目的
## 背景(再掲)
当社ではガスや灯油の個人宅への配送を支援するサービスを提供しています。
そのサービスの中に配送順を算出する機能がありますが、とりわけ重要となるのが個人宅の座標取得(ジオコーディング)となります。
座標がずれると「おかしな配送順序になる」、「ナビアプリへ連携したときに変なところに案内される」などの問題が発生します。

### 課題
座標の精度チェックの場合に以下の挙動が発生し、比較に失敗する場合がありました。
+ ○丁目-△の様に丁目や小字の後にハイフンが入ってしまう
+ 〇〇△△の様に番地がくっつく

## 目的
前述の課題を回避するため、比較用住所の構築のロジックの見直します。

### やること

元記事を表示

WSL2で今話題のStable Diffusionを動かしてみた

まずはUbuntuを最新の状態にアップデート
“`
$ sudo apt update
$ sudo apt upgrade
“`

NVIDIA GPU(CUDA)が使える状態になっている事を確認
“`console:
$ nvidia-smi
Mon Oct 3 11:03:01 2022
+—————————————————————————–+
| NVIDIA-SMI 515.65.01 Driver Version: 516.94 CUDA Version: 11.7 |
|——————————-+———————-+———————-+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage

元記事を表示

(初心者向け)BERTを用いたチャットボット(質疑応答)

こんにちにゃんです。
水色桜(みずいろさくら)です。
今回はBERTを用いたチャットボットについて説明していこうと思います。
そもそもBERTって何って感じの方にもわかりやすいように書いていくつもりです。
まず今回の目標を先に示そうと思います。
下の画像のように、背景となる文章を与えたときに、質問に答えてくれるプログラムを作成します。
(ぐへへ…これを使えば宿題も自動でやってくれ…ちょっ先生に言うのだけは!)

まずBERTの基礎となっているtransformersというものについて説明し、その後、BERTについて説明します。最後に実際にプログラムの説明をしていきます。
本記事では簡略化のためにモデルの作成については取り扱いません。気になる方は[こちら](https://qiita.com/kumakura013/items/72ca663cfd071000f4c9)の記事を読んでみてください。とても詳しく解説されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847349/

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのオブジェクト指向プログラミングの比較

Python JavaScript PHP Java Ruby

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのオブジェクト指向プログラミングの比較

# Python

https://qiita.com/kaitolucifer/items/926ed9bc08426ad8e835

# Ruby

https://qiita.com/shogo-1988/items/e749208c0733bbe025c0

# PHP

https://qiita.com/mpyw/items/41230bec5c02142ae691

# Java

https://qiita.com/nao0725/items/aba8126c50bf85543c78

# JavaScript

https://qiita.com/shotets/items/e4b2ca36f5cbdc39

元記事を表示

trioによる並行処理⑥(try~finallyの罠と回避策)

[目次](https://qiita.com/Kyosuke_Ichikawa/items/b7fdffcbfe00773074a6)

## try~finallyの罠
[trio](https://trio.readthedocs.io/en/stable/index.html)を使っている時、try~finallyの構文に注意が必要です。例えば
“`python
async def func():
try:
print(“try start”)
await trio.sleep(1)
print(“try done”)
finally:
print(“finally start”)
await trio.sleep(0)
print(“finally done”)
“`
のような関数があるとき、finally内の全処理は常に実行されると思ってしまう方も居るのではないでしょうか。
しかし、下記サンプルが示すようにそうなりません。

“`python:サンプル
imp

元記事を表示

IBM CloudのVPCでDjangoのアプリケーションを動かす

# 1.はじめに
IBM Cloudの Virtual Private Cloud(VPC)の仮想インスタンスにPythonのアプリケーションフレームワークであるDjangoのアプリケーションを起動するまでの手順になります。
Django自体、もう目新しいものではありませんが、アプリケーションを評価したい時に、その時のバージョンで、すぐに作れるように、改めて動作を確認した結果として新規に投稿します。

今回は、VPCの仮想インスタンスで、Webサーバ、DBサーバを作成した後、Djangoの[はじめての Django アプリ作成](“https://docs.Djangoproject.com/ja/4.1/intro/tutorial01/”)で作成する「簡単な投票 (poll) アプリケーション」をデプロイし動作を確認するところまでの流れになります。

# 2.システム構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209170/6fe3d3b0-3596-9c5e-dfe

元記事を表示

コマンドプロンプトで実行するPythonスクリプトにおけるANSIカラーの出力

WindowsのコマンドプロンプトでPythonのスクリプトを実行し,コンソールへの出力に色を付けたり太字にしたりする方法です.

# 短いサンプルコード

“`py
import os
os.system(”)
print(‘\033[31mRed\033[0m’)
“`

コンソールへの出力は次のとおりです(サンプルコードをmain.pyとして実行):
![foo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425475/46333304-4d9e-344b-c139-9a825bb0ff36.png)

# 解説
サンプルコード2行目の`os.system(”)`は引数のコマンドをサブシェルにて実行します[1].Windowsの場合通常はコマンドプロンプトです.引数が`”`のため単にサンプルコードのプロセス上で機能し始めるだけです.
PythonインタプリタはANSIエスケープシーケンスの処理を有効にしないので`os.system(”)`を使用してください[2][3].

# 補足

元記事を表示

【Python】numpyで空の配列を生成する方法

## 背景
– 最終的な要素数がわからない場合に、空の配列を作成しておいて、要素を追加して配列を作成したい時があります。
– listでは、`l = []`という形式で空の配列を作り、`l.append(1)`という形で簡単に要素を追加できます。
– ただ、おそらくlistで行うよりもnumpyで同様の処理を行なった方が、処理速度が速いので、今回numpyでの方法を調べてみました。

## 目標
– numpyで空の配列を作れるようになる。

## numpyで空の配列を生成する方法
– numpyで空の配列を作成するには、`np.empty()`を使用すればできます。

“`python:numpyでの空の配列の作り方
#1次元の空の配列を作る
1d_empty = np.empty([0])

#2次元の空の配列を作る
2d_empty = np.empty([0, 0])

#3次元の空の配列を作る
3d_empty = np.empty([0, 0, 0])
“`

## 補足
– 速度検証もそのうち行いたい。

## 更新記録
ver. 0.0.0:記事公開:2022/1

元記事を表示

Kindleの文字部分のみを自動で切り取って画像で保存していくPGM

Kindleの文字部分のみを自動で切り取って画像で保存していくPGM

Kindleの文字部分のみを自動で切り取って画像で保存していくPGMをpythonで作りました


githubURL: https://github.com/NanjoMiyako/KindoleTextTyusyutu


使い方
github上のTextTyusyutu-KoukaiYou.pyの各変数の値をscn1, scn2, scn3に基づいて設定して
から、kindleのページを文字画像をとる位置に設定し、取得する位置ページ数を
positionCountの変数を適宜変えます。そして、画面を右半分:Kindle画面、
左半分:paint画面にしてから、TextTyusyutu-KoukaiYou.pyを実行します。
なお、ペイントは「名前を付けて保存」で予め保存場所を適宜設定しておきます。


参考にしたサイト
機械学習で競艇の3連単予測アプリを作ってみた

# はじめに
[競艇の予測アプリ](https://ny3.herokuapp.com/ “競艇予測アプリ”)を作成したので、制作の流れをまとめていきます。

なお、初心者ゆえ、勘違いしている部分等あれば色々教えて突っ込んでいただけるとありがたいです。
あとUIをよくすることに関してはほぼ勉強していないので、原始的な仕上がりとなっています点ご容赦ください。

# 結論
2022年1月〜2022年6月15日までのレースを学習させ、2022年6月16日〜8月31日の約12,000レースにおいて実践。
結果としては、なんと **回収率98%** まで持っていくことができました!!
オッズ1000倍の3連単を当てたりしているので、人間が見ているところとは違う観点から順位を予測することもあるとわかります。

# 制作の流れ
①データ収集

②データクレンジング

③モデル作成

④モデル学習

⑤検証

## ①データ収集
特徴量として使えそうなデータを探したところ、以下のサイトから全競艇場の番組表と競走成績がダウンロードできることがわかりました。

https://www.boatr

元記事を表示

pythonによる共分散構造分析 ~MMMを添えて~

# はじめに
共分散構造分析をする時、どうすればいいだろうか。
Amos?いやいや有料だし、R?いやいやメインで普段使っていないし、python?いやいや共分散構造分析簡単にできないんじゃ…。

ドウゾ( ´·ω·)つ [semopy]

ということでpythonで共分散構造分析が簡単に?できるsemopyを使用してみた。
実務で使うような想定でMMM(マーケティングミックスモデリング)の真似事をしながら試してみて、結果をlavaanやAmosの結果と比較した。
ちなみにMMMのことはほとんど知らないので調べながら実践。

結論を言うと、実務でも使えるツールだと思う。

# 参考文献
– [共分散構造分析[Amos編] - 豊田 秀樹(著)](https://www.amazon.co.jp/dp/4489020082)
– [Pythonによるマーケティングミックスモデリング(MMM:Marketing Mix Modeling)超入門 その2](https://www.salesanalytics.co.jp/datascience/datascience098/)
– [MM

元記事を表示

ABC 271 回答メモ

0.はじめに
 Cは、初見簡単に解けそうに感じたけど
 意外とてこずりました。

1.A – 484558
 最近2進数を扱う問題があったので、その時のソースを参考に
 簡単に解けました。
 
“`
H=str(hex(N))[2:]
“`
 文字列にして、3文字目から参照するのは2進数と変わらずでした。

 https://atcoder.jp/contests/abc271/submissions/35275984

2.B – Maintain Multiple Sequences
 2次元数列を格納して
 指定アドレスを抽出するだけの簡単なお仕事。
 行は指定数マイナス1にして、列は、1列目が列数なので
 そのまま使えるというのがみそでした。

 https://atcoder.jp/contests/abc271/submissions/35281480

3.C – Manga
 考え方1)
  (1)一番うまくいってもN巻まで読めるのが最高
  (2)N巻までの数列Lを作って、リストAを頭からチェックし
    持っている巻は数列Lの該当アドレスを1に変更。
    

元記事を表示

TelloConsole ビギナーガイド:Python の環境構築

# Tello Console を始めるための環境を構築する
 このサイトは、Tello Console の環境を構築する方法を記述します。python、tello プログラミング初心者向けとなります。
ここでは、python を使って tello ドローンをプログラミングするまでに必要な環境を構築します。tello、TelloConsoleについて詳しく知りたい方は、[こちらの**Tello SDK を自分なりに最適化してみた(Tello-Console)**](https://qiita.com/GAI-313/items/7ff5bece03e9173678fb)を参照してください。
 気をつけてほしいのが、使用しているPC の応じて環境構築の方法が異なります。そのため Widows、macOS、Ubuntu での環境構築方法をセクションを分けて記述します。
**注意:ここでいう Python は、Python 3 のことを指します。**

– [Tello Console を始めるための環境を構築する](#tello-console-を始めるための環境を構

元記事を表示

TelloConsole ビギナーガイド:サンプルコードの実行

# Tello Console をのサンプルコードを実行する
 この記事は、**TelloConsole チュートリアル第2項**となります。初めてこの記事を見られた方、もしくは Python の環境をお持ちでない方は **[Tello Console を始めるための環境を構築する](https://qiita.com/GAI-313/items/ead355cb552d13405cc9)** を参照してください。この記事では、TelloConsole をダウンロードして実際に Tello をサンプルコードで飛ばしてみます。この記事は初心者向けに作成されています。
 前提として、Tello EDU を用意してください。Tello EDU は[こちら](https://store.dji.com/jp/product/tello-edu?set_region=JP&vid=47091)で購入できます。

## TelloConsole をダウンロードする
 TelloConsole は、[GitHub](https://github.com/GAI-313/Tello-Conso

元記事を表示

「机上のAI」では終わらせない! 真のAIエンジニアに求められる現場経験と実践力とは

こんにちは。 [AI Dynamics Japan](https://aidynamics.jp/) でマーケティングを担当している [Tech Lady](@tech_lady731) です。

本記事は、AI人材不足と言われて久しい昨今、なぜAI人材は育ちにくいと言われるのか、本当の課題は何なのか 、最近某囲碁アニメにハマり『神の一手』を極めるために、まずは池袋付近で初心者向けの囲碁サロン探しに勤しんでいるというAI Dynamics Japan主任エンジニアの[みきを](@michelle0915)さんと、特に「AIエンジニア」に焦点を据えて対談形式で紹介しています。

AIエンジニアとして活動するのに必要なスキル・ノウハウなどにも触れていますので、ご覧いただければ幸いです。

![qiita1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2583928/9b8c33cb-e6e8-0e28-1801-4ba13f1e1b45.png)

## AIを学ぶのは簡単?
**Tech

元記事を表示

pydanticの動作変更 [BaseConfig]

## はじめに

pythonは動的な型推論を行うがpydanticを使用することで型検証が可能である。しかし,作成時は型検証を行うが再代入時には型検証が行われない。この挙動を変更するには`BaseConfig`を使用する。

## TL;DR

– `pydantic.BaseConfig`による動作の詳細設定が可能
– `validate_assignment`: 再代入時の型検証
– `allow_mutation`, `frozen`: イミュータブル化
– `extra`: 宣言以外のデータが入力された場合の設定

上記以外の設定項目は[公式ドキュメント](https://pydantic-docs.helpmanual.io/usage/model_config/#options)を参照

## クラスの設定 `pydantic.BaseConfig`

BaseConfigには下記2つの記述方法がある。ここでは1つ目の記述で統一する。

“`python
# パターン1
class User_1(pydantic.BaseModel)

元記事を表示

【Tkinter】spinboxの使いかた

<初めに>
TkinterのGUIを最近よく製作するようになり
オプションを覚えるのが大変なので、今回はspinboxの忘備録を投稿します
誰かのメモ程度に役立てば!(^^)!

“`
import tkinter as tk

spinbox = tk.Spinbox(frame_name, from_=0, to=120, increment=10, wrap=True, state=”readonly”)
“`

*frame_name
spinboxを設置するフレーム名

*from_
spinboxの最小値

*to
spinboxの最大値

*increment
値の間隔

*wrap
True →spinbox内が最小値の時に、繰り下がりボタンを押すと最大値になる
False →最小値の時に、繰り下がりボタンを押しても何も起きない。

*state
spinboxに直接入力が出来ないようにする
※ユーザーによっては、明後日の数値を入れられる恐れを回避する

<最後に>
spinboxの最低限のオプションをメモしました…!
これ以外にも沢山オプションあるので、気になる方

元記事を表示

飛んでいる飛行機をOpenCVで検出する

**PythonのOpenCV**を使って動画から映像を取得し、**飛んでいる飛行機を検知**します。

今回はピクセルを比較する方法で**動体検知**します。
とてもシンプルな手法ですが、飛んでいる飛行機を検知する上では**意外と正確**に検知出来たので記事にしました。

# 結果


0の0乗は何か?

0の0乗は何かを検索するといろいろな意見が出てきます。

「1だ」「いや0だ」「いやそもそも定義できない」など。

そこでpythonでy=0^xのグラフを描いて検証しました。

指数関数のグラフを描くのに下の記事を参考にしました。

https://qiita.com/Cesaroshun/items/8dd2321f909ae6ec7566?fbclid=IwAR0KZ0LEwvo83bI-ffrDceNvY_DoOR32qbNYUq27Jn-Dqw5A_nsfSR7bdIo

コードは以下です。

“`python:o^o
import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(0, 10, 0.1)
y = 0**x
plt.plot(x, y)
plt.ylim(-1.5, 1.5)
plt.show()
“`

出力結果は下になりました。

![0power0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

pythonで前月の最終日からNヶ月前の初日にデータを区切る

# 最初に

機械学習やデータ分析で、特定の期間にデータを絞りたいなという時があると思います。

アドホックに絞る場合はPySparkや素のSQLで簡単に絞れますが、これを自動で、動的に絞りたいときはどうするか?

ということで、コーディングしてみました。

# ゴール
「プログラムを実行する日」を起点として、「その前月の最終日」から「3ヶ月前の月の初日」の2つを取得したいと思います。

# 流れ
## 「プログラムを実行する日」を取得する
つまり本日のdatetimeを取得します。
“`python
from datetime import date

current_datetime = date.today()
print(current_datetime)
>>> 2022-10-02
“`
## 「その前月の最終日」を取得する
### プログラム実行日の前月データ
relativedeltaメソッドを使います。
“`python
from dateutil.relativedelta import relativedelta

one_month_ago_datetim

元記事を表示

OTHERカテゴリの最新記事