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

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

python embed インストール

■ python embedded インストール

[1] python.exe のあるフォルダで setenv.batを作成して実行
PYTHON_PATHの箇所は実際にpythonEmbedをおいたフォルダ名に編集 (※ %DP0% は変えない)
参考:
↓全体手順
https://hituji-ws.com/code/python/python-emb-usage/
Windowsでpythonを使う/配布する時に便利!Python embeddable package使い方

 例:変更後
 SET PYTHON_PATH=%DP0%\PythonEmbed395

[2] get-pip.py をダウンロードして、python.exeのあるフォルダで実行する
  https://bootstrap.pypa.io/

[2]-2 実行は python get-pip.py コマンド

[2]-3 pythonXX_.pth の編集
   import siteの前についている #を消す

[3]current.pth ファイルを python.exeのあるフォルダに

元記事を表示

[Python] jsonファイルが開けない…(JSONDecodeError: Extra data: line * column * (char *))

## 事の発端

jsonファイルをjson.loadで開こうとしたら以下のエラーが出た。
“`python
import json
with open(“sample.json”) as f:
df = json.load(f)

>>> JSONDecodeError: Extra data: line 2 column 1 (char 23)
“`
対象のjsonファイルは以下のようになっていた。
“`json
{“id”: 0, “data”: 100}
{“id”: 1, “data”: 200}
{“id”: 2, “data”: 300}
“`

## json.loadで読み込むための修正
以下のようにjsonファイルを修正すると開ける。
“`json
[
{“id”: 0, “data”: 100},
{“id”: 1, “data”: 200},
{“id”: 2, “data”: 300}
]
“`
リストの形式にしてあげればよいということである。(最後のデータの後ろにカンマは入れてはいけない)

“`python
with op

元記事を表示

pythonクロージャとnonlocal

# この記事
`nonlocal` ってどこに使うだろうって思ってたけど、ここだったのね、って話。

# クロージャ作成例
“`python
# クロージャを用いた関数生成関数
def MakeFunc(a):
“”” a : 作成する関数に指定するパラメーター
“””
def Func(b):
“”” b : 作成された関数実行時の引数
“””
nonlocal a # バグ回避のためのおまじない
return a*b

return Func

# クロージャ使用
F2 = MakeFunc(2)
print(F2(3))
“`

## pythonでクロージャを使う場合の注意点
– 関数内で代入が行われた変数は、global文またはnonlocal文で宣言が無い限り、その関数内のローカル変数となる
– よって、上位関数のスコープにあり、クロージャに用いる変数は、上記の例のように`nonlocal`文で宣言しておくことで、意図せずにバグを生じることが防げる。
– `nonlocal`文で宣言することで、クロージャであることが明確になるので、不要な場合にも

元記事を表示

PDFファイルを画像ファイルに変換する(pdf2image)

2018年時点のことになりますが、仕事でPythonを使っていて、あるプロジェクトでPDFファイルを画像ファイルに変換する必要があり、利用できるライブラリについて調べました。

最初は**ImageMagic**を試したのですが、変換した画像ファイルにノイズが少し入っていることがあり、後続処理で余計に実装しなければならなかったので使用するのを断念しました。

次に試したのが**pdf2image**で、より綺麗に画像ファイルへ変換することができたので、pdf2imageを利用することに決めました。ちなみにpdf2imageはPDFファイルを画像ファイルに変換するユーティリティであるpdftoppmとpdftocairoをラッピングしたPythonモジュールになります。

## インストール
pdf2imageを使用するには、**poppler**をインストールする必要があります。

Windows
1. http://blog.alivate.com.au/poppler-windows/ から最新のパッケージをダウンロードします。
2. ダウンロードしたパッケージを解凍します
3.

元記事を表示

M1 Maxでnumpyが遅い問題の対処方

公式に説明や警告が無いので意外と認知されていないが、普通にnumpyをインストールすると*動作が遅いバージョンがインストールされちゃいます*。
どれくらい遅いかというと下記の300*300の行列の特異値分解を100回行う処理の平均実行時間を計測すると…

“`python
import time
import numpy as np

np.random.seed(42)
a = np.random.uniform(size=(300, 300))
runtimes = 10

