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

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

Raspberry-Py ロボットカー製作Go学習

### 2020 64歳の誕生日にスキルアップ電子工作始ました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378482/bac97163-ee47-4d73-528d-f13c86dab167.png)
### メーカーサイト資料

Visit our online store to purchase this product ☛ http://freenove.com/store
Download tutorial and code for this kit ☛ http://freenove.com/fnk0043

### Go学習も進めながらAIも進めました 
https://www.udemy.com/course/python-drone/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

元記事を表示

Pythonでスプレッドシートを操作したい!

# はじめに
業務でPython(JupyterLab)を使用するために
一からインストール、設定をする必要があり
ほぼテキストだけの設定手順書を渡されて ?(゜-゜)? となったので
ひとまず最低限使える環境を作るためにやったことを
できる限り簡単にまとめてみました。

※最低限動く を目標にしているので用語の解説などは省略しています

Python始めてみたいけど・・・ とか
とりあえず自分で環境作ってみたい! とか
そういう方の参考になれば幸いです。

# 環境
Windows 10 Pro
Python 3.9.0

## やりたいこと
・Python(JupyterLab)でスプレッドシートの編集ができる環境の構築

最終的には以下
・特定のサイトからリンクのテキストとURLを取得する
・Googleスプレッドシートの操作(主に書き込み)

