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

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

【Matplotlib】チートシート_Python データ分析学習備忘録

## チートシート 自己学習用です。 正規の内容はドキュメントを参照してください。 ## 文法 ### グラフ描画 基本文法 “` # matplotlib.pyplotをpltとしてimport import matplotlib.pyplot as plt import numpy as np # np.piは円周率 x = np.linspace(0, 2*np.pi) y = np.sin(x) # データx, yをグラフにプロットして表示 plt.plot(x, y) “` * 表示範囲:`plt.xlim([始まりの値, 終わりの値])` `plot.ylim([始まりの値, 終わりの値])` * グラフタイトル:`plt.title(“タイトル名”)` * 軸ラベル:`plt.xlabel(“ラベル名”)` `plt.ylabel(“ラベル名”)` * グリッド表示:`plt.grid(True)` * グラフ軸のメモリを設定:`plt.xticks([目盛りを挿入する位置], [表示する目盛りの文字列])` * グラフサイズ:`plt.figure(f
元記事を表示

【PySimpleGUI】設定ファイルをJSONで簡単に取り扱う

PySimpleGUIで設定ファイルを取り扱いたい時に、`configparser`モジュールを利用したやり方が多く紹介されています。 しかし、PySimpleGUIのみで設定ファイルを取り扱うことができるので紹介します。 日本語の記事が見当たらなかったので投稿しました。 # バージョン 4.60.4 # 公式リファレンス 基本ここ見ればいいです。 [Call reference \- PySimpleGUI](https://www.pysimplegui.org/en/latest/call%20reference/) # メソッドの説明 – `user_settings_filename(filename = None, path = None)` 設定ファイルのパスとファイル名を指定します。 最初に指定をしなければ、デフォルト値として path : C:/Users/<ユーザー名>/AppData/Local/PySimpleGUI/settings filename: アプリケーション名(Pythonファイル名) + ‘.json’ が指定されます。(Window
元記事を表示

音声認識AIのWhisperを利用して、英語動画をテキスト化したい

# 概要 Qiita初投稿なので至らぬ点があればご容赦ください。 私はセキュリティエンジニアとして勤務していますが、勉強するには英語の教材に向き合うことが多々あります。youtubeであれば翻訳字幕機能を使ったり、文献であればDeepLを使えばいいのですが、そうではない動画では英語字幕すらない場面に遭遇します。 なんとか英語の動画をテキスト化し、DeepLで翻訳できればと思いPythonで組んでみました。 # お断り 普段プログラムを書くことがないため、変な書き方をしているかもしれません。 # 構築環境 OS:Windows11 Python:3.9 Anaconda3使用 NVIDIA CUDA ツールキット:11.7 NVIDIA cuDNN:8.5 ffmpeg:0.2.0 pytorch:1.13.1+cu117 # Whisperの準備 OpenAIが開発している汎用的な音声認識モデルになります。音声からの文字起こしと翻訳機能を兼ねています。ただし、英語から日本語には対応していないため英語のテキスト化に使用していきます。 CPUのみで稼働させることもできますが、GPUを
元記事を表示

アルゴリズム実技検定(PAST) 第11回 H問題 Python解答例(ナップサック問題 / 動的計画法)