timecosts = []
for _ in range(runtimes):
s_time = time.time()
for i in range(100):
a += 1
np.linalg.svd(a)
timecosts.append(time.time() – s_time)

print(f”mean of {runtimes} runs: {np.mean(timecosts):.5f}s”)
“`

### 普通のnumpy

元記事を表示

3D姿勢推定StridedTransformer-Pose3Dを使ってバレーのレシーブ姿勢を可視化してみた。

# 目的

`StridedTransformer-Pose3D`とはどういったものなのか、お試しでレシーブ姿勢を可視化してみて上澄み部分を味わう。

# 背景

姿勢推定で面白いものはないかとネットで検索していたら、たまたま`StridedTransformer-Pose3D`という3D姿勢推定ライブラリを見つけた。平面の動画から3D姿勢を推定できるため、スポーツなどで動作分析するのに今後役立てないかとお試しで使ってみた。

# StridedTransformer-Pose3Dとは

`StridedTransformer-Pose3D`とは、3次元人物姿勢推定を行うライブラリです。

このような感じで推定ができるとのことです。
![skating.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38724/75291497-52d0-efea-8e32-41d2a8622eef.gif)
![dancing.gif](https://qiita-image-store.s3.ap-northeast

元記事を表示

動画予測のためのベンチマークデータセット「Moving MNIST」を自作する

Moving MNISTが何かの説明は既存の記事に任せるとして
[データセット「Moving MNIST」](https://qiita.com/ground0state/items/98e0e67902e21019f421)
![test_4_AdobeExpress.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78906/0794a0c5-fe68-3d43-82ba-03ae680c201f.gif)

**Moving MNIST**は元祖であるMNISTと同様に、数々の動画予測などの深層学習タスクのベンチマークとして用いられています。
それは、タスクとして比較的容易でシンプルであることに加え、その拡張性にも大きな利点があることが理由です。多分。
Moving MNISTは64*64の画像内で数字が動くだけなので、元祖MNISTの手書き文字さえ手元にあれば自作することができます。トロント大学から10000個の動画を含むデータセットが[公式に配布](http://www.cs.toronto.

元記事を表示

1チャンネルのnumpy配列を3チャンネルに変換する

### チャンネルの次元がない場合
例えば
“`python:
>>> image.shape
(64, 64)
“`
のような場合
“`python
img = np.stack((img,)*3, axis=-1)
“`

### チャンネルの次元がある場合
例えば
“`python:
>>> image.shape
(64, 64, 1)
“`
のような場合
“`python:
img = np.repeat(img, 3).reshape(img.shape[0],img.shape[1],3)
“`
numpy初心者すぎてこれしか思いつかないが、もっといい方法がありそうな気もする。

元記事を表示

VSCode + Jupyter Notebookの環境にフォーマッターBlackを導入する。

# 保存時フォーマットはできない
まず初めに断っておきますが、現時点で保存した際にフォーマットはできませんでした。

https://github.com/microsoft/vscode-jupyter/issues/7058

こちらのissueの最後の方でも現時点で対応する予定はないとの発言があります。
もしできるようなら情報をください。

# 方法1:Black拡張機能をインストールする
https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter

.pyファイルだけではなく、.ipynbでも問題なく使用できます。

こちらの記事で導入方法が記載されています。

https://qiita.com/nujust/items/e0985240fd461e5c4c0a

# 方法2:pipからインストールする
普通にインストールする方法です。
しかし、“`pip install black“`とするだけで使用できませんでした。

エラーメッセージでは“`pip install bl

元記事を表示

Google Driveから.ipynbファイルをGoogle Colaboratoryで開けない問題

題名の通り、Google Colaboratory (Colab)で開けなかったお話。
(題名の日本語が怪しい。)

珍しく公開記事にします。

# あらすじ
メーカー就職一年目。偉い人との面談で

「集めたデータをこねこねして、〜(中略)〜って感じのことしたら業務効率化、付加価値創造に繋がりませんか???」

みたいな話をしたら、偉い人が上機嫌で応援してくれた。

…DXとかビッグデータとか言っとけば、未来志向のやる気のある若者と捉えてもらえるからちょろい世の中ですね(失礼)

