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

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

Cypy のFFTでOut of memory errorになる件はcacheが原因だった

# 環境
Winpython
WPy64-31040

# 現象
CupyでFFTを使用すると、del で変数を消してメモリーを確保したはずなのにメモリーエラーが発生する。

# 原因
chacheが残っているためだった。
https://docs.cupy.dev/en/stable/user_guide/fft.html

# 解決方法
**キャッシュの確認**

import cupy as cp

cache = cp.fft.config.get_plan_cache()
cache.show_info()
——————- cuFFT plan cache (device 0) ——————-
cache enabled? True
current / max size : 1 / 16 (counts)
current / max memsize: 8564793344 / (unlimited) (bytes)
hits / misses: 0 / 1 (counts)

cached plans (most rece

元記事を表示

HERE-APIを使ってQGISでルートマッチングができるプラグインを開発しました

![mov.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73197/d35f0a03-32ec-64b8-1872-9e3502c3b996.gif)

## はじめに

GIS技術においては、GPS測定値をはじめとした一連の経緯度情報を、道路などに「フィットさせる」処理というものがあり、`map matching`だとか`route matching`などと呼ばれます。

![スクリーンショット 2022-07-06 18.20.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73197/f2683318-8ad0-0767-07fb-ad978043f8f6.png)

最も単純には、ある点があったとしてその最近傍の地物に寄せるという処理になります。しかし下図のとおり、これだけでは「適切な経路」にはなり得ません。一連の点の順序や誤差を考慮したマッチングが必要です。

![スクリーンショット 2022-07-

元記事を表示

macOSで `ctype.h` が無いと言われた時

個人的なメモ。

# 具体的な症状
– とあるpythonパッケージを `pip` を通しインストールしようとした際に、下のように、 `ctype.h` が無いと言われた。
– インストールしようとしたパッケージは、`smt` というパッケージ。
– pythonは、`homebrew` を通し `Miniforge` でインストールした。

“`
/opt/homebrew/Caskroom/miniforge/base/bin/../include/c++/v1/ctype.h:38:15: fatal error: ‘ctype.h’ file not found
#include_next
^~~~~~~~~
1 error generated.
error: command ‘/opt/homebrew/Caskroom/miniforge/base/bin/clang’ failed with exit code 1
[end of output]

元記事を表示

pythonを使って .xmlファイルを読み込み、見栄え良く出力する

## xml.dom.minidomを利用

“`diff_python
import xml.dom.minidom

dom = xml.dom.minidom.parse(fileName)
pretty_xml_as_string = dom.toprettyxml()
print(pretty_xml_as_string)
“`

元記事を表示

Python tkinterで作業記録用のタイマーを作成

## 背景
PCで複数の作業を行う際に各作業に何時間かかっているかを計測したくて
Tknterを使用してタイマーアプリを作成してみた。

## デモ画面
![デモ画面.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158871/af9badd6-aefa-dc44-fd83-f8e7bfd1ff87.gif)

誤操作防止の為、ResetボタンはStopボタンがクリックされるまで無効化している。
また、Startボタンはクリック後、無効化しStopボタンクリック後に有効化されるように
している。

## コード内容
GitHubのリポジトリはこちらになります。
https://github.com/yuuta-git12/TimeManagement_App

元記事を表示

(小学生)アクセルキャンプ高学年クラス7/13 + 宿題

この記事は、岩手県八幡平市のプログラミング教室「アクセルキャンプ」の公開教材です。
[アクセルキャンプ(フリースペースプラウド)のリンク](https://freespaceproud.com)
教材の作成依頼等も承っております。ご意見等は、リンク先の問い合わせ欄からお願いします。
教材の転用・利用等は自由です。

# 算数の宿題を一瞬で終わらそう
pythonのプログラムを使って、夏休みの算数の宿題を瞬殺して、夏休みをエンジョイしよう!夏休みの計算ドリルとかって、似たような問題が多かったりするよね?
関数の仕組みを理解すれば、そういうこともできちゃいます
***

### ①関数の仕組み
・関数を用意するとき
“`python
def 関数名(引数):
関数の処理1
関数の処理2
  ・・・
“`
・関数を使用するとき
“`python
関数名()
“`
①def を書くことで「ここから関数がはじまるよ」と宣言します。
②関数名は、なんの処理をする関数なのかわかりやすい名前をつけましょう
 例)足し算をする関数
  ◯:tashizan()

元記事を表示

編集距離(Levenshtein Distance)の計算方法・計算量を考える

# 初めに
テキストの分析をたまにするのですが、編集距離を求める場面があります。
今回はその編集距離を自分で実装し、計算量を調べてみます。

# 編集距離(Levenshtein Distance)とは

[Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%BC%E3%83%99%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3%E8%B7%9D%E9%9B%A2#:~:text=%E3%83%AC%E3%83%BC%E3%83%99%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3%E8%B7%9D%E9%9B%A2%EF%BC%88%E3%83%AC%E3%83%BC%E3%83%99%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3,%3A%20edit%20distance%EF%BC%89%E3%81%A8%E3%82%82%E5%91%BC

元記事を表示

Python3エンジニア認定基礎模試試験5回目 -間違えた問題-

獲得点数 925/1000点


正答率: 92.5 % ( 37問 / 40問 正解 )

“`python
問題文のプログラムを実行した場合の、出力結果を選びなさい。
print(“出力結果:”)
try:
raise Exception(“開始前”,”Exception発生”)
print(“開始”)
except IOError as msg:
print(“IOError発生:”,msg.args[0])
except Exception as msg:
print(“予期せぬ問題発生:”,msg.args[1])
else:
print(“Else表示”)

A,出力結果:予期せぬ問題発生: Exception発生
“`
:::note info
1 行目はそのまま出力されます。
次に 3 行目の raise で強制的に Exception エラーを発生させています。
そうすると 4 行目は通らず 7 行目の expect で Exception を拾い、
Exception は msg に読み替えられています。8 行

元記事を表示

高解像度写真自動補正モデル

# 高解像度画像の画質を上げたい

画像レタッチ機械学習モデルは、計算リソースの制限があるため、高解像度の画像を補正するのが従来むずかしかった。。。

# 高画質対応モデル Image-Adaptive-LUT
画像に適応したLookUpTableを学習し、しかも高画質、高速の処理をできるモデルです。

https://github.com/HuiZeng/Image-Adaptive-3DLUT

3345*4480 の画像でも、ColabのGPUで5秒で処理できました。

***input / output***
![pexels-soulful-pizza-6941486.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/1044afd7-8444-c0c9-bbaf-773a78f17dad.jpeg) ![b4a654f2-1b43-4172-b8a8-467ac81670dc.jpeg](https://qiita-image-store.s3.ap-northeast-1.ama

元記事を表示

Seleniumライブラリを含めて、pyinstallerでEXE化する

## はじめに
pyinstallerを用いてSeleniumライブラリを含めてEXE化を行い、Python環境がインストールされていないPC環境でも実行する方法を記載します。

## 動作確認環境
* Windows OS : 21H2 (64bit)
* Python Version : Python 3.10.5
* Chrome : 103.0.5060.53
* Chrome Driver Version : 103.0.5060.53

## プロジェクト構成
プロジェクト構成は以下のとおり。

“`
 project
  |
  |-browser
  |  |-103.0.5060.53
  |  |-chrome.exe
  |
  |-driver
  |  |-chromedriver.exe
  |
  |-main.py
  |-selenium-automation.spec
“`

## 手順

1. プロジェクト構成のbrowserフォルダーの各種ファイルを以下のパスから取得します
* C:\Program Files\Google\Chro

元記事を表示

Pythonで計算処理時間を計測する方法

# Pythonで計算処理時間を計測する方法
今回はプログラムの処理時間を計測する方法について解説していきます。
様々な計測方法があるのでその違いについても少し触れていこうと思います。
以下が今回のコンテンツです。

目次
1. モジュールを使わない時間計測方法
1. %%time
1. %%timeit
1. モジュールを使う時間計測方法
1. time.time()
1. time.perf_counter()
1. time.process_time()
1. time.monotonic()
1. 実際に処理時間を計ってみよう
1. まとめ

## モジュールを使わない場合
pythonを対話型で実行できるJupyter Notebookでは%%timeや%%timeitといったマジックコマンドを使うことができます。おそらくこの方法が最も簡単に計測時間を計れる方法ではないでしょうか。以下が実行例です。

%%time
-処理-
#処理時間
また、

%%timeit
-処理-
#何回

元記事を表示

[Python / kaggle] 歪度(skewness)を操作する前処理について考える

# 1. 概要

## 1-1. 経緯

kaggleでテーブルデータを扱っていた。

モデルの精度向上のためにスコアの高い人のやり方をみたところ、**説明変数の歪度(skewness)を操作**している前処理を見つけた。

自分も歪度に対する前処理を使ってみようと思ったのだけど、一見して処理内容が理解できなかったので調査した。

## 1-2. 調べたこと
具体的には、以下の内容を調査した。

– kaggleで使用されていた、歪度(skewness)に対する前処理の内容
– 前処理で使用されている二つの関数の処理
– scipy.special.boxcox1p
– spicy.stats.boxcox_normmax
– XGBoostとLASSO回帰における、上記前処理の有効性

## 1-3. 結論

わかったこと

– 統計の領域には `Box-Cox変換`と呼ばれるものがある
– `Box-Cox変換`は、(雑に言うと)歪んだ分布を正規分布の形に近づけるために用いられたりする
– Box-Cox変換にはパラメータ:lambda($\lambda\$)を指定

元記事を表示

mock_openを使用したファイル処理のユニットテスト

# mock_openについて
mock_openはファイル処理のユニットテスト用に`open()`を置き換えるヘルパー関数です。
`open()`にパッチを適用してmock_openと置き換えることで、ユニットテスト実行環境のファイルシステムを意識せずに、ファイル処理のユニットテストが作成できます。

# mock_openの使用方法

## mock_openが使用可能なユニットテストの実行環境

mock_openはpythonの標準ライブラリ(unittest.mockモジュール)に含まれていますので、pythonが動作する環境であればmock_openが使用できます。

本記事では、pytestパッケージ、およびpytest-mockパッケージをインストールした環境向けにユニットテストの例を記載していますので、必要に応じて両パッケージをインストールしてください。

“`bash
# pytestパッケージのインストール
pip install pytest
# pytest-mockパッケージのインストール
pip install pytest-mock
“`

## m

元記事を表示

幅優先探索を用いて迷路の最短手数を求めてみる

## 概要
迷路問題を解くときに使われるアルゴリズムの一種として、**幅優先探索**アルゴリズムがあります。
簡単な題材を元に解説し、最後に例題を掲載しますので、これを機に †完全に理解した† になりましょう!

因みにこの記事は「Qiita Engineer Festa 2022」に向けて書きました。

https://qiita.com/official-events/55631b864217a4df857a

今回の迷路問題を解く流れについては、[@E869120](https://twitter.com/e869120)さんが天才的な動画を作成していたので共有します!  

## 例題
下記の迷路のスタート地点からゴール地点までの最短手数がいくつか求めなさい。ルールは下記のとおりとする。
– `S`をスタート地点、`G`をゴール地点とする。
– 移動は上下左右の4つの方向にしか進めない。
– 色がついている部分を”壁”とし、その方向には進むことは出

元記事を表示

AIによる青果物の鮮度識別アプリ

# はじめに
はじめまして。AIやDX、プログラミングに興味を持ち、AidemyさんのAIアプリ開発講座を受講している管理栄養士です。
成果物として食品の検品をするようなアプリを作りたいと思い、その作成した過程について書きたいと思います。

# 本記事の概要
青果物5種類(りんご・バナナ・ピーマン・オレンジ・トマト)が新鮮か腐敗しているかを識別する下記のアプリを作成しました。
![fruits-vegetables-freshness.herokuapp.com_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2731161/6c987d10-6b62-7e06-cb45-54932ab76683.png)

# 実行環境
MacBook Air (M1, 2020)(Monterey12.4)
Google Colaboratory

# 作成したプログラムについて
### データの準備
データセットを使ってみたかったので、いくつかのサイトを見てみて[kaggle](https://www.kaggl

元記事を表示

石膏ボード(3×6)の必要枚数を計算する

# 初めに
建設業界で働いていると図面から必要な建材の拾い出しを行わなければならない場面があります。

タイトルにある石膏ボードもその一つで、

必要な枚数を拾い出そうとすると、まあとにかく面倒くさい。

そこで普段電卓でしていることをそのままコードにしました。

それでは聞いてください。

“`python:code
#CHが1820に満たないとき
import math
def PB(ch,width):
x = math.ceil(width /910)
if ch <= 1820: num = 1820 // ch #PBの余りが足りないとき if num <= 1: PB_num = x elif num >= 2:
PB_num = x / num

elif ch > 1820:
#余っている分を考える
y = ch % 1820
y_num = ch // 182

元記事を表示

評価行列とアイテムの説明文書を活用した推薦システム「ConvMF」を何とか実装していきたい!②MFパートの実装

# 参考

– [元論文](https://dl.acm.org/doi/10.1145/2959100.2959165)
– nishiba様のConvMF実装例(Chainerをお使いになってました!)
– [エムスリー様のテックブログ](https://www.m3tech.blog/entry/2018/03/07/122353)
– [nishiba様のgithub](https://github.com/nishiba/convmf)

# はじめに

KaggleのPersonalized Recommendationコンペに参加して以降、推薦システムが自分の中で熱くなっております。以前、Implicit Feedbackに対するモデルベースの協調フィルタリング(Matrix Factorization)の論文を読んで実装してみて、今度は更に実用的(?)で発展的な手法を触ってみたいと思い、「Convolutional Matrix Factorization for Document Context-Aware Recommendation」を読みました。この論文

元記事を表示

Gitコマンド / VSCode上でのブランチ操作

## はじめに
Python学習中のIT初学者が、GitコマンドとVSCode上でのブランチ操作について簡単にまとめてみました。
私自身、ブランチ操作をする際に手間取ったり、Masterブランチ上でブランチを切らなかったせいで余計なファイルを引き継いでしまった経験があるので、同じような失敗をする人が減るように、また、これからGitを使ったバージョン管理を始めたいという方の参考になれば幸いです。

## ブランチとは?
ブランチ(branch)とは、プロジェクト本体から切り離した状態で(プロジェクト本体に影響を与えず)開発を行える機能のこと。
branchは英語で”枝”や”分岐”といった意味があり、例えばPythonのバージョンを枝分かれさせて開発したり、複数人で開発する際にそれぞれが別の機能を担当し、最終的に同じブランチに結合して開発をしたりします。

## 1. PowerShell上でのGitコマンドによるブランチ操作
**・管理しているブランチ一覧表示**
“`
git branch
“`
何もブランチを作成していなければ、masterブランチだけが表示されます。
ブランチ名

元記事を表示

GLTFからGLBに変換すーる(Python 3.9)

# はじめに
GLTFからGLBに変換していくー

# 開発環境
– Windows 10
– Python 3.9

# 導入

~~~
pip install gltflib
~~~

~~~gltf2glb.py
from gltflib import GLTF # pip install gltflib

filename = “alexander/scene.gltf”
gltf = GLTF.load(filename)
gltf.export(‘alexander.glb’)
~~~

元記事を表示

Docker+Python環境からGoogleドライブへアクセスする

## やりたいこと
Docker+Python環境でGoogleドライブへアクセスすること

## 前準備
今回、GoogleドライブへのアクセスにはPyDrive2を利用した。PyDrive2は、Google Drive APIのPython Wrapper。開発が止まっているPyDriveをforkして作られており、現在進行形でメンテナンスされている。
> 参考:[PyDrive2 · PyPI](https://pypi.org/project/PyDrive2/)

“`Dockerfile
FROM python:3.8.2

ENV HOME /home
WORKDIR $HOME

RUN apt-get update && apt-get upgrade -y
RUN pip install –upgrade pip \
&& pip install PyDrive2
“`

“`docker-compose.yml
version: ‘3’

services:
app:
build: .
volumes:
– type

元記事を表示

OTHERカテゴリの最新記事