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

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

streamlitでtailwindが使えた!

お久しぶりです。
# やりたいこと
streamlit上にある程度スタイルされたhtmlを表示したい!
`st.html()`ではスタイルが当たらず悩んでいた。が、以下の記事を参考にしたらちゃんとスタイルが効いた!!
感動したので記事を残しておく。

https://qiita.com/Nate0928/items/4d8b9abef3e520293a4a

# 実装
今回は、TailwindをCDNで読み込みます。
“`html:templates/top.html







Pythonでbiplot関数を改良

前回作った改良型のbiplotを目的変数で分かりやすくした関数を作りました。

# 関数
“`Python3
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def biplot_spv(df, y_name):
y = df[y_name]
x = df.drop(y_name, axis=1)
ss = StandardScaler()
ss.fit(x)
sx = ss.transform(x)
model = PCA()
model.fit(sx)
tx = model.transform(sx)
e

元記事を表示

【MATLABとOpen3D(Python)】点群処理コードの対応

# この記事に書いてあること
Open3D(Python版)のコードはMATLABでどのように書くのかをOpen3Dの[Tutorial](https://www.open3d.org/docs/release/tutorial/geometry/pointcloud.html)をベースに紹介していきます。2つの環境を使っている(もしくは使う予定のある)エンジニアが、「どう書くんだっけ?」と思った際の参考になればと思います。
各関数の入力引数について詳細は記載しないので、適宜ドキュメントをあたっていただければと思います。
# Version
Open3D:0.18.0
MATLAB:R2024b Prerelease (主にComputer Vision ToolboxとLidar Toolbox)
# 点群データの読込みと表示
## Open3D
必要パッケージのインポート

“`python
import open3d as o3d
import numpy as np
import matplotlib.pyplot as plt
“`

点群(PLYファイル)の読込み
`

元記事を表示

ABC364(Atcoder Beginner Contest)のA~E(A,B,C,D,E)問題をPythonで解説(復習)

# ABC364(Atcoder Beginner Contest)のA~E(A,B,C,D,E)問題をPythonで解説(復習)

# A問題
– `2` 個連続して `sweet` となっている箇所があったら, `No` を出力する.
– 最後の `2` 個は `sweet` が連続していても問題ないので,確認しない.
“`A.py
“””
<方針>
– `2` 個連続して `sweet` となっている箇所があったら, `No` を出力する.
– 最後の `2` 個は `sweet` が連続していても問題ないので,確認しない.
“””
# 標準入力から受け取る
N = int(input())
S = [input() for _ in range(N)]

# 最後以外の連続した部分を確認する.
for i in range(N-2):
# sweet が連続していたら,
if(S[i] == S[i+1] == “sweet”):
# No を出力する.
print(“No”)
# プログラムを終了する.
exit()

# No を

元記事を表示

ロータリーエンコーダのデータをシリアル通信で取得する方法について

# はじめに

はじめまして。とある大学でUnityを使用した福祉関係の研究をしている学部4年生です。自分の備忘録的にまとめたものが誰かの役に少しでも立てばと思い、今回初めて投稿いたします。つたない文章になると思いますが、ご覧いただけると幸いです!

# 目的

Arduinoに接続したロータリーエンコーダをコントローラとして使用し、回転数をプレイヤーの移動に反映させることが今回の最終目的ですが、今回は試験として、ArduinoとPythonを使用して入力データのCSV出力まで行いたいと思います。

# エンコーダ

今回は、Arduino互換のスターターキットに入っていたKY-040というロータリーエンコーダを使用します。

## エンコーダの仕様

動作電圧:5V

パルスサークル:20

GND:接地端子

“+”:5V電源

CLK:エンコーダピンA

DT:エンコーダーピンB

SW:Selectスイッチ(シャフトを押し込むと動作)

# ソースコード

色々な参考サイトに転がっているロータリーエンコーダの値読み取りを行っているスクリプトを試してみたところ、ゆっくりだと正しく

元記事を表示

ROS2講座23 記法一覧表

# 環境
この記事は以下の環境で動いています。

| 項目 | 値 |
|:-:|:-:|
| CPU | Core i5-8250U |
| Ubuntu | 20.04 |
| ROS | Noetic |
| Gazebo | 11.9.0 |
| python | 3.8.10 |
| OpenCV | 4.2|
| Qt | 5.12.8 |

インストールについては[ROS講座02 インストール](https://qiita.com/srs/items/e0e0a9dc3f94c2d3348e)を参照してください。
またこの記事のプログラムはgithubにアップロードされています。[ROS講座11 gitリポジトリ](https://qiita.com/srs/items/25a56a6abda41dcf396e)を参照してください。

# 概要
ROS2には様々な機能があり、それを様々なレイヤーからアクセスすることが出来ます。
プログラムを書くときの参考に記法の一覧をまとめます。
機能の中身は個別の記事に譲ります

# 一覧表(追記メモ)
| | rclcpp | rcl

元記事を表示

Workato:Pythonコネクタで任意のモジュールをインストールして利用する

# はじめに

WorkatoのPythonコネクタは、基本的には用意されたモジュールのみの利用が可能ですが、自分が使いたいモジュールが用意されていない場合もあると思います。そのような場合は、pipモジュールを利用することで、任意のモジュールをインストールして利用することが可能です。

なお、Pythonコネクタは /tmp 以下のみ書き込み可能なため、モジュールのインストール先も /tmp とする必要があります。また、モジュールのインストールはコード上で行い、インストールしたモジュールをコード上で動的にインポートして利用する形となります。

# コード

以下は、boto3(AWS SDK for Python)モジュールをインストールする例になります。boto3をインストールすることで、Pythonコネクタ上から簡単にAWSのリソースがAPI操作できるようになります。

なお、Workatoのレシピの作成手順および設定方法については、ここでは割愛します。
(Pythonコネクタについてある程度習熟していることを前提とします)

“`python
import pip
import

元記事を表示

Workato:Pythonコネクタで /tmp を活用してみる

# はじめに

WorkatoのPythonコネクタでは一時ディレクトリ(/tmp)が利用できないと思っていましたが、検証を進めたところ利用できることがわかりました。

Workatoのコネクタのアクションはそれぞれが独立したコンテナであり、かつエフェメラルなコンテナ(実行後に削除される、揮発性のコンテナ)で実行されるため、アクションを跨いで /tmp の保存内容を共有することはできないのと、実行時間の制限(30秒)に注意する必要はありますが、ちょっとした処理で便利に活用することはできるかと思います。

# 利用例
## 容量の大きなファイルや複数のファイルを処理する

容量の大きなファイルをPythonコネクタのrequestモジュールを利用して直接ダウンロードして取得したり、base64エンコードされたファイルを変数で渡して /tmp へ展開することで、Python3コネクタ上で容量の大きなファイルや複数のファイルを処理することができます。

### 例:URL指定でファイルをダウンロードし/tmpへ保存する

以下の通り Input fieldsおよびOutput fieldsを

元記事を表示

AIとAPIで眠りを科学する:プログラミング初心者CEOが挑んだ、睡眠スコア取得への道

## 概要
この記事では、当社CTOや社員が生成AIを使ったプログラミングの話をしているのを聞き、プログラムの知識は多少あるものの、実際にプログラムを書いたことのない私が、ChatGPTの支援を受けながら、Oura RingのAPIを使用して睡眠スコアを取得するまでのプロセスを解説した記事です。

環境設定から始まり、APIの使用、エラーへの対処、そして最終的な成功までの道のりを紹介します。この記事を通じて、AIツールを活用したプログラミング学習の可能性と、新しい技術へのチャレンジの楽しさを共有したいと思います。

## 目次
1. [はじめに:なぜこの挑戦をしたのか](#-はじめになぜこの挑戦をしたのか)
2. [準備編:道具を揃えよう](#-準備編道具を揃えよう)
– Pythonのインストール
– PIPのインストール
– VS Codeのセットアップ
3. [挑戦編:ChatGPTとの対話でコードを生み出す](#-挑戦編ChatGPTとの対話でコードを生み出す)
– 最初の一歩:基本的なコードの生成
– つまずきと学び:エラーとの戦い
– 気

元記事を表示

山折り谷折り (paizaランク A 相当) を考察する

https://paiza.jp/works/mondai/real_event/origami

解き方は 幾つもあると思いますが、自分が実際に考察した内容を書きます。

# ・ 問題

(横長の)紙を、一方方向に$N$回折ったときに、紙に付いた折り目(谷・山)を答える問題。

問題ページから引用した下の図は、$2$回折ったときの『折り目』を示していて、左から『谷折り → 谷折り → 山折り』になっていることが分かります。

山折りを `1`、谷折りを `0` として、答えとなる折り目を左から順に `0` と `1` からなる文字列として一行に出力するため、上の例では`001`が答えになります。

### 制約

$1 \

元記事を表示

機械学習ライブラリはどうやって勾配を求めている?(低レベルAPI)

# はじめに
 機械学習では入力を入れて出力を返す**順伝播**と、順伝播で得られた出力から算出された誤差情報をもとにモデルの重みの勾配情報を求める**逆伝播**という二つのデータの流れがある。ここではPyTorch等の機械学習ライブラリの実装に着目する。順伝播は比較的簡単に実装できそうである。一方逆伝播はどうだろうか?勾配はどうやって求めるのか?

 この記事ではこうした問いについて考え、機械学習ライブラリを拡張する方法についても軽く紹介する。

スクリーンショット 2024-07-15 17.35.37.png

# **先に要約**
## 要約1/2. 勾配どうやって求める?
### [予想]

– **予想1**:数値的に以下のような式で近似的に求めるのだろうか?
“`math
{\rm l

元記事を表示

OASIS Web UI: インストールから使用まで

## はじめに

OASIS(Optimized Article Sorting Intelligent System)の最新バージョンv0.8.0では、ユーザーフレンドリーなWeb UIが導入されました。この記事では、OASISのインストール方法から、新しいWeb UIの使用方法まで、順を追って解説します。

## デモ動画

元記事を表示

gz形式で圧縮されたjsonファイルをPythonスクリプトで手軽に一括解凍する

# はじめに
本記事ではgz形式で保存されたjsonファイルをpythonを使用し解凍する処理を実装します。
手動で1つ1つ解凍するのは面倒なのでスクリプトで一括したいです。

# 環境
Python 3.12.4

# 前提
本記事では下記のようなフォルダ構成とgzファイル名を想定しています。

“`
root
│ gz_to_json.py
│ json_to_gz.py

├─extracted_files(解凍後のJSONを格納するフォルダ)
└─gz_files(gz形式のファイルを格納するフォルダ)
file_0.json.gz
file_1.json.gz
file_2.json.gz
~~~
“`

# gzからJSON形式に解凍するソース
下記のスクリプトでgz形式のファイルをJSON形式に解凍します。
詳細はコメントアウトの通りです。

“`python:gz_to_json.py
import gzip
import os

def decompress_gz_files(input_directory, outpu

元記事を表示

paizaプログラミング問題Rank S (Python)

[paiza×Qiita記事投稿キャンペーン](https://paiza.jp/pages/campaign/paiza-qiita)に参加しました.
関連リポジトリは,以下になります.

https://github.com/tomtkg/Python-Sample/tree/main/paiza

ここでは,Rank S問題の解答と簡単な解説を公開します.
言語はPythonを選択しました.結果は以下のようになりました.

# Rank S
## 村人の友好関係
https://paiza.jp/works/mondai/s_rank_skillcheck_archive/group_popularity

“`python:group_popularity.py
import numpy as np

N, M, Q = map(int, input().split())
N += 1 # 入力が1~Nのため

m = np.zeros((N, N), dtype=int)
for _ in range(M):
a, b, f = map(int, input().

元記事を表示

抽象クラスとインターフェースの使い分け(血筋とギプスでイメージしてみる話)

## はじめに
https://qiita.com/igayamaguchi/items/e1d35db0a14a84bda452

を見て、たしかにわかりにくいよな~って思って下書きにしていたけどそのままお蔵入りになっていたもの。血筋とギプスにたとえて、すっと読めるような短い記事にしておこう

– 血筋
– ギプス

「血筋」という言い回しは「親のリソースを活用する」というニュアンスがある。「◯◯家に伝わる日本刀は、一子相伝であればこそ扱える」という感じ。
いっぽうで「ギプス」という言い回しは「砕けた骨の回復を待つために固定する」というニュアンスがある。

**別にこんなもの使わなくてもいいのだ**。 :stuck_out_tongue_winking_eye:

ただ、何に便利なのかを知るとやはり使ってしまうのだ。それはなにかというと、「コンパイラを通して意図的にエラーを出せる」ということなのだ。つまり秩序なのだ。
これがチーム開発になるとめちゃくちゃ恩恵をうけることになる。

## 抽象クラス
抽象クラス(=親クラス)は子クラスの基本的な振る舞いを定義する。これはまさに”血筋”の

元記事を表示

Kaggle Masterに学ぶ機械学習実践アプローチ 写経 03

“`Python
# %%
import numpy as np
import matplotlib.pyplot as plt

# %%
import pandas as pd

# %%
def accyracy(y_true, y_pred):
“””
Calculate accuracy of the model
“””
correct_conter = 0
for yt, yp in zip(y_true, y_pred):
if (yt == yp):
correct_conter += 1
return correct_conter / len(y_true)

# %%
l1 = [0, 1, 1, 1, 0, 0, 0, 1]
l2 = [0, 1, 0, 1, 0, 1, 0, 0]

# %%
print(accyracy(l1, l2))

# %%
def true_positive(y_true, y_pred):
tp = 0
for yt, y

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その102 直線的な繰り返し処理を行うボトムアップとトップダウンな再帰呼び出し

# 目次と前回の記事

https://qiita.com/ysgeso/items/2381dd4e3283cbed49a0

https://qiita.com/ysgeso/items/3a693c2f189845c01f4f

## これまでに作成したモジュール

以下のリンクから、これまでに作成したモジュールを見ることができます。

| リンク | 説明 |
|:–|:–|
| [marubatsu.py](https://github.com/ysgeso/marubatsu/blob/master/102/marubatsu.py) | Marubatsu、Marubatsu_GUI クラスの定義|
| [ai.py](https://github.com/ysgeso/marubatsu/blob/master/102/ai.py) | AI に関する関数 |
| [util.py](https://github.com/ysgeso/marubatsu/blob/master/102/util.py) | ユーティリティ関数の定義。現在は `gui_pl

元記事を表示

複素関数と電場解析

# はじめに
等角写像法という、複雑な形状の導体によって生じる電場と電位分布を求める手法がある。まず、単純な形状の導体をある変換を用いて複雑な形状の導体に写像できると仮定しよう。その上で単純な形状の導体によって生じる電場と電位分布も同時に写像する。その分布は求めたいものと一致するはずである。今回は、半直線上の導体によって生じる電位、電場分布が実際の電場と電位分布と一致するかどうかを検証する。
# 問題設定(電験1種理論)
以下のような導体棒に正の電荷を与えたときの電場と電位分布を求めたい。(電験1種理論令和4年問1)
![等角写像図1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/f1d758ce-4ef5-bf36-4cfb-9db268af41ba.jpeg)

このグラフ($y=0,x>0$)は、$f(w)=w^2$つまり、$x+jy=(u+jv)^2$によって$v=0$(u:実数全体)を移した結果となる。

したがって、$f$を逆変換すると、
“`math
\begin{equ

元記事を表示

Pythonでシンプルにjiraからチケット情報を取得する

# はじめに
現場がJiraを使っていて、気に入ったからAPIの使い方をさらっておきたい

:::note info
記事自体は随分前にQiitaに下書きしてあったもので、ついでにリファクタリングして記事公開
:::

# 参考
[Jira APIと戯れる 〜チケット情報取得編〜](https://tech.recruit-mp.co.jp/dev-tools/jira-api-tickets/)
[JIRA REST API reference](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/)

# ライブラリのインストール
https://github.com/pycontribs/jira

# Jira側でAPIトークンの生成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/94562/78b6510d-5a63-8925-196e-e0ab38504e07.png)
![image.png]

元記事を表示

MLBピッチャーのデータ分析:今永昇太選手の投球を解剖する(第3回)

# MLBピッチャーのデータ分析:今永昇太選手の投球を解剖する(第3回)

こんにちは。今回は今永昇太選手のリリース特性について詳しく分析していきます。リリース特性とは、ボールが投手の手を離れた瞬間の様々な特徴を指します。

## 1. リリーススピード

まず、各球種のリリーススピードを見ていきましょう。

“`python
import matplotlib.pyplot as plt
import seaborn as sns

def plot_release_speed_boxplot(df):
# マイル表示のグラフ
plt.figure(figsize=(12, 6))
sns.boxplot(x=’pitch_type’, y=’release_speed’, data=df)
plt.title(‘Release Speed by Pitch Type (mph)’)
plt.xlabel(‘Pitch Type’)
plt.ylabel(‘Release Speed (mph)’)
plt.show()

元記事を表示

OTHERカテゴリの最新記事