Python関連のことを調べてみた

Python関連のことを調べてみた

lambda関数の基本概念と利用シーン

## はじめに
こちらはlambda関数に関しての備忘録。

## 🦁**結論**🦁
lambda関数は、小規模な匿名関数を一行で定義するための構文。

lambda 引数 : 処理 (引数)
“`py
lambda x: x + 1
“`

:::note info
押さえておくべき点
* 短い処理に使うことでコードの可読性が向上。
* ちょっとした処理を加えたい時に使われる関数。
* 引数は複数指定可能。
:::
***

:::note warn
利用シーン
* 他の関数の引数として直接記述する場合に有用
* sorted()やlist.sort()のkey引数にlambda関数を使うことがある。
* フィルタリングで使われるfilter()関数の引数として、特定の条件に基づいてリストから要素を選択するために使用されます。
* データ変換などで使われるmap()関数の引数として使用し、リストの全ての要素に対して変換を適用します。
* GUIやWebアプリケーション開発において、簡単なイベントハンドラーを定義するのに利用される。
:::
**

元記事を表示

Python3ではじめるシステムトレード:採択・棄却法による乱数生成

採択・棄却法が今一歩よくわからないので、いろいろ試してみました。メモとして残します。

ー乱数生成採択棄却法ー
1600

採択・棄却法とは, 任意の確率密度関数 $f(x)$ からサンプルを生成するために、提案分布と呼ばれる別のより扱いやすい確率密度関数$g(x)$を用いる方法である。この方法では、$g(x)$ から得られたサンプルが、目標分布$f(x)$ にどの程度適合しているかを評価し、適切なサンプルのみを採択して、$f(x)$ のサンプルとする。

$g(x)$と一様乱数$u$を利用して$f(x)$を密度にもつ確率変数$X$の乱数が生成
できる.

1.$g(x)$から乱数$x$と$U(0,1)$から一様乱数$u$をとる.

2.$r=l(x)/(Mg(x))$として$u\le r$ならば$x$を出力し,そうでないならば1.に戻る.

