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

Python関連のことを調べてみた2022年07月02日
目次

Pythonソートの速さを比べてみた: インスタンスのリストをソート

## はじめに

Pythonインスタンスのリストを、複数方法でソートし、
その速さを比較してみました。

## 検証シナリオ

Bookクラスのインスタンスリストをtitleの降順でソートします。
“`
class Book:
def __init__(self, title: str, author: str, price: int):
self.title = title
self.author = author
self.price = price
“`

## ソート方法

以下の5つの方法でソートし、処理時間を比較します。

– 1\. sorted()関数、key指定にlambdaを使ってソート
– 2\. sorted()関数、key指定にattrgetterを使ってソート
– 3\. リストのsort()メソッド、key指定にlambdaを使ってソート
– 4\. リストのsort()メソッド、key指定にattrgetterを使ってソート
– 5\. バブルソートを使ってソート

## サンプルコード

“`sort.py
# Bo

元記事を表示

レシートのOCR・店名編(Python)

# 概要

Google Vision APIを使ったOCR結果をもとにレシートの店名を抽出します。

## 前提となる記事

下記の記事を前提としています。

https://qiita.com/shoku-pan/items/bf5645894803769edc72#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB

データフローは下記のようになっており、

“`mermaid
graph LR
image –>|OCRの実行| OCR_object
OCR_object –>|必要なデータを抽出| text_and_position_data
“`

データの抽出には下記の関数を用いました。以降はこの生成物である`lines`を前提とします。
(ざっくりいうと`[x,y,text,symbol.boundingbox]`を格納したリストのリストです。)

“`py
def get_sorted_lines(response,threshold = 5):
“””Boundingboxの左上の位置を参考に行ごとの文章にParseする

元記事を表示

レシートのOCR・日付の抽出編(Python)

# 概要

Google Vision APIを使ったOCR結果をもとにレシートの日付を抽出します。

通常のアプローチと泥臭いアプローチの2つをお見せします。

## 前提となる記事

下記の記事を前提としています。

https://qiita.com/shoku-pan/items/bf5645894803769edc72#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB

データフローは下記のようになっており、

“`mermaid
graph LR
image –>|OCRの実行| OCR_object
OCR_object –>|必要なデータを抽出| text_and_position_data
“`

データの抽出には下記の関数を用いました。以降はこの生成物である`lines`を前提とします。
(ざっくりいうと`[x,y,text,symbol.boundingbox]`を格納したリストのリストです。)

