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

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

all()とand、any()とorの違い

北海道をこよなく愛するピーターです。 意外にも 「python all and 違い」 「python any or 違い」 で検索してもヒットしなかったので記事に残します。 # はじめに pythonには条件文を書くときに便利な組み込み関数が存在します。 それは`all()`と`any()`です。 どう便利なのかというと、`and`と`or`を繰り返し記述しなくて済みます。 # 記事を書いた背景 これらの便利な関数の使い方についてネットで検索すると、`all()`と`and`は同一です!という記事ばかりでした。 しかし、両者の挙動は別物です。このことに悩まされたため記事を書きます。 # all()とany()を使ってみる(違いがない場合) 実際に`and`と`or`を使ったコードと`all()`と`any()`を使ったコードを比較してみます。 “`all.py a = 1 b = 2 c = 3 #andを使った場合 if a == 1 and b == 2 and c == 3: print(‘and int’) #組み込み関数all()を使った場合 if all
元記事を表示

Djangoを用いた「TodoList」Webアプリ開発の手順

# 概要 Python3とDjango3を利用してToDoリストを作成します。 Djangoの汎用クラスビューを利用して、下記の基本的なCRUDの機能を実装します。 ToDoの一覧表示機能 ToDoの詳細表示機能 ToDoの作成機能 ToDoの編集機能 ToDoの削除機能 # 開発環境 開発環境は下記を利用しています。 Python 3.10.6 Django 4.1.5 (バージョン3.0と比べると機能が加わったくらいなので基本的な仕様は変わらない。) # GitHub サンプルのプログラムのリポジトリは下記のURLになります。 https://github.com/miyazaki-tsubasa/TodoListproject/tree/main/todoproject # Djangoで作るToDoリスト # 仮想環境の構築 下記のコマンドでpythonの仮想環境を構築。 Pythonのバージョン確認 “` $ python3 “` バージョンが表示されたらok ### プロジェクトを作成 todoprojectという名前のファイルを作成する。 “`
元記事を表示

matplotlibとpandasを使ってグラフを作成してみた

大学の研究の際にpythonでグラフを作成する機会があったため,matplotlibとpandasを用いてグラフを作成してみた. # matplotlibとは matplotlibは,プログラミング言語Pythonのためのグラフ描画ライブラリである.オブジェクト指向のAPIを提供しており,様々な種類のグラフを描画する能力を持つ. # グラフの作成に使用したメソッド |メソッド |説明 | |—|—| |figure|figureのインスタンスが複数ある時など,どのfigureに割り当てるかを指定する.| |subplot |引数によって生成するAxes(サブプロット)の数を変更できる。 | |twinx|元のAxesオブジェクトを複製する。ただし新たなAxesには横軸がなく縦軸が逆側にある。 | |set_xlabel |x軸のラベルを設定する | |set_ylabel |y軸のラベルを設定する | |get_legend_handles_labels |二つ目のグラフを描写する | |set_xlim |x軸の上限値を設定する | |set_ylim |y軸の上限値を設定
元記事を表示

アルゴリズム実技検定(PAST) 第11回 I問題 Python解答例(幅優先探索)

Supershipの名畑です。少し前の話になりますが[このマンガがすごい!2023](https://konomanga.jp/special/145771-2)を見て、今年もオトコ編は集英社が多いなという素直な印象を持ちました。ランクインしている[あかね噺](https://www.youtube.com/watch?v=B8AE5A41CA0)は古典芸能である落語をジャンプの文法に見事に落とし込んでいて面白くて好き。 ## はじめに [アルゴリズム実技検定(PAST)](https://past.atcoder.jp/)の過去問シリーズです。 第11回のI問題になります。 A問題からここまで解ければ合計で64点なので中級となります。 前にも引用させていただいた[AtCoder社長の高橋様のつぶやき(2019年時点ですが)](https://twitter.com/chokudai/status/1196371845563346944)によるとこれで緑相当でしょうか? AtCoderで緑の私は分相応に第11回はいったんここまでとして、次からは別の回のA問題から順番にやっていこ
元記事を表示

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

## チートシート 自己学習用です。 正規の内容はドキュメントを参照してください。 ## 文法 ### グラフ描画 基本文法 “`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.fi
元記事を表示

【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 「そもそもアルゴリ
元記事を表示

画面エディタ付きのライフゲームを作ってみた python3

画面エディタ付きのlifegameを作ってみました。 エディットモードで、画面上をマウスでクリックすると、セルがオンオフします。 ゲームモードでも、セルをクリックしたら、画面が止まり、自動的にエディットモードになります。 キー操作: w save.txtにセーブ l save.txtからロード e エディットモード g ゲームモード r ランダムに初期化する c クリア q quit “`lifegame.py #!/usr/bin/python3 from pygame.locals import * from scipy import signal import pygame import sys import numpy as np import os scale=5 height=100 width=100 def draw_grid(screen): screen.fill((0,0,0)) for i in range(0,width): pygame.draw.line(screen,(0,255,0),(0,i*scale),(scale*wi
元記事を表示

エラトステネスのふるいによる素数生成 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カテゴリの最新記事