Python3関連のことを調べてみた2023年01月31日

Python3関連のことを調べてみた2023年01月31日

Python + Tkinter – 学習時間を記録(ポモドーロ法)できるアプリ

## ポモドーロ法で学習時間を記録できるアプリ
Tkinter学習の一環でポモドーロ法で学習時間を記録できるアプリを制作しました。25分学習→5分休憩、という方法で効率よく仕事や学習を継続できるという学習法です。

![スクリーンショット 2023-01-31 093939.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/337578/7bd3e706-0130-93d9-dfa8-4259398e87a8.png)

### コード

“`python
import tkinter as tk
from tkinter import *
import math

# —————————- CONSTANTS ——————————- #

PINK = “#e2979c”
RED = “#e7305b”
GREEN = “#9bdeac”
YELLOW = “#f7f5dd”
FONT_NAME = “Courier”
WORK

元記事を表示

Python + Tkinter – マイル→キロメートルへ単位換算するアプリ

## マイル→キロメートルへ単位換算するアプリ

Tkinter学習の一環でマイル→キロメートルへ単位を換算するアプリを制作しました。

### コード

“`python
from tkinter import *
from tkinter import font

#ウィンドウのタイトル+サイズ
window = Tk()
window.title(“Mile to Kilometer”)
window.minsize(width=400, height=300)
window.config(padx=50, pady=20)

myfont = font.Font(family=’Helvetica’, size=16, weight=’bold’)
myfont_result = font.Font(family=’Helvetica’, size=24, weight=’bold’)
myfont_h1 = font.Font(family=’Helvetica’, size=28, weight=’bold’)

def miles_to_km():
miles

元記事を表示

【Python】T5でクソデカ変換を試みたけど難しかった

# 概要
[クソデカ羅生門](https://anond.hatelabo.jp/20200611125508)風の文章を生成したくなったので、T5(text-to-text transfer transformer)による変換を試してみました。が、あまりうまくいきませんでした。
やったことのメモとして残しておきます。

# 目的
[クソデカ羅生門](https://anond.hatelabo.jp/20200611125508)は『羅生門』(芥川龍之介)の語彙を過剰に強調した文章です。

例えば原文「一人の下人が、羅生門の下で雨やみを待っていた。」はクソデカ文では「一人の下人が、`クソデカい`羅生門の`完全な真`下で雨やみを`気持ち悪いほどずっと`待`ちまく`っていた。」となります。このような変換を実行する変換器をつくることが目的です。

# 先行事例
[「クソデカ羅生門」的な文章を生成したかった(過去形)](https://qiita.com/gaqwest/items/03d66b00ba1152d81441)にて、ルールベースの変換が検討されています。かなりそれっぽいものがで

元記事を表示

Python for文まとめ

# 0 はじめに 

## この記事について

殆どのプログラミング言語にはfor文なるものが存在します。
for文には、その言語の熟練度と言っても過言ではない程、色々な使い方が存在するものです。

この記事ではPythonでのfor文の用法をまとめてみました。
私の知る限りの用法をまとめましたので、参考にして頂けますと幸いです。

Pythonを少しでもわかる方が対象です。

## for文とは

for文は次のような事ができます。
①ある操作を指定した回数繰り返す
②イテレータの要素を1つずつ見ていく

イテレータとは簡単に言えば「何かが集まったもの」です。
文字列や配列などがイテレータに該当します。

又、①も実は②に含まれると言うことができます。
発展的な話題なのでそれについては後述します。

# 1 基本

## 1-0 カウント変数

for文にはカウント変数というものが存在します。
カウント変数はfor文を回すごとに指定した通りに変化していきます。

`for (カウント変数) in (なんか)`という形が基本です。

## 1-1 for i in range(N)

元記事を表示

【EC2】Lambdaから時刻指定でEC2を自動起動・停止を時刻実現する

# EC2の自動起動・停止を実現したい!

https://qiita.com/YujiHamada3/items/3caccdaded527548432b

上記記事の改良版です。上記記事では自動起動・停止をhour単位でしか指定できず、一日に一度しか指定できませんでした。
それに加えて今回は
– 時刻まで指定できる(10分ごと)
– 複数時刻を指定できる
– 平日指定できる

の機能を追加しました。
今回はLambdaを何度も呼び出したくないので10分ごとにしましたが、Lambdaを毎分呼び出せば、分指定までできるようになります。

# EC2のタグの設定
![スクリーンショット 2023-01-30 16.56.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/290902/8f66b619-198e-9555-a157-2849073dde15.png)

タグはこの様に設定します。
これだと
平日16時30分に起動して16時40分に停止する。
平日16時50分に起動して17時00分に停止する

元記事を表示

pip uninstall all

pipでインストールしたものを全て消す。確認も省略しているので要注意。

“`bash
pip freeze > freeze.txt; pip uninstall -y -r freeze.txt; rm freeze.txt
“`

元記事を表示

au のガラホ(KYF36)がほぼ壊れてiPhoneに機種変更したが、電話帳のインポートはそのままでは無理だった

# 機種変更した経緯
ガラホ(au KYF36)の充電が出来なくなり、ヤバイと思い急遽 au Shop でのプラン変更で ESIM して iPhone SE2 に機種変更した。

## 機種変更前にやっとくべきだった。。
ガラホの電話帳を移行する前に切り替えてしまったので au お預かりサービス等使用できずにスムーズに出来なかった。

## 元端末の電話帳エクスポート
色々な充電ケーブル挿したがすべて反応せずでしたが、ケーブル挿す場所に「フッ!!」って息を吹いたら充電できるようになった。
(ってかこれで充電できなかったら電池足りなくて終わってました。。。。。。

サポートツール(安心安全なんちゃら)を使用して電話帳データをSDカードにエクスポートしました。

## データフォーマット
vCard を想定していたのですが、 json でした。。。。
部分抜粋です。
(グループは無視してます)

“`sample.json
[
{
“accountName”: “Contacts”,
“accountType”: “jp.kyocera.localcontacts”,

元記事を表示

pygameにおける動画再生方法(既存のウィンドウを使用する場合)

# 目次

[1. はじめに](#1-はじめに)
[2. モジュールのダウンロード](#2-モジュールのダウンロード)
[3. サンプルプログラムの準備](#3-サンプルプログラムの準備)
[4. 動画再生コードの追加](#4-動画再生コードの追加)
[5. おわりに](#5-おわりに)

# 1. はじめに
pygameにおいて動画を再生する方法を記載します。
劇中ムービーのように新規ウィンドウを開かずに既存のウィンドウで動画を再生することを想定しています。
pygameにおいて動画再生は音と別々の再生になるため、あまり向いていませんが自分なりにコードができたので公開します。
修正点等あればご指摘いただきたいです。

# 2. モジュールのダウンロード
Python版OpenCVを使用するため、最初にインストールを行います。
OpenCVとは、Intelが開発したオープンソースの動画や画像を処理するライブラリです。

“`python:インストール
pip install opencv-python
pip install opencv-contrib-python
“`

#

元記事を表示

pythonでプロット用のデータを事前計算してバイナリでファイル出力しておく&読み込んでプロットする

# アイデア

プロット用のデータを毎回計算すると時間がかかりすぎるため、事前計算しておきたい。
そこで、バイナリファイルに書き出すようにしてみた。

– 複素数関数の、引数の実部と虚部をそれぞれ等差的に変化させたときの格子点に対しての、関数の値の実部と虚部をdouble型で格納。
– 複数の関数を組み合わせて追加計算したい場合を想定して、複数の関数を同じファイルに格納。

“`text:データ構造のメモ書き
ascii4 “PLOT”
uint2 format version info
uint2 number of functions
uint4 stepcount of x(real part) of numpy.linspace(,,*)
uint4 stepcount of y(imag part)
ascii128 description of func[0]
ascii128 description of func[1]
:
ascii128 description of func[n-1]
double start x of numpy.linspace(*

元記事を表示

[pandas]辞書<->pd.DataFrame変換をていねいに書いた@値の区切り文字処理

# 要約
区切り文字を抜いて全紐づけパターンを出力する処理を書いた!動いた!
とは言え、辞書型変換を雑スクラッチしてしまった感が強く残った。
その後にもっと良いやり方(諸説あり)を知ったので修正。

学びの備忘録として残す。
一応公開しています。
https://github.com/gmoriki/rm_delimiter

# 実装の背景
Scivalから提供されるExcelデータに区切り文字が使用されていることが多い。
例えば一つの論文に紐づく著者3名の固有IDが、以下のような形式の値で格納されている。

例:`”10000 | 20000 | 300000″`

この状態で固有IDと別の情報をマージすることは困難であり、部署内の利用者はうまいこと区切り文字を処理してきた。今後同じような事態(車輪の再生産)を避けるために、今回は区切り文字を排除した上でExcelデータに再出力する、比較的汎用的なプログラムをPythonで書こう、と思い至った。

### 読み込みテーブル
`key`,`target`という列名を含むExcelデータを用意する。
| key | target

元記事を表示

Transformerの基本

# はじめに
今回はTransformerで使用されている技術についてまとめておきます.
初めは自然言語処理に用いられていた構造ですが,画像分野でも大活躍中です.
なかなかとっかかりにくい分野ですが,単純なDeepLearning は一通り学べたという人は是非Transformerについて勉強しておきましょう:heart_exclamation:

今回はPowerPointの画像をペタペタ+αちょこっと説明という形式です.

# 1 Attention
下図のような?の画像があったときに人は背景を無視して?だけを注目できますが,CNNでは画像全体に同じ処理を繰り返すため,そういったことはできません.
![Attention1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3120757/71d57718-91df-4ec3-7bb1-76c9d8a6f57f.png)

例えば,以下のような流れのモデルがあるとして,GAPでは背景も含めて画像全体の特徴を平均化します.
勿論大量のデータを使うことで,前

元記事を表示

RNNの基本

# はじめに
今回は時系列データを用いる際に使用する,Recurent Neural Network(RNN)についてまとめておきます.
最もシンプルなRNN,進化系のLSTM,LSTMを軽くしたGRUについて紹介します.

また,RNNへの入力形式についてもお話しできればと思います.
時系列データは画像等とは少し違ったデータ形式にして,入力しないといけません.
(はじめて実装するときに悩んだので,同じ悩みを抱える人の助けになればいいな:relieved:)

因みに,モデルの実装はPytorchだとnn.RNNと書くだけなので楽勝です.
(勿論中身を理解した方がいいですが)

# 目次
[1 RNN](#1-RNN)
[2 LSTM](#2-LSTM)
[3 GRU](#3-GRU)
[4 RNNへの入力形式](#4-RNNへの入力形式)

# 1 RNN
RNN(Recurent Neural Network)とは,時系列データを扱うDeep Neural Networkです.
RNNでは現在に対する過去の影響を考慮します.

時刻 (t) における状態を考えるとき,時刻 (t)

元記事を表示

CNNの基本

# はじめに
画像等を用いたDeepLearning で使われるConvolutional Neural Netwoek(=畳み込みNN=CNN)についてまとめておきます.

Linearでもいいので簡単なモデルを作ったことがある人なら実装部分は詰まらないと思います.ので,知識のお話をできればと思います.
また,Convolution層にのみ使えるGradCAMという便利な技術についても紹介します.

# 目次
[1 畳み込み](#1-畳み込み)
[2 プーリング](#2-プーリング)
[3 GradCAM](#3-GradCAM)

# 1 畳み込み
CNNのメイン処理です.
今回は2次元の画像に対して考えていきます.
畳み込み処理には”フィルタ”を使います.下図の赤の部分が処理される画像,青の部分がフィルタです.
![Conv1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3120757/def5c821-0bc3-7606-1273-ce5b711c2a23.png)
まずはこのフィルタを左上3

元記事を表示

DeepLearning基礎技術まとめ

# はじめに
DeepLearning では様々なデータを扱います.テーブルデータ,画像,3D,時系列,etc. 何を使うにしても必要となる技術についてまとめておきます.(自分の為も兼ねて)

# 目次
[1 DNNの基本](##1-DNNの基本)
[1.1 DeepLearning って??](##1.1-DeepLearning-って??)
[1.2 全結合層](##1.2-全結合層)
[1.3 活性化関数](##1.3-活性化関数)
[1.4 Loss関数](##1.4-Loss関数)
[2 特徴分布](#2-特徴分布)
[3 Validation](#3-Validation)
[4 交差検証](#4-交差検証)
[5 アンサンブル学習](#5-アンサンブル学習)

# 1 DNNの基本
## 1.1 DeepLearning って??
例えば,よくある画像の分類について考えます.
?と?の画像分類をしたいとき,学習データを用意して,それをDeepLearning で学習します.すると,この写真に写ってるのは????といった問題を解けるようなものが出来上がります.

これはつ

元記事を表示

Scanline Seedfillによるペイント関数

Scanline Seedfillによるペイント関数です。
指定された背景色の部分を指定された色で塗りつぶします。
python3で書かれています。グラフィックスの部分はpygameを使っています。

“`scanline.py
#!/usr/bin/python3
from pygame.locals import *
import pygame
import sys
import os
import random
MAXX=399
MAXY=399
buff=[]
pygame.init() # Pygameを初期化
screen = pygame.display.set_mode((MAXX+1,MAXY+1)) # 画面を作成
pygame.display.set_caption(“paint(scanline seedfill)” ) # タイトルを作成

def point(p):
return(screen.get_at(p)[:3])

def scanline(lx,rx,y,bc):
global buff
while(lx<=r

元記事を表示

Ubuntu: Visual Studio Code の使い方

Ubuntu 22.10 で Visual Studio Code を使う方法です。

## インストール
deb ファイルをこちらからダウンロードします。
[Visual Studio Code on Linux](https://code.visualstudio.com/docs/setup/linux)

“`bash
sudo dpkg -i code_1.74.3-1673284829_amd64.deb
“`

インストールできたことを確認

“`text
$ which code
/usr/bin/code

$ code –version
1.74.3
97dec172d3256f8ca4bfb2143f3f76b503ca0534
x64
“`

## 起動

“`bash
code
“`

## サンプルプログラムの実行

“`py:sample.py
import sys
sys.stderr.write(“*** 開始 ***\n”)
print(sys.version)
print(“Hello World”)
print(“こんにちは”)

元記事を表示

ランダム量子回路ジェネレーターを作ってみた。

おはようございます。
[株式会社インスパイアサーチ](https://www.inspiresearch.io)の加藤 翼です。

昨日、ランダムに量子回路を作るPythonスクリプトを作ったので、公開します。
とてもシンプルなスクリプトで、一回走らせると、10個ランダムに量子回路を生成してくれます。

使ったのはQiskitです。
[ソースコードはGitHubにも公開しました。](https://github.com/stingraze/qiskit-random-circuit-generator)

“`python3
#(C)Tsubasa Kato – Inspire Search Corporation 1/26/2023 16:17PM
#Referenced: https://qiskit.org/documentation/stubs/qiskit.circuit.random.random_circuit.html
from qiskit import QuantumCircuit, assemble, Aer
from qiskit.circuit.random

元記事を表示

ChatGPTにいろいろな呪文を唱えて、魔法を詠唱してもらった for Python.

# ChatGPTでいろいろなパターンのコードを書いてもらう for Python.
タイトル通りです。ChatGPTにいろいろな呪文を唱えて(指示を与えて)、魔法を詠唱(コード生成)してもらった。
なお、本記事の構成は、「呪文>魔法詠唱(サンプルコード)>補足説明」となっています。

## 簡単なスクレイピング 1
まずは、ありきたりなスクレイピングに関する魔法を詠唱(コード)してもらった。
簡単な魔法がどれくらいなのか?精度も知りたく、以下の内容で呪文をかけてみた。

はじめの呪文(指示)は次の通りです。
“`:呪文
pythonコードで、特定のサイトをスクレイピングして、
テーブルタグのデータをexcelに落とし込み、各データのテーブルを作成するコード書いて
“`
魔法詠唱
“`Python3:魔法詠唱
import requests
from bs4 import BeautifulSoup
import pandas as pd

# スクレイピング対象のURL
url = “https://example.com”

# requestsを使用してHTMLを取得
re

元記事を表示

PythonでRaspberryPiで撮影したカメラ映像をリアルタイム転送する

# はじめに
本記事は備忘録の一部です。
![Fig.1](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629378/e2b80505-44b4-feff-715f-e41c0429a513.jpeg “[Fig.1]カメラを搭載したRaspberryPi4”)

**監視カメラ**でも作ろうかと過去のコードをぴっぱり出したところ、コピペでは動作しなくなっていたので、最近の仕様変更に合わせたコードへの修正となります。

具体的には、**RaspberryPi**で取得したデータをほかのデバイス(Pythonが動くもの)で表示させるというものになります。

本コードは拡張性が高く、**リアルタイム映像をAI・機械学習等の処理**にかけるときに別のサーバー上で処理ができるので大変重宝しております。**簡易監視カメラ**にもなりますし、**Python**で書かれているのでNAS等に動画を保存しておくことも可能です。可能性は無限大と言えますね!

中華のIPカメラでやれよって話ですけどね。

# 目標

![Fid.

元記事を表示

ハノイの塔を解くプログラム python3

再帰アルゴリズムで、ハノイの塔を解くプログラムです。

`$ chmod +x hanoi.py`で実行権限を付けて実行して下さい。
`’./$ hanoi.py `で、n段のハノイの塔を解きます。

“`hanoi.py
#!/usr/bin/python3
import sys

def hanoi(n, from_, to, work):
if n > 0:
hanoi(n-1, from_, work, to)
print(“move #%d disk from %s to %s” % (n, from_, to))
hanoi(n-1, work, to, from_)

hanoi(int(sys.argv[1]), ‘Left’, ‘Center’, ‘Right’)

“`

# 実行結果

“`
$ hanoi.py 3
move #1 disk from Left to Center
move #2 disk from Left to Right
move #1 disk from Center to Right
move

元記事を表示

OTHERカテゴリの最新記事