“`py
def get_sorted_lines(response,threshold = 5):
“””Bou

元記事を表示

iRIC格子CSVファイルをGISデータに変換する

**実行環境**
Windows10
Python 3.9.5
geopandas 0.10.2
pandas 1.3.1
shapely 1.8.0

## はじめに
水理学のいろはも知らなければ [iRIC](https://i-ric.org/ja/) も未経験なのですが、ちょっと機会があって iRIC格子CSVファイルを GIS データに変換するということをしました。

今回はそのとき python で書いたコードを載せたいと思います。

iRIC は、CGNS ファイルや VTK ファイルなどの形式で格子をエクスポートすることができます。

ファイルフォーマットについてはこちらに載っています。

https://iric-gui-user-manual.readthedocs.io/ja/latest/03/03_10_02_grid.html#sec-file-export-grid

これらのファイルを扱うライブラリで GIS データに変換できないだろうかと少し調べましたが、ちょっと分かりませんでした。

ググっても iRIC の格子を一般的な GIS データに直接変換す

元記事を表示

[Python]RSS翻訳で利用する翻訳APIをDeepL(無料版)にした話 

## はじめに

以前カジキはこういうものを作り、定期実行する環境まで作成しました(環境作成については別途記事にするつもり)

[[Python]RSS取得した情報を翻訳してslackに投稿する](https://qiita.com/Istiophorus/items/947c97801cd6b6510ceb)

で、いざ運用に乗っけてみると、当初心配していた`googleTrans`のAPI制限には特に引っかかることはなく使えました。

しかし、翻訳テキストとして渡す中身によって動作が安定しないという別の問題に直面しました。特に、あるRSSサイトが配信しているfeedと相性が悪く、そのfeedでだいたい落ちてしまう。そのfeed自体、翻訳処理をかけるまでにこっちでテキストをだいぶ加工してあげなければならないような、お行儀のよくないサイトではあるんですが、処理が落ちるテキストを調べてもおかしなところが特に見つからずハマりました。(ライブラリ側の置換処理がうまくいっていないことが原因だった模様)

ここは、翻訳APIが`googleTrans`という非公式ライブラリである限りは、あまり文

元記事を表示

Python requests問題とURLの補強

## 行っていたこと

1. pythonのrequestsを使って複数のURLをチェック(URLが死んでいないか)
1. URLの補強

## 問題

#### 問題1 : 脆弱性に該当するSSL通信
エラー内容
``

requests.get(url, verify = False)

`verify = False`をつけるとセキュリティのレベルを下げてくれるらしい
しかし、エラーとしてではないけど、Warningがめちゃ出る

import urllib3
from urllib3.exceptions import InsecureRequestWarning
urllib3.disable_warnings(InsecureRequestWarning)

#### 問題2 : URLは開けるはずなのに、403で返ってくる

requestsでgetすると403で返ってきてしまう
・・・URLを踏むとU

元記事を表示

Cloud FunctionsをPythonで書く

# この記事について
Cloud FunctionでPythonを使用するためのサンプルです
[こちら](https://github.com/hideto1198/GCP_Python “GitHub”)からサンプルコードのダウンロードができます。

# なぜPython?
好きだから。これに限ります。Pythonは遅いとよく言われますが、使用するメモリ量などを調整することでマシになりますし、
自分のプロジェクトでは影響が出るほどでもないからです。限界まで速さを求めるなら他の言語が良いでしょう

# はじめに
Cloud Functionsのデプロイはかなり遅いです。プログラムミスで再デプロイする時の時間ほど苦痛な時はありません。
なので僕は基本的にVSCode上でテストプログラムを作成してからCloud Functionsにデプロイしています。
コードチェックもありませんので、間違えててもそのまま通過します。(デプロイは失敗します)
ローカルでテストしてデプロイするのがベターでしょう
ローカルではサービスアカウントのファイルを使用します。
`Firebase -> 任意のプロジェク

元記事を表示

djangoでtemplateのhtmlファイルがUnicodeDecodeErrorになる

# djangoでtemplateのhtmlファイルがUnicodeDecodeErrorになる

UnicodeDecodeError at <htmlのディレクトリ>
‘utf-8’ codec can’t decode byte xxx in position xx: invalid start byte

該当のhtmlに日本語が入っているとエラーになる。

## 原因

VSCodeで作成したhtmlファイルがなぜか、”Shift JIS”に

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245425/b2278710-7260-a29f-d440-0860157098da.png)

## 対処

UTF-8に変更して保存して解決

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245425/f0940fd0-da6e-bc28-bc72-6f8fe8ebb87b.png

元記事を表示

2022年のPythonの組み込みvenvツールについて

・Pyenv:プロジェクトごとの仮想環境のコンテキスト外で、コマンドラインでさまざまなPythonエディションを使用する場合に便利です。
・Pipenv:Pipenvは、仮想環境とプロジェクトの依存関係管理ツールとして使えます。ただし、Pipenvはどのような形式のパッケージ化についても対応している訳ではないです。そのため、最終的にPyPIにアップロードしたり、他の人と共有したりするプロジェクトには理想的ではありません。
Poetry:Pipenvのツールセットを拡張したPoetryは、プロジェクトと要件を管理するだけでなく、プロジェクトをPyPIに簡単にデプロイする事が可能です。
PDM:最も最先端のプロジェクトです。PoetryやPipenvと同様に、PDMは、プロジェクトをセットアップし、その依存関係を管理し、そこから配布アーティファクトを構築するための単一のインターフェースを提供します。

元記事を表示

Jupyter コンテナをカスタマイズして PyImageJ を動作させる

# 1. はじめに

顕微鏡観察等の画像解析に広く利用される `ImageJ` (JAVAの仮想マシン上で動作)と`OpenCV`, `scikit-image` などの `Python` 画像処理ライブラリとを連携させるため、`PyImageJ` をインストールした `JupyterLab` の Docker コンテナ環境を構築しました。

docker コマンドが使用できる環境であれば、Python ラッパー関数を提供する `PyImageJ` を使用して、 `ImageJ` の機能を `Python` ノートブック上でお手軽に試すことができます。