# 環境構築
## Pythonのインストール
### 1.インストーラーをダウンロード
[リンク先](https://www.python.org/downloads/windows/)から、必要なバージョンのインストーラーをダウンロ

元記事を表示

ガウス過程 from Scratch Non-Gaussianな尤度によるガウス過程

今までに執筆した「[ガウス過程 from Scratch](https://qiita.com/meltyyyyy/items/8440849532cd55da1e45)」と「[ガウス過程 from Scratch MCMCと勾配法によるハイパーパラメータ最適化](https://qiita.com/meltyyyyy/items/5a058ecc81e010876a39)」、「[ガウス過程 from Scratch コレスキー分解による高速化](https://qiita.com/meltyyyyy/items/44e2f270be72943086f3)」では、 **ガウス過程(Gaussian Process)** をゼロから実装しハイパーパラメータの最適化や計算の高速化を行いました。

通常のガウス過程では、関数 $\mathbf{f}$ と出力 $\mathbf{y}$ の関係 $P(\mathbf{y}|\mathbf{f})$ がガウス分布 $\mathbb{N}(\mathbf{f},\sigma^2\mathbf{I})$
に従うという前提のもと、出力を計算していまし

元記事を表示

VSCode PythonのSuggestサジェストが重複duplicate表示する時の解決方法

# 環境
OS: Windows10
VSCode : バージョン1.69.2
LSP: Pylance
Notebook使用

# この症状が出るシーン
.pyファイルと.ipynbファイルを同時に編集しているとき
.pyファイルのみ、.ipynbファイルのみのときは問題ない。

# 解決方法

settings.jsonに`”python.pylanceLspNotebooksEnabled”: true`と記述してnotebookのLSPをpylanceにすることを明示する。

# ※追記

.pyファイル上のsuggestの重複はなくなったものの、.ipynbファイル上のsuggestの重複がなくならない。

Microsoftの`Pylance`からPython標準の`jedi`に変更することにした。

settings.jsonへ`”python.languageServer”: “Jedi”,`を記述

元記事を表示

マルチステージビルドでPythonのコンテナイメージを軽量にする

仕事でPython/Djgnagoを使ってWEBアプリを開発し、作成したアプリはDockerコンテナにして運用しています。インストールするPythonのライブラリが150個ぐらいあるので、コンテナイメージが大きくなってアップロードやダウンロードに時間がかかっていました。

何とかコンテナイメージを軽くするために、マルチステージビルドを実施(ついでにAWS ECRのイメージスキャンも実施)し、コンテナイメージの容量(と脆弱性)がどのぐらい削減できるのかをそれぞれのパターンで検証しました。

## 修正前
“`
FROM python:3.7.13-bullseye

ENV PYTHONUNBUFFERED 1
ENV PIPENV_TIMEOUT 600

# githubから直接pipインストールするため、gitインストール
RUN apt-get -y update && \
apt-get -y upgrade && \
apt-get -y dist-upgrade && \
apt-get -y install gcc git mecab libm

元記事を表示

オフライン環境で pip install したい

社内・学内の計算機サーバーで`pip install`したいけどインターネットに接続していない…
ということが、ちょくちょくあります。

私も、最初結構はまってしまったので備忘録として残しておきます。

# 環境
“`
サーバー : Ubuntu 18.04(sshで接続), python3: 3.6.9
PC : Windows10 + WSL2(Ubuntu20.04)
“`
# pip download
公式リファレンス → https://pip.pypa.io/en/stable/cli/pip_download/
`pip download` でパッケージファイルをダウンロードして保存できます。

例えば、
“`bash:cmd
cd ~
mkdir src
cd ~/src
pip download numpy
pip install ./*
“`
とでもすれば、numpyがインストールできます(多分)。
ただし、単純に `pip download` すると今回の場合 WSL2(Ubuntu20.04) 用のパッケージがダウンロードされてしまうので、そのままs

元記事を表示

[Python] matplotlibの日本語対応(venv環境下)

# 最初に
Pythonでグラフ作成に用いるmatplotlibに関して、グラフのタイトルなどに日本語を用いる場合、設定を変更する必要がある。
設定の変更の仕方をまとめた。

# 方法
フォントの情報をダウンロードし、package内の適切なディレクトリに格納する。

## ①fontのダウンロード
以下のURLからフォントをダウンロードする。
https://moji.or.jp/ipafont/ipaex00401/
対象は任意であるが、以下を例に示す。

|内容|ファイル|
|—|—|
|2書体パック(IPAex明朝(Ver.004.01)、IPAexゴシック(Ver.004.01))|IPAexfont00401.zip(9.3MB)|
|IPAex明朝 (Ver.004.01)|ipaexm00401.zip(5.3MB)|
|IPAexゴシック(Ver.004.01)|ipaexg00401.zip(4.0MB)|

## ②ディレクトリに格納
venvで作成した仮想環境があるディレクトリにダウンロードした.ttfファイルを格納する。

“`
c:\…\[仮

元記事を表示

Python:分散分析のサンプル

# はじめに
irisデータセットを使って、ANOVA(Analysis Of Variance)のサンプルプログラムを作成しました。

# 前準備
“`python
import numpy as np
import pandas as pd
import scipy as sp
from matplotlib import pyplot as plt
import seaborn as sns

sns.set()

import statsmodels.formula.api as smf
import statsmodels.api as sm
“`

# サンプルデータの作成
“`python
>> iris = sns.load_dataset(‘iris’)
>> print(iris.head())

(実行結果)
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setos

元記事を表示

[Python]フォルダ・ファイルのパスを文字列で取得する方法比較(os.getcwd、__file__、os.path.dirname(__file__))

[以前の記事](https://qiita.com/V_lasergun/items/82f9e513c42dbf20937f)を書いたとき、うまく動作しないPythonスクリプトがあった。
ファイル名の取得方法が誤っているのだろうと推定し、修正することで狙い通りの動作をするようになった。
その不具合・正常動作の理由を実験で確認したのでメモしておく。

[要点](#要点)
[実験](#実験)
[Python 3.8.10 の場合](#python-3810-の場合)
[Python 3.8.10 1つ上のディレクトリから実行](#python-3810-1つ上のディレクトリから実行)
[Python 3.8.10 まとめ](#python-3810-まとめ)
[Python 3.10.6 の場合](#python-3106-の場合)
[Python 3.10.6 1つ上のディレクトリから実行](#python-3106-1つ上のディレクトリから実行)
[Python 3.10.6 まとめ](#python-3106-まとめ)
[パス文字列の結合](#パス文字列の結合)
[おまけ1](#

元記事を表示

Ubuntu22.04 Python仮想環境にDjangoとDjango REST frameworkをインストールする

# 概要
Pythonの仮想環境にDjangoとDjango REST framework(DRF)をインストールします。仮想環境はDjango推奨のvenv、環境はUbuntu22.04、Python3.10.6、Django3.2LTS、作業PCはWindows10 Proです。

# 手順1 仮想環境を作る
ユーザのホームにフォルダを作ってその中に仮想環境を作ります。
“`
$ mkdir solution
$ cd solution
solution$ python3 -m venv .venv_drf
“`

# 手順2 仮想環境をアクティブにしてpipを最新版にする
仮想環境でpipを最新にします。
“`
solution$ source .venv_drf/bin/activate
(.venv_drf) solution$ python -m pip install –upgrade pip
“`

# 手順3 Django3.2の最新版とDRFの最新版をインストールする
“`
(.venv_drf) solution$ python -m pip inst

元記事を表示

OneDrive のファイル操作(登録/取得)を自動化する

Pythonを使って「OneDriveへファイルアップロード」「OneDriveからのファイルダウンロード」を実現する手順を解説します。

## 概要

– OneDriveへ自動アクセスするため`Azure アプリ`を登録します。
– OneDriveへログインし、認証コードを取得します。
– 認証コードからアクセストークンを取得します。
– アクセストークンを利用して[Microsoft Graph](https://docs.microsoft.com/ja-jp/graph/overview)により「OneDriveへファイルアップロード」「OneDriveからのファイルダウンロード」を実現します。

## OneDriveへ自動アクセスするため`Azure アプリ`を登録

– 下記手順を参考に`Azure アプリ`を登録します。
[Microsoft にアプリを登録する](https://docs.microsoft.com/ja-jp/onedrive/developer/rest-api/getting-started/app-registration?view=o

元記事を表示

EMアルゴリズム

EMアルゴリズム

確率モデルの潜在変数・パラメータに関する最尤推定を行う
最尤推定とは 与えられたデータからそれが従う確率分布の母数を点推定する方法
 点推定 

元記事を表示

Pythonのクラス学習。オブジェクト指向と継承

## 初めに。
どうもpython歴4か月の者です。少し前に`クラス`についての勉強しました。
今度はオブジェクト指向についてまとめて行こうと思います。
中々苦手意識とは消えないもので…、さらに概念的な要素含まれており説明できるか不安ですが、頑張ります。

– 恐縮ですが今回は[前回記事](https://qiita.com/The_Boys/items/1ceef44d7b2c5ce5dacb)のコードや考え方を踏襲致します。

– 環境:windows

## 学習

### 参照コード 参考は[こちら](https://qiita.com/The_Boys/items/1ceef44d7b2c5ce5dacb)

“`python
class Student: #クラスの定義

def __init__(self,name,math,english): #コンストラクタ(初期化)メソッド。
self.name = name #アトリビュート

元記事を表示

ポアソン分布が正規分布に近づく様子を可視化して理解しよう

# 概要
ポアソン分布の平均$\lambda$が大きくなると正規分布に近似できるが、その近づく様子を2つの分布の差を取り可視化してみました。可視化してわかる世界をお楽しみください。
ポアソン分布は
“`math
P(k)={\frac {\lambda ^{k}e^{{-\lambda }}}{k!}}
“`
と表される。一方、正規分布は
“`math
{\displaystyle f(x)={\frac {1}{\sqrt {2\pi \sigma ^{2}}}}\exp \!\left(-{\frac {(x-\mu )^{2}}{2\sigma ^{2}}}\right)}
“`
と表される。ポアソン分布の$\lambda$が十分に大きいとき、平均$\mu=\lambda$、分散$\sigma ^2=\lambda$の正規分布に近似できる。

# 実装
Google Colabで作成した本記事のコードは、[こちら](https://colab.research.google.com/drive/1c3agxNNW3juHiw02R6eQL46TEFMroF0Q?usp

元記事を表示

戸建て住宅マーケティングAI 開発 (4) 基底クラスと設定ファイル

※ 開発中ですが、以下のロゴのリンクから、ご利用可能です。
[![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2639/63b93891-adeb-5247-cef0-d85216d0c58e.png)](https://15db.end0tknr.jp/)

今後、開発を進めていきますが、全てのクラスの親となる基底クラスと、
json形式の設定ファイルを考えてみました。

# 基底クラス appbase.AppBase

“`python
#!python
# -*- coding: utf-8 -*-

import json
import logging.config
import os
import psycopg2
import psycopg2.extras
import sys
import time
import urllib.parse
import urllib.request

from selenium import webdriver # ex. pip in

元記事を表示

戸建て住宅マーケティングAI 開発 (3) bulk sql for postgres + python3 (その2)

※ 開発中ですが、以下のロゴのリンクから、ご利用可能です。
[![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2639/63b93891-adeb-5247-cef0-d85216d0c58e.png)](https://15db.end0tknr.jp/)

前回、bulk sql を行うpython scriptを記載しましたが、
classにしましたので、再掲します。

“`python
#!python
# -*- coding: utf-8 -*-

from psycopg2 import extras # for bulk insert
import appbase
import sys

logger = appbase.AppBase().get_logger()

class Db(appbase.AppBase):

def __init__(self):
pass

def col_defs(self,tbl_name

元記事を表示

[備忘録]サーバー上で起こった例外をまるごとハンドリングしてDiscordに送る

# コード

“`Python:main.py
import json
import os
import traceback
from urllib import request
import dotenv
dotenv.load_dotenv()

DC_WEBHOOK_URL = os.getenv(‘DC_WEBHOOK_URL’)

def standalone_discord_traceback_messenger(): # もっと良いネーミング募集中
req = request.Request(
url=DC_WEBHOOK_URL,
headers={‘User-Agent’: ”, ‘Content-Type’: ‘application/json’}
)

data = {
‘content’: ”,
‘embeds’: [{
‘type’: ‘rich’,
‘title’: traceback.format_exc(0)[:-

元記事を表示

【Django】ページをPDF出力する(障害対応)【Python】

# 初めに
※以下の記事の続きです。未読の場合は先に目を通してください。
[【Django】ページをPDF出力する(セッション)【Python】](https://qiita.com/nagisa_O/items/9cdd82b8313a0fbb0400)

前回、セッションを利用し自身とpdfkitで値の受け渡しを行う処理を実装しました。
一見処理は上手くいっているように見えましたが、pdfkitがセッションから取り出す値が一周遅れていることに気付きましたので、原因の検証と対策をまとめます。

# 環境
|名称 |バージョン |
|—|—|
|Python |3.10.4 |
|Django |4.0.6 |
|pdfkit |1.0.0 |

# 障害内容
前回まとめた、以下の「やりたいこと」をベースに障害の内容を確認します。

やりたいこと
—————————フロントエンド————————-
1.ユーザ操作で出力のボタンが押される
2.選択された対象のPK(今回はID)をバックエンドに渡す

元記事を表示

Pjlink-Python&Windows-VC#で動かしました。

PJLinkはプロジェクターやディスプレイをメーカーを問わず操作・管理するための統一規格です。
https://pjlink.jbmia.or.jp/
2018年に試験した画面です。Raspberry-Pyは同様な制御をGUIもPythonで書いています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378482/82bd6d9f-d072-648d-edf1-d36343249e3f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378482/9f286e74-fb9b-579f-bd26-05a20d03e21f.png)
### Windowsでは GUIはC#パッチファイルを呼び出しpjlink制御しています。
https://libraries.io/pypi/pypjlink
https://blog.flowblok.id.au/2012-11/controll

元記事を表示

DOIなどのリダイレクト先を取得する

# はじめに
学術雑誌のDOI(doi.or)やhandle.net などのURLをPANDASのSeriesから、リダイレクト先(提供元)を取得し、戻します。
DOIなどでなくても、何らかの理由でリダイレクトされていれば構いません。
取得処理自体は、以下をそっくりそのまま利用させていただきました。ありがとうございます。
[Python で HTTP リダイレクト先の URL を取得する](https://qiita.com/niwasawa/items/d3f5ceb5f2f9d8784571)

# 変換元データ
“`python
import pandas as pd
df = pd.Series([‘https://doi.org/10.20730/100240356’, ‘http://hdl.handle.net/2324/4245’,
‘https://repository.dl.itc.u-tokyo.ac.jp/search?search_type=2&q=6092’], index=[‘1’, ‘2’, ‘3’])
“`

# 変換

元記事を表示

OTHERカテゴリの最新記事