$g(x)$から$x$を生成し、それとは独立に一様乱数$u$を生成して、$f(x)$を密度にもつ確率変数$X$を生成する。その過程で用いられる$l(x)$は$f(x)$と$l(x)/c=f(x)$の関係にあり、$c$は正規化定数だが、$l(x

元記事を表示

Houdini Pythonの各種メンバー表

HoudiniのPythonでどんなメンバーやメソッドがあるのか毎回dirで調べてたので
もういっそ表にしてしまおう。
なんならQiitaでどこでも見れる様にしておこう、だがあくまで一覧。
気になるメンバーなりメソッドなり見つけたらそいつでググるべし。
[OBJ](#OBJ)、[SOP](#SOP)、[ジオメトリ](#ジオメトリのメンバー)、[TOP](#TOP)、[work_item](#ワークアイテムのメンバー)、[graph](#グラフのメンバー)
何か間違っていましたらご指摘下さい。(↑半分くらいページ内リンクが飛びません・・・)

## OBJ
PythonSOPでOBJのノードのメンバーを下記のコードで調べた。

“`ノードのメンバー
node = hou.node(‘/obj/geo1’)
for i in dir(node):
print(i)
“`

| | | | | |
|:-|:-|:-|:-|:-|
| \_OpNode__creationTime | clearUserDataDict | hide | moveParmTranslateInto

元記事を表示

フーリエ解析と過渡現象

# はじめに
連続かつ周期性のある関数は、三角関数の無限級数の和によって表現することが知られている。これをフーリエ解析という。今回はこれを応用して、方形波の電圧をRC直列回路やRL直列回路に印加した場合の電流の過渡応答についてフーリエ解析を用いて調査することを目的とする。具体的には、Pythonを用いて、方形波電圧を三角関数で表される交流に分割して、それぞれの場合について個々の電流を求めて、最終的にそれを重ね合わせの理によって合成する。
# 方形波
方形波電圧は、三角関数の無限和で表すことができる。ただし、プログラムでは無限和を適切に表現することが難しいので、有限和で表し近似する。

方形波を表現するプログラムとして以下のようなプログラムを書いた。

“` python forie_rec.py
from scipy import signal#方形波を作るのに使用
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import math
V=1

n= int(input(“和

元記事を表示

【Python】特定の文字列と文字列の間を抽出する方法

◆問題
特定の文字列と文字列の間を抽出する方法が分からなかった。

◆対処法
スライスを使用すればできた。

“`python:slice.py
txt = ‘僕は、「情弱」だ。’
result = txt[txt.find(‘「’) + 1:txt.find(‘」’)]
# 今回一気にやっていますが、分けてやってもよい。

print(result)

# 実行結果
情弱
“`

元記事を表示

FastAPI のエラーを Azure Application Insights に送る

まだ OpenTelemetry について理解が薄いものの、とりあえずアプリケーション内で発生したエラーを Azure Application Insights に送りたかった。

あれこれ試行錯誤したものの結論だけ書くと簡単で、[azure-monitor-opentelemetry](https://pypi.org/project/azure-monitor-opentelemetry/) と [opentelemetry-instrumentation-fastapi](https://pypi.org/project/opentelemetry-instrumentation-fastapi/) を入れて、下記のように設定すれば動いた。

“` python:app.py
from os import getenv

from azure.monitor.opentelemetry import configure_azure_monitor
from fastapi import FastAPI
from opentelemetry.instrumentation.fas

元記事を表示

Python 文法まとめ

### 目次

1. **[プログラミング入門](#1-プログラミング入門)**
– [1.1 プログラミングとは](#11-プログラミングとは)
– [1.2 Pythonとは](#12-pythonとは)
– [WEBアプリケーション開発](#webアプリケーション開発)
– [データ分析](#データ分析)
– [機械学習・AI](#機械学習・ai)
– [ゲーム(GUI)アプリ開発](#ゲームguiアプリ開発)
– [スクレイピング](#スクレイピング)
– [1.3 プログラミングの進め方](#13-プログラミングの進め方)
– [1.4 print関数](#14-print関数)
– [1.5 コメント](#15-コメント)
– [1.6 エラーへの対処方法](#16-エラーへの対処方法)
– [1.7 Pythonプログラミングにおける注意](#17-pythonプログラミングにおける注意)
– 行の先頭から書く
– 1行に1命令
– 全角スペースの罠

元記事を表示

Github Copilot のインラインチャットにてコード全体に対する修正が可能

## 概要

VS Code 利用時に Github Copilot にてコード全体に対する変更が実施可能であることを YouTube の動画(本記事の内容とは別の内容です)にて知りました。今までメソッドごとに修正作業を確認しながら実施していたため、そんな便利な方法があったのかと驚きました。本記事では、サンプルとして用意したサンプルコードの修正を実施する手順を紹介します。

![image.png](htt

元記事を表示

4年に1回バグが出る

# コード
“`python
import datetime
dt = datetime.datetime.strptime(’02月29日’, ‘%m月%d日’)
month = dt.month
day = dt.day
print(dt)
print(month, day)
“`
⇓実行
“`
ValueError: day is out of range for month
“`
# 原因
年が渡されていないので、**”1900-02-29 00:00:00″** とライブラリが解釈しようとして、1900年に29日はありませんよ!と怒られる。

# 対策
**datetime.datetime.strptime**を使う際は、**年**も必ず入れよう!

元記事を表示

App StoreとGoogle Playのアプリレビューの取得

# 概要
* App StoreとGoogle Playのアプリレビューを取得する方法の備忘録
* 評価,レビュー,バージョンの情報を抽出し,pandasのデータフレームにする
* Pythonを使う

# 1. App Storeのレビュー取得
アプリIDを利用してxmlファイルを取得します.xmlファイルから評価,レビュー,バージョン情報を抽出する流れとなります.

* App StoreのアプリIDを利用してxmlファイルを取得します.
* IDは,App Storeのレビューを取得するアプリのページのURLに記載されています.

:::note info
例)Suicaの場合
* App Storeのページ
https://apps.apple.com/jp/app/suica/id1156875272
* レビューのxmlファイル(page=1からpage=10)
https://itunes.apple.com/jp/rss/customerreviews/page=1/id=1156875272/sortby=mostrecent/xml
:::

* Suicaの場合,

元記事を表示

僕「OpenAI、JSON形式で返して!」、OpenAI「“`JSON“`(md形式のJSONを返す音)」

**僕「…(md形式のJSONだとパースできへんやん)」**

# はじめに
ということで、Hubbleでバックエンドエンジニアをしている @power3812 です。オブジェクト指向大好きマンで、神クラスを作れないかと模索の日々です:innocent:

今回は契約書のバージョン管理サービスを提供している弊社が、OpenAIを使用してみた結果について書こうと思います!

# 経緯
弊社では、契約書のバージョン管理サービスを提供していて、その中に[契約書情報(契約書名、契約相手方、契約開始日、契約終了日等)を自動で抽出する機能](https://help.hubble-docs.com/ja/articles/5688587-%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%83%AA%E3%82%B9%E3%83%88%E3%81%AE%E8%87%AA%E5%8B%95%E4%BD%9C%E6%88%90%E6%A9%9F%E8%83%BD-%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1

元記事を表示

ABC備忘録【AtCoder Beginner Contest 342 D – Square Pair】2

# はじめに
https://qiita.com/Yporon/private/32abbb9942441070194c

この記事を投稿したのですが、もっと簡単に書けるやり方があったのでそちらも残しておきます。

# 考え方
前回の記事では、平方数である条件を「素因数の指数が全て偶数であること」と扱い、素因数分解を用いて指数が奇数となる素因数のペアを作成することで答えを求めました。
今回は、事前に与えられた数字を先に平方数で割れるだけ割っておいて、その結果が等しいもの同士のペアを作成するやり方で答えを求めます。

参考解説

https://atcoder.jp/contests/abc342/editorial/9365

# コード
“`python
import sys
from collections import defaultdict
import math

# 平方数で割り続ける
def divide_square(n):
if n == 1:
return 1
for i in range(2, int(math.sqrt(n))

元記事を表示

pyYAMLで読み込み時に動的に変わる設定ファイルを書く

# TL;DR
“`yaml
– !!python/object/apply:eval [‘hogehoge’]
“`

# なぜそんなことを

[mkDocs]()で文書を作ってて、最終更新日時を自動で埋め込みたくなった。

# pyYAMLの黒魔術

YAMLで設定ファイルを書く系のpython製ツールの多くはpyYAMLを使って設定ファイルを読んでいるが、pyYAMLにはデータ型を指定したりするためのタグによる拡張が含まれている。

[YAML tags and Python types – PyYAML Documentation](https://pyyaml.org/wiki/PyYAMLDocumentation#yaml-tags-and-python-types)

この中の `!!python/object/apply` を使うと、限定的ではあるけど、pythonの関数呼び出しが実現できる。

# 使えそうな関数

## os.getenv
“`yaml
!!python/object/apply:os.getenv [‘環境変数名’, ‘デフォルト値’]]

元記事を表示

get_conf関数のエラーについて

## エラーの内容

前回の記事で書いたことが間違っていた感じがするので,投稿し直す.

https://qiita.com/shunya_tadano/items/79f42a4d076de107929a

“`shell: エラー内容
Traceback (most recent call last):
File “parser.py”, line 11, in
from utils.helpers import get_conf
ModuleNotFoundError: No module named ‘utils’
“`

## 使用環境

今回は ROS は関係ありませんが,一応載せます.

– 使用PC: Jetson AGX Orin
– JetPack: 5.1.2
– CUDA: 11.4
– cudnn: 8.6
– python: 3.8
– tensorflow: 2.12.0
– ubuntu 20.04
– ROS noetic
– 仮想環境`venv`を使用

## 解決方法: utils を使用する.

まずは`ut

元記事を表示

python CGI の掲示板もどき。

# 掲示板に使えそうなの出来ました。

時間確認は4年に1度のイベントとなります。
ご参加頂ければ、有難くおもいます。
簡単な、キャプチャーに続ぎ、scriptの紹介を致します。
最後まで、お楽しみ頂ければ、幸せにおもいます。

### 構成
・エラー処理
・時間
・受信
・デコードとハッシュ代入
・URL変換
・ファイル書き込み
・html書き出し
・Fileからの書き出し

大体そのようになっています。

では、キャプチャー

![スクリーンショット 2024-02-29 025555.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625232/b6afd1ec-ff9a-eb85-a97a-7b126a81f5fb.png)
![スクリーンショット 2024-02-29 025637.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625232/b256ef88-1a00-aa33-397c-194d6c7b6e

元記事を表示

Ubuntu 16.04でPython環境(と機械学習環境)を構築する

# 初めに
[以前の投稿](https://qiita.com/ShotaDeguchi/items/d2e08c135f2eebaa624b)では,Windows 10でPython環境を構築する過程を記録した(Windows 11を使っている友人にも試してもらったが,同じ方法で環境構築できたらしい).

今回は,Ubuntu 16.04にPython環境を整備する必要に迫られたので,その記録とする.

本稿のコマンドのメモの取り方として,
“`terminal
$ 入力
# 出力
“`
とする(一般的ではないかもしれないが,取り敢えず,こういうルールにしておく).また,適当な入力や長い出力を省略するときに`…`という記号を使う.

:::note warn
**注意**
どのUbuntu(或いはUbuntu 16.04)でも適用可能である保証は無い.本稿に記載の手順に従う場合は,飽くまでも自己責任で慎重に作業されたい.

また,記述の内容は,2024年2月時点での情報である.
:::

# 状況確認
## 手元のPythonの確認
Ubuntuでは,`lsb_release

元記事を表示

ChatGPTでカードゲーム(神経衰弱)を作ってみた

### 目標

神経衰弱のカードゲームに挑戦

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576081/5d177f12-068a-9927-a726-6cd02a2550e7.png)

### 結論
2時間ほどで出来上がりました。

### ポイントまとめ
* 12枚のカードを用意
* 1から6までのペアの数値を12枚のカードにランダムに振る
* カードをめくり、1枚目のカードの数値と2枚目のカードの数値を比較
* 数値が同じだったら、カード確定するため、めくることをできなくする
* 数値が異なる場合、0.4秒後にカードを裏返す
* めくれるカードがなくなったらクリア

### 実装
カードの配置(card.kv)
“`YML
#: kivy 2.3.0

BoxLayout:
id: content
orientation: ‘vertical’
spacing: 10
pos_h

元記事を表示

tabulaでPDFから表を抽出する

今回はPDFから表を抽出することができるtabulaライブラリを紹介します。

トヨタ自動車の23年3月期決算資料のPDF資料から営業収益、営業利益、税引前利益、当期利益、親会社の所有者に帰属する当期利益、当期包括利益をpandasの表として抜き出し、CSVファイルに出力してみました。

## tabulaとは

Pythonのtabulaライブラリは、PDFファイルや画像ファイルから表データを抽出するオープンソースライブラリです。Javaで開発されたTabulaライブラリのPythonラッパーであり、使いやすさと高い精度で知られています。

主な機能としては以下のようなものがあります。
– PDFファイルや画像ファイルから表データを抽出
– 抽出した表データをpandasのDataFrameに変換
– 複数ページにわたる表データの抽出
– 表データのヘッダー行の自動認識
– 抽出対象となる表の範囲指定

## tabulaの使い方

まずはtabulaのインストールを行います

“`python:tabula.py
pip install tabula-py
“`

続いてライブ

元記事を表示

アイドルのコンセプトは歌詞にも現れているのか?

# ベロティカってアイドル知ってますか…?

ベロティカっていうアイドルが半年ぐらい前デビューしたんですけど(記事を書いてるのは2024/2/28です)、そのアイドルのコンセプトが「エロティシズム」なんですよ。~~(エロティシズムという言葉は初めて知りました)~~

:::note info

「エロティシズム」とはなにかをChatGPTにきいてみました

「エロティシズム」は、美や愛に対する強い興奮や魅力を意味する言葉です。これはしばしば性的な要素を含むものであり、芸術、文学、映画、写真などの表現の中で見られることがあります。エロティシズムは個人の感性や文化によって異なる解釈を受けることがあり、時には挑発的であったり、芸術的であったりすることがあります。

一般的には、エロティシズムはセクシュアリティや肉体美に焦点を当て、その美的な側面を強調します。これは単なる性的な描写だけでなく、感性や情熱、美学に対する深い理解や表現も含むことがあります。

:::

アイドルの歌う歌詞が「エロティシズム」を表しているような歌詞であれば、更にコンセプトがしっかりし

元記事を表示

UART通信 Raspberry Pi 4のGPIOでループバック編

# 経緯
* UART通信等の勉強にインタフェース2024年3月号を購入
* Raspberry Pi Picoを未所有
* UART-USB変換ICやケーブルも未所有

# やったこと
* とりあえず手元のRaspberry Pi 4でUART通信を試した
* 対向機器を使わないで,GPIOを使ってループバックで通信をした
* pythonプログラムで疎通確認ができた

# 1. Raspberry Pi 4のシリアルポートを有効化する
今回はRaspberry Pi 4のUART2とUART4を用います。[公式ドキュメント](https://www.raspberrypi.com/documentation/computers/configuration.html#serial)を参考にしました。
1. raspi-configを実行
1. 「3 Interface Options」> 「P6 Serial Port」を選択
1. シェルへのログインにシリアル通信を使うか聞かれるので「いいえ」を選択
1. ハードウェアのシリアルポートを有効化するか聞かれるので「はい」を選択
1.

元記事を表示

OTHERカテゴリの最新記事