ここでは、`OpenCV` による白黒二値化処理と `ImageJ` による粒子解析を組み合わせた参考事例を紹介します。

# 2. 動作テスト
## 2.1. JupyterLab サーバー起動

ターミナルを開き、カレントディレクトリに `notebooks` ディレクトリを作成しましょう。

次に、以下の docker コマンドを入力します。
ユーザー権限の問題が生じないように、環境変数 `NB_UID` および `NB_GID

元記事を表示

PythonでArcGISを操作する環境構築をしてみた

# はじめに
PythonでArcGISを操作できるように環境構築してみた

# 前提
1.Anacondaがインストールしてあること

2.Anacondaのバージョンが最新であること
 最新にしていない方は下記コマンド実行
“`
conda update -n base -c defaults conda
“`

3.pipがインストールしてあること

4.Anacondaがactivateであること
“`
conda activate

(base)xxxxx
“`

# 手順
1.下記コマンドを実行する
“`
conda install -c esri arcgis
“`

下記コマンドを実行し、ArcGISがインストールされていることを確認
“`
conda list

> arcgis 2.0.1 py39_2826 esri
“`

※エラーが発生し、ArcGISがインストールできない場合は下記を実行
“`
conda install -c esri arcgis –no-de

元記事を表示

【Django】DBに保存した文字列をボタンでコピーする方法