あほなことを言ってみたものの、実際やってみたいという気持ちに偽りはございません。
pythonもちょっとしか触ったことないし、完全専門外だし、…って感じですが、
ちょっとずつ構想を練ろうと思って、勉強を始めることにしました。

# 問題発生

で、勉強のために買った本というのが、秀和システムの『python実験データ分析100本ノック』でした。
(レベルが合ってるか、目的が合ってるかとかはいちいち突っ込んだら負け。)

本書では、Colabでコードを書くようです。
サン

元記事を表示

Python:q-q プロットのサンプル

# はじめに
q-q プロットは、理論上の分移転と実際のデータの分位点を散布図で表したものです。

# サンプルデータの用意
“`python
import numpy as np
import scipy as sp
import statsmodels.api as sm
import seaborn as sns

iris = sns.load_dataset(‘iris’)
iris.head()

(実行結果)
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1

元記事を表示

Pythonワンライナーで「ドドスコスコスコ」してみた

## はじめに

>【問題】配列{“ドド”,”スコ”}からランダムに要素を標準出力し続け、『その並びが「ドドスコスコスコ」を3回繰り返したもの』に一致したときに「ラブ注入♡」と標準出力して終了するプログラムを作成せよ(配点:5点)

こちらのツイートが社内で話題になっていました。

そこで、試しにPythonワンライナーで書いてみました。
そんな遊びの記事です。

## コード

“`python
__import__(‘sys’).setrecursionlimit(10**6);print((lambda f: f(”,”,0,f))(lambda s,l,i,f: s+’ラブ注入♡’ if i==3 else f(s,”,i+1,f) if l==’dsss’ else f(s,”,0,f) if len(l)>=4 else f(s+’ドド’, l+’d’,i,f) if __import__(‘random’).getrandbits(1) else

元記事を表示

Tkinterのスクロールバーを使用する方法

# 初めに
最近Tkinterのスクロールバーをよく使う機会があったので、メモ程度に残しておきます。
他に良い方法がありましたらご教授いただけると幸いです。

# 例:画像を複数表示しスクロールバーを使用する
“`Python:show_img.py
from tkinter import *
from tkinter import ttk
import glob
from PIL import Image, ImageTk

class Application():
def __init__(self) -> None:
self.root = Tk()
self.root.resizable(0, 0)
self.root.title(“Scrollbar”)

self.setup()

self.root.mainloop()

def setup(self):
self.canvas = Canvas(self.root, bg=”white”, bd=

元記事を表示

【営業リスト作成】2022年Googleマップをスクレイピングする方法4選

Googleマップ(Google Maps)は、店舗やビジネスに関する詳しい情報を掲載できるため、地域グルメやサービスに関する情報を探すのに役立ちます。Googleマップには世界中のビジネス情報が何億件と掲載されており、ビジネスとユーザーのマッチングに貢献しています。

それらのGoogleマップのデータは、ビジネスに新しい価値を生み出すのにも役に立ちます。例えば、美容サロンオーナーはマップデータを活用して、近くの競合他社を分析することで、新店舗を開く場所の決定に役立てることができます。

Googleマップデータを効率的に収集する上で役立つのが、「Webスクレイピング」です。Webスクレイピングツールを使えば、Googleマップ上の情報を大量かつ自動的に収集できます。本記事では、Googleマップデータをスクレイピングする方法を5つ紹介します。

Googleマップデータの活用方法をお探しの方はぜひ参考にしてください。

1.Places API of Google Maps Platform (Google Maps API)

「Google Maps Plat

元記事を表示

ゼロからWebクローラーを構築する方法

「Webスクレイピングツールを自分でゼロから構築したい」こうしたニーズが近年急増しています。Webスクレイピングツールは、インターネットの情報を収集・保存・分析に役立ちます。そのWebスクレイピングツールで、重要な役目を持つのが「Webクローラー」です。

本記事ではプログラミング初心者の方でも、かんたんに作れるWebクローラーの構築方法について解説します。実際に構築をしなくても、Webクローラーの仕組みを理解することは、ITリテラシーを高める上でとても大切です。ぜひ参考にしてみてください。

**1) Webクローラーとは?**

**2) なぜWebクローラーが必要なの?**

**3) Webクローラーを構築するには?**

Webクローラーとは?

Webクローラーとは、インターネットからWebサイトのコンテンツをダウンロードし、それらをインデックス付けすることによって動作するインターネットボットです。Webクローラーの目的は、Webサイト全体のWebページの内容をほぼ把握し、必要なときに必要な情報だけを取得できるようにすることです。

かんたんにいえば、書籍が

元記事を表示

import と from

importとfrom
“`
import
from import
“`

class内の変数について
class変数とインスタンス変数がある。


インスタンス化しても、しなくても、クラス内のメソッドは使える。
インスタンス名.メソッド(引数)
クラス名.メソッド(引数)

元記事を表示

pythonで基板発注に使うファイルの改名を一発でやるやつを作ってみた

# 目的
基板外注ファイルはprotel拡張子(トップレイヤであれば.GTLとか)であることが求められる場合がある.しかしながら,kicadでガーバーファイルを生成すると,拡張子が小文字で出力されてしまい,外注メーカーのガーバービューワーが使えなかったりすることがある.また,メーカーによってはファイル名は統一されていることが求められる場合がある.そこで,ファイル名の統一と拡張子を大文字にすることの二つを同時に一発で行えるプログラムを作る.

# 環境
– kicad 5.1.9
– python 3.10.4

# プログラム
.gm1は.GKO,.drlは.TXTに変換されるようにしている.これは外注先に合わせる必要がある可能性がある.実行時にファイル名をコマンドライン引数で指定している.

“` pcb_rename.py
import glob
import sys
import os

args = sys.argv
prog_name = args[0]
pcb_file_name = args[1]
file_in_dir = glob.glob(“./*”)
file_

元記事を表示

asdf+venvでのpython環境構築メモ

# 環境構築
## はじめに
メモ兼共有用
## 実行環境
– windows11 + WSL2で実行
– VSCode + Remote WSLが入っていることを前提
– ubuntu20.04でも基本は同じ

## WSL2のインストール
### wsl2とは
WindowsでLinuxが動かせる、すごい!便利!
### インストール
powershell上で
“`powershell: powershell
wsl –install
“`
と打つだけ、簡単
初期設定(ユーザー名,パスワード)し終わったあと
“`bash: bash
sudo apt update
sudo apt upgrade -y
“`
を忘れずに
またwsl2のubuntuだと何も入ってないがちなので以下を実行
“`bash:bash
sudo apt install \
build-essential \
curl \
libbz2-dev \
libffi-dev \
liblzma-dev \
libncursesw5-dev \

元記事を表示

プログラム初心者が今何を学べばいいかさっぱりわからない時に役立つサイト

独学から早2年。

何事も最初は全体像を理解したいもので、私は理解するまで約1年かかりました。

これをもっと早く知っていれば…というサイトを紹介します。

https://roadmap.sh

このサイトからまたFrontendやBackend,Pythonなどといった学習に必要なロードマップが記載してあります。

このサイトのおかげで今、何が足りていないのかの認識や、必要な知識が身につきました。

ただ、初学者が見てしまうとあまりの膨大な知識の量に絶句してしまうかもしれません。

一度で全てを理解することは困難です。地道に理解を深めていきましょう^^

元記事を表示

【Python】pyautoguiのエラー回避に1時間半掛かった話

**<初めに>**
pyautoguiを活用して、RPA化を粛々と行っていたが
急にpyautoguiの画像検索が出来なくなりエラー回避に1時間半費やしたので
今回はそのエラー履歴を残しておく

**<エラーが発生した原因>**
初めにエラー発生原因は、
pyautogui画像検索で画像検索範囲を絞る(ragion=target_range)を
使用しているのだが、target_rangeに入っている
画像検索範囲(left, top, weidh, height)の数値が「float型」だった為、
今回のエラーが発生した

**<エラー文>**
↓エラー文はこれ↓
“`
例外が発生しました: TypeError
slice indices must be integers or None or have an __index__ method
“`
このエラーを調べるとスライスがどうとか初歩的なものばかりで
pyautoguiに繋がるエラー回避方法は検索でヒットせず原因が分からなかった…

**<今後>**
今回は、画像検索範囲をcsvファイルで管理していたため
起こったエラーな

元記事を表示

OTHERカテゴリの最新記事