Supershipの名畑です。 [うる星やつらの2クール目のOP](https://www.youtube.com/watch?v=stb-BpPpJ7U)も好きです。テンちゃんと竜之介が加わると一気にうる星やつら感が増します。 ## はじめに [アルゴリズム実技検定(PAST)](https://past.atcoder.jp/)の過去問シリーズです。 第11回H問題の解答例です。 難易度としてはABC(AtCoder Beginner Contest)のC〜Dぐらいという肌感ですが、[ナップサック問題](https://ja.wikipedia.org/wiki/%E3%83%8A%E3%83%83%E3%83%97%E3%82%B5%E3%83%83%E3%82%AF%E5%95%8F%E9%A1%8C) / [動的計画法](https://ja.wikipedia.org/wiki/%E5%8B%95%E7%9A%84%E8%A8%88%E7%94%BB%E6%B3%95)を知っていればほぼノータイムで解けそうではあります。 :::note info 「そもそもアルゴリ
元記事を表示

lifegameの画面エディタを作ってみた python3

(https://qiita.com/sage-git/items/c6c175887faa4cf737fb) ↑ここにあるライフゲーム用の画面エディタを作ってみました。 画面上をマウスでクリックすると、セルがオンオフします。 キー操作: w save.txtに画面をセーブ l save.txtからデータをロード q quit なお、元記事のデータロードはモジュールがないというエラーになるので、元記事のプログラムに、 `import os`を付け足す必要があります。 “`lgeditor.py #!/usr/bin/python3 from pygame.locals import * import pygame import sys import numpy as np import os scale=5 height=100 width=100 pygame.init() # Pygameを初期化 screen = pygame.display.set_mode((scale*width,scale*height)) # 画面を作成 pygame.display
元記事を表示

エラトステネスのふるいによる素数生成 Python3

エラトステネスの篩による素数生成をします。 ファイルに、`chmod +x prime5.py`として実行権を付けて動かして下さい。 `$ prime5.py `で、nまでの素数を生成します “`prime5.py #!/usr/bin/python3 import sys def primes(n): p = [i for i in range(n + 1)] # 0からnまでのテーブルを作る for i in range(2, int(n**0.5)+1): # 2から√nまでの中で、 if p[i] != 0: # 最初の数が見つかったら for j in range(2, int(n/i)+1): #倍数を次々と消してゆく p[i*j]=0 return(sorted(set(p))[2:]) #リストを整形する argvs=sys.argv n =int(argvs[1]) pl=primes(n) print(pl) print(len(pl)) “`
元記事を表示

Pythonでの音声信号処理 (5) ノコギリ波の作成

ダミーデータを使って、ノコギリ波を作ってみる(特に深い意味は無し)。 “`p5.py # -*- coding: utf-8 -*- import sys sys.dont_write_bytecode = True import math import numpy as np from Grp import Line def main(): smpl = 1024 # サンプリングレートは1024 sec = 2 # 2秒分 # ノコギリ波 = Σ {(1/n) (sin nx)} wav = makeWave(1, smpl, sec, 0, 0, 1) for i in range(64): freq = i + 1 wav += makeWave(i + 1, smpl, sec, 1 / freq, 0, 1) grp = Line() grp.setScale(256 / smpl) grp.setData(wav) grp.displ
元記事を表示

Pythonでの音声信号処理 (4) ダミーデータの作成

今後も踏まえて、ダミーデータ作成用の処理を用意しておく。 “` def makeWave(freq, smpl_freq, smpl_sec, r, a, b): “”” サンプルデータ生成 Parameters ———- freq : int 周波数(Hz) smpl_freq : int サンプリング周波数(Hz) smpl_sec : int サンプリング秒数(sec) r : float 振幅 a : float 位相用定数(cos) b : float 位相用定数(sin) Returns ——- res : numpy.ndarray サンプルデータ “”” res = [] for t in range(smpl_freq * smpl_sec + 1): theta = 2.0 *
元記事を表示

【Python】set型のremoveとdiscardの違いと覚え方

 競技プログラミングをやっていて、ふと「どちらも削除するものだけど、この2つの違いってなんだ?」と思い調べてみました。結論としては、**取り除くものがそもそも存在しないときエラーを返すかどうか**です。 ## removeとdiscardの共通事項 – 集合から要素を削除するメソッド。 – 複数指定はできない。 – 要素を指定しない場合、エラーが出る。 ## removeとdiscardの違い “`python S = {one, two, three} S.remove() #エラー:remove() takes exactly one argument (0 given) S.discard() #エラー:discard() takes exactly one argument (0 given) S.remove(‘four’) #KeyError: ‘four’ S.discard(‘four’) #エラーは出ない “`  先述の通り、要素を指定しなければどちらもエラーを出しますが、要素を指定して、それが含まれていない場合、`remove`はエラーを吐き出し、`d
元記事を表示

Pythonでガンマ関数とゼータ関数をプロットするためのメモ書き(複素数対応版)

複素数対応版を探すのに苦労したのでメモ。 # 複素数の使い方 虚数単位として`j`を付けるだけ。`.real`と`.imag`で実部、虚部を取り出せる。 “`python 1+2j “` https://qiita.com/shuhei/items/f5cf6c83fcfb5dd24c2d # ガンマ関数 scipy.specialの[`gamma`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.gamma.html#scipy.special.gamma)を使う。ガンマ関数の逆数[`rgamma`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.rgamma.html#scipy.special.rgamma)も用意されている。 [array_like型](https://numpy.org/devdocs/glossary.html#term-array_like)を引数に取れる。 htt
元記事を表示

geometry_msgs/PoseWithCovarianceStamped をrosbag_to_csvした時、covarianceの行が括弧でくくられてしまっている件

## 経緯 rosbagのなかのgeometry_msgs/PoseWithCovarianceStamped型のトピックをrosbag_to_csvでcsv化すると、covarianceのすべての成分が()でくくられて扱いづらい。![Screenshot from 2023-01-08 19-34-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1294864/96e0c098-7d2a-ed15-5b9a-d99b4d8933f5.png) 応急処置的ではあるが、pythonでcovarianceの成分を一つづつ列に保存するようにする。 ## 環境 – Ubuntu18.04 – ROS1 – python2.7 ## スクリプト “`php:covariance_to_csv.py import rosbag import sys import os import pandas as pd # get path argv = sys.argv filename=os.path.norm
元記事を表示

Pythonでの音声信号処理 (1) ファイルの読み込み

音声ファイル(ここではmp3)を読み込んでみる。 “`p1_1.py from pydub import AudioSegment sd = AudioSegment.from_mp3(“data.mp3”) print(sd.duration_seconds) print(sd.frame_rate) print(sd.channels) “` 音声信号部分を取り出してみる。 “`p1_2.py from pydub import AudioSegment import numpy as np sd = AudioSegment.from_mp3(“data.mp3″) sr = np.array(sd.get_array_of_samples()) ch1 = sr[::2] ch2 = sr[1::2] for i in map(hex, ch1): print(i, end=”, “) “`
元記事を表示

【portfolio】 化粧品販売システム

本記事について

ポートフォリオを閲覧頂く方が理解しやすいよう

motoyaが作成した【化粧品販売システム】について関連する情報を整理した内容となっております。

解説リンク集

本システムのソースコード

Github

OTHERカテゴリの最新記事