こんにちは、k_ukiです。現在卒業研究でDjangoを用いたwebアプリの開発を行っております。
その中で、ボタンを押すことでその文字列をクリップボードにコピーする機能を実装しました。今回はその実装方法について述べていきます。
![Videotogif (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2341225/318d7ab8-a6b7-2975-8973-f29e0c680441.gif)

また、この記事ではオブジェクトを出力する方法(通常のCRUDの処理)やルーティングなどの実装方法は省略いたします。

## テンプレートの作成
以下は、ボタンを配置するページのコードです。
“`
{% extends ‘base.html’ %}
{%block title%}提案結果 {%endblock%}
{% block content %}

Djangoで郵便番号の入力から住所を反映させる

# 郵便番号の入力から住所を自動で反映させる
フォームから住所を書く際に郵便番号を入力するだけで自動で住所が入力されたら楽なのでその流れをDjangoのコードで書けるようにメモ。
※既にアプリは出来てるものとして、その部分は割愛します。

## ルーティング設定(urls.py)
“`python:urls.py
from django.urls import path,include
from .import views
from django.views.generic import TemplateView

app_name = ‘アプリ名’
urlpatterns = [
path(”, views.IndexView.as_view(),name=”index”),
path(‘inquiry/’, views.InquiryView.as_view(),name=”inquiry”),
]
“`
後にInquiry classを作る予定でこのpath設定。

## ビューの編集(views.py)

“`python:views.py
from .

元記事を表示

40代プログラミング初心者がpython初めて半年!独学で勉強が続いている理由と読んだ本

40になって、友達がpythonでPCゲームのレベル上げツールを作っていた
それを聞いて、pythonって便利なのね。と思いその後色々あってプログラミングを勉強することにした

プログラマー35歳までみたいな世の中で40代おそすぎ!ってあるかもしれない
PCがあって、無料の教材はネットに転がってるし、本もたくさんあるし、挑戦するのは無料だし2022年の1月ぐらいから勉強を始めた

入門書って成果物がないからつまらないなと思ってそれ以外になんかないかなって本屋さんをふらふらしてたら

python自動化 みたいな書籍がいっぱいあることに気がついた

なるほど、もしかしたら仕事楽になるんじゃないかそんな思いから次の本を買った

シゴトがはかどる Python自動処理の教科書
https://amzn.to/3OCu6qy

Macbookで開発環境を整えるところから始めたけれど、まずそこがうまくいかずそこで挫折しそうだった
なんとか、その壁を乗り越えてpythonの学習が始まっった

エクセルで100枚のシートを作ったり、ラベルシートを作ったり、いろいろやってすげーな!面白い。Wo

元記事を表示

ExcelファイルをPythonでデータ分析する (4.ランキングチャート)

**ExcelファイルをPythonでデータ分析する**
[1.Excelファイルの読み込み](https://qiita.com/toyohisa/items/d8d7c8179adb708476d6) – [2.グラフ](https://qiita.com/toyohisa/items/74e2893da8a88ee47743) – [3.度数分布](https://qiita.com/toyohisa/items/a2e93c01436390675a0b) – 4.ランキングチャート – [5.相関]() – [6.ディシジョンツリー]()

「ExcelファイルをPythonでデータ分析する」は上のような一連の記事になっており、2~6までは事前に1.Excelファイルの読み込みが行われていることを前提としています。

# 都道府県の人口ランキングチャート

ランキングチャートとは、1位、2位といった順位の変動を示すものです。ここでは人口の多さをランキングとして表し、1920年から2020年までのその順位変動をグラフ化してみたいと思います。

順位はDataFrame.sort_

元記事を表示

【Serverless Framework】コンテナイメージを使ってPackageする際はアーキテクチャに気を付ける【Python】

# はじめに
Pythonで書かれたLambda関数のコードをServerless Frameworksを使ってデブロイする際に、[serverless-python-requirements](https://www.serverless.com/plugins/serverless-python-requirements) プラグインを使うことで依存関係を含めることができる。

Dockerコンテナを使ったパッケージングにも対応しており、`cryptography` のようにコンパイルが必要なライブラリが含まれる際はそれを使うのだが、設定によってはLambda実行でエラーが発生することがある。

# 環境
– Python 3.9
– Serverless Framework 3.19.0

# 事象
`cryptography` を含むPythonアプリをServerless Frameworkを使ってDockerコンテナでパッケージ & デプロイ。
その後Lambdaを実行すると、Importで以下のようなエラーが発生した。

> [ERROR] Runtime.Import

元記事を表示

【備忘録】同じ階層にあるpyファイルをipynb上でimportできなかった

自分用のメモです。

# 問題
jupyterlabでipynbを動かしていて、同じ階層にある“`module.py“`という自作モジュールから“`EarlyStopping“`という関数をimportしたかったが、
“`
—————————————————————————
ImportError Traceback (most recent call last)
in
—-> 1 from module import EarlyStoppping

ImportError: cannot import name ‘EarlyStoppping’
“`
と出て動かなかった。
# 解決策
ipynb上で自作モジュールを読み込みたいときは、対象のpyファイルに“`module.py“`という名前を付けないほうが良いっぽく、“`my

元記事を表示

Pythonで文字起こし

# PythonでWavファイル→音声認識
wav fileの中身でなんて喋ってる聞くのがめんどいので、pythonで文字起こししてそのテキストだけみればええやん

“`v2t.py
import speech_recognition as sr

r = sr.Recognizer()

def v2t(path:str) -> str:
with sr.AudioFile(path) as source:
audio = r.record(source)
return r.recognize_google(audio, language=’ja-JP’)
“`

おわり.langのところいじれば日本語以外もいける

# 利用例
https://github.com/nyanko3141592/give_id2wavs.git

元記事を表示

pyenvでpythonバージョンが変更できないときのちょっとしたミス

`pyenv global 3.6.3`や`pyenv local 3.6.3`でバージョンが変更できないとき、ぐぐるといろんな対処法が出てきますが、ちょっとしたミスの場合に出くわしたのでメモしておきます。

# 原因

ルートディレクトリに`.python-version`がある。←これだけ

# 対処法

`.python-version`を消して、`pyenv`コマンドを打つ。

元記事を表示

地図のWikipedia!OpenStreetMapのデータをPythonで簡単にダウンロードできるPyrosmとleafmapを使ってみよう!

## OpenStreetMapって?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203944/8d04f5da-832e-36bb-bfc2-a30995572b95.png)

OpenStreetMap(以下、OSM)とは、誰でも自由に利用でき、なおかつ自分で編集することも可能な地図のWikipediaとも呼ばれるサービス・プロジェクトです。

OSMは例えば、自社サイトで本社の位置を示す時の背景地図として利用したり、検索機能を使って近隣のコンビニの位置を取得したり、登録された道路のデータを使って(めちゃくちゃ頑張れば)カーナビが作れたりするかもしれない、そういったプロジェクトになります。

印刷してプロジェクトの報告書の挿絵に使ったりもできます。
(GoogleMapは基本有料。)

細かい説明は検索すればいくらでも出てきますので、そちらの記事に任せるとして…そんなOSMのデータをPythonで直接ダウンロードし、GeoPandasのGeoDataFrameに変換してくれる

元記事を表示

OTHERカテゴリの最新記事