- 1. Pythonの備忘録 (初心者)
- 2. Pythonの備忘録 (超初心者)
- 3. 包括的に効果検証を自動化する関数を作ってみた
- 4. ROS2とQt5を使って自作UIを作ろう!!(1)
- 5. [Django]Serializerのテストを作成してみる
- 6. PostgreSQL: バイナリーデータの取り扱い
- 7. df.assign(column=lambda)でif文がうまく機能しない件
- 8. 【pygame】pythonのpygameを使ってパズルゲームを作ってみた
- 9. pipで–break-system-packagesの問題について
- 10. ABC352 with Python (A~E)
- 11. CUDA環境構築のやり方(Pytorchも入れるよ)
- 12. OpenAI GYMでFrozen Lakeをrenderする際のエラー解決方法
- 13. SQLite3を使ったFlaskアプリケーションをとりあえずデプロイ
- 14. [Django]Viewのテストを作成してみる
- 15. HaystackでLlama3, ElasticsearchDocumentStoreを使った質問応答システム構築を試してみました。
- 16. Pythonのfloat型の算術演算
- 17. Pythonの備忘録 (超初心者)
- 18. 【Python】 GitHubレポジトリのバージョン更新に合わせて自動的にPyPIのバージョンも更新する
- 19. python GUI tcl/tk ウィンドウ全体のスクロールバー、スクロールバー操作時に処理実行
- 20. 【Python】Ryeで始めるPythonプロジェクト
Pythonの備忘録 (初心者) <数学の基礎計算(三角関数)>
僕がPythonのmath library使い方をド忘れした時のための備忘録を作成します。
:::note warn
あくまで記事は使用例です
厳密さを必要とする場合は下記LINKを参照してください。
https://docs.python.org/ja/3/library/math.html
:::math libraryのimport “`python
import math
“`
:::note info
:::
三角関数の使用例 “`python
theta = math.radians(45)
print(theta)
“`
:::note
出力
0.7853981633974483
:::
角度からラジアンに変換
詳細は下記wiki参照
[^KEY]:
https://ja.wikipedia.org/wiki/%E4%B8%89%E8%A7%92%E9%96%A2%E6%95%B0三角関数の計算結果 “`
Pythonの備忘録 (超初心者)
僕がPythonの使い方をド忘れした時のための備忘録を作成します。
Pythonのif文では制御構造を使用して、同じコードブロックを正誤判定を実行することができる
![スクリーンショット 2024-04-22 14.24.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575336/19c43b75-d615-a729-5d44-3510f747cffc.png):::note warn
あくまで上記はイメージです
厳密さを必要とする場合は下記LINKを参照してください。
https://www.python.org/
:::
今回はif文の使い方の基本を書き下ろしておきます。if文を設定
“`python
if 5/2 = 2.5
print(“5は2で割った時2.5になります”)
“`
:::note alert
エラー
if 5/2 = 2.5
^
Sy
包括的に効果検証を自動化する関数を作ってみた
以前に効果検証のプログラムを作ったのですが、
https://qiita.com/murasaki1994/items/1b3bc37ee01203363edc
これについて図を作り差・t値・p値を各因子から自動で算出するプログラムを作ってみました。
# 関数
“`Python3
import scipy.stats as stats
import matplotlib.pyplot as plt
def effecttest2(df, columns, y_name, auto=False):
ave = []
dtr = []
pos = []
lab = []
x = 0
for col in columns:
values = list(set(df[col].values))
tmp_ave = []
tmp_dtr = []
tmp_pos = []
tmp_lab = []
for val in values:
ROS2とQt5を使って自作UIを作ろう!!(1)
# はじめに
ロボコンをしていると、強豪校は自作のコントロールUIを作ったりしているのをよく目にします。
今回私がUIを書こうと思ったのは、それが単純にかっこいいと思ったからです。しかし、いざ書こうとすると、どのように書いたらいいかわかんなくなると思います。そんな人のためにこの記事を書きました。少しでも役に立つと幸いです。思ったより長くなりそうなのでpartを分けます。今回はROS2とQt5の連携の仕方です。
# 今回の学ロボで作ったUIの機能(ざっくり)
今回のUIに求めた機能は以下のようになっています。
* ロボットに乗せてあるカメラの画像の表示
* ボタンによってロボットに司令を送信する
* ロボットが今どこにいるのかの可視化
* ロボットの状態の表示
完成品はもう少しタイマー等の機能が増えて以下のようになりました。
![IMG_8558.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531353/1104d68c-f8b1-fdee-bd7e-3045a1123874.jpeg)
この記事では
[Django]Serializerのテストを作成してみる
## はじめに
自分用の個人開発のメモ/備忘録として記録していきます。## 環境
django5.0
↓ dockerでの開発環境作成はこちらhttps://qiita.com/mkthrkw/private/588226d30690c707d2b8
↓ 認証ユーザーモデルはこちらをそのまま利用
https://qiita.com/mkthrkw/private/b2ea8fb8f33a68faab87
## やりたいこと
Serializerのテストを一通り書いてみる## 前回
### Modelのテスト
https://qiita.com/mkthrkw/items/c3fcebcbc17fe761bdd1
### Viewのテスト
https://qiita.com/mkthrkw/items/acd54a56f5cf600ca97b
## テストについて下調べ
おもに下記のようなテストをやる模様。
|No|カテゴリ|内容|
|–|—-|—-|
|1|シリアライザインスタンスの作成|テスト対象のシリアライザインスタンスを作成|
|2|バリ
PostgreSQL: バイナリーデータの取り扱い
こちらのページを参考にしました。
[Aurora(PostgreSQL)のbytea列にバイナリデータをpythonでインサートする](https://zatoima.github.io/aws-aurora-bytea-insert-binary-data.html)## PostgreSQL への接続情報
User: scott
Password: tiger123
DataBase: db_pdf## テーブルの用意
“`sql:create_table.sql
create table table_pdf
(
id int primary key,
pdf bytea not null
);
“`“`text
$ psql -U scott db_pdf < create_table.sql CREATE TABLE ``` ## データの挿入 fuji,pdf というデータを挿入します。 ```py:pdf_insert.py #! /usr/bin/python import psycopg2 import psycopg2.
df.assign(column=lambda)でif文がうまく機能しない件
## 概要
以下のコードの実行するとどうなるでしょう?
### コード
“`python
import pandas as pd
df = pd.DataFrame(data={ “A”: [1, 0, 1], “B”: [101, 102, 103]})
df = df.assign(C=lambda x: x.B if x.A == 1 else 0)
df
“`### 結果
“`shell
—————————————————————————
ValueError Traceback (most recent call last)
/var/folders/vr/jqnz40rd3hnfhg8qrp388zyr0000gn/T/ipykernel_29170/1740181337.py in ?()
1 import pandas as pd
2 df = pd.DataFrame(dat
【pygame】pythonのpygameを使ってパズルゲームを作ってみた
## はじめに
みなさんこんにちは!今回はpythonのpygameを使ってパズルゲームを作りたいと思います!
みなさんが知っているかわかりませんが自分はとある国民的アニメ作品のバイオハザードのゲーム実況を見ることが大好きでした!(念の為詳しい名前は伏せさせていただきます…)
その作品の終盤に閉じ込められたガキ大将を助けるイベントがあるのですが助けるためのパズルゲームが妙に印象的だったのを覚えています!
前置きが長くなりましたが今回はpygameを用いてそのパズルゲームをなるべく再現しようと思います!## 準備すること
### 環境
M1 MacBook
pythonバージョン : 3.9.12
pygame : 2.5.1### 環境構築
pythonは事前に入れていることを前提にします1.ターミナルを開いていただき、今回実行するためのフォルダーを新しく作成してください!今回はpuzzleというファイル名にします!そしてpuzzleフォルダーに移動してください!
“`
mkdir puzzle
“`
“`
cd puzzle
“`2.次に環境の構築を行います
pipで–break-system-packagesの問題について
“`
python3 -m pip install ultralytics
error: externally-managed-environment× This environment is externally managed
╰─> To install Python packages system-wide, try brew install
xyz, where xyz is the package you are trying to
install.If you wish to install a Python library that isn’t in Homebrew,
use a virtual environment:python3 -m venv path/to/venv
source path/to/venv/bin/activate
python3 -m pip install xyzIf you wish to install a Python app
ABC352 with Python (A~E)
ABC352のA~E問題をpythonで解説していきます。筆者はA-Eの5完でした。
# A – AtCoder Line
## 問題
鉄道の AtCoder 線には $N$ 個の駅があり、それぞれ $1, 2, \ldots, N$ の番号が付けられています。AtCoder 線では、駅 $1$ を始発駅として駅 $2, 3, \ldots, N$ の順に各駅に停車する **上り列車** および、駅 $N$ を始発駅として駅 $N – 1, N – 2, \ldots, 1$ の順に各駅に停車する **下り列車** が運行されています。
高橋君は AtCoder 線の上り列車あるいは下り列車の一方のみを使うことで駅 $X$ から駅 $Y$ まで移動しようとしています。
この移動の間に高橋君が乗っている電車が駅 $Z$ に停車することがあるか判定してください。
https://atcoder.jp/contests/abc352/tasks/abc352_a
## 考察
2つの駅について、番号が小さいほうを$X$、大きいほうを$Y$とすれば、後は$Z$がその間にあるかを確か
CUDA環境構築のやり方(Pytorchも入れるよ)
# はじめに
今回はyoloをgpu環境で使うための環境構築をします。
# 実行環境
* ubuntu20.04
* kernal 5.11
# nvidia_driver環境構築
* nouveau ドライバの無効化(上から順に実行)
“`
echo ‘blacklist nouveau’ | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
echo ‘options nouveau modeset=0’ | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
cat /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
“`
* 現状確認
“`
lspci | grep -i nvidia
dpkg -l | grep nvidia
dpkg -l | grep cuda
“`
* cudaとdriverの削除
“`
sudo apt-get –purge remove nvidia-*
sud
OpenAI GYMでFrozen Lakeをrenderする際のエラー解決方法
Frozen Lakeをrenderする際に下記エラーが発生する。
“`
elf_img = pygame.transform.scale(elf_img, elf_dims)
TypeError: integer argument expected, got float
“`
下記のようにFrozenLakeの元ファイルの302-303行目をintでキャストすることで解決する。
“` diff_ruby:\gym\envs\toy_text\frozen_lake.py
# prepare images
last_action = self.lastaction if self.lastaction is not None else 1
elf_img = self.elf_images[last_action]
elf_scale = min(
– small_cell_w / elf_img.get_width(),
+ int(small_cell_w / elf_img.get_width()),
– small_cell_h / elf_img.ge
SQLite3を使ったFlaskアプリケーションをとりあえずデプロイ
# はじめに
自分が現在個人開発しているFlaskアプリケーションをささっととりあえず外部に公開したいなと思い、何がいいんだろうと色々調べていたところ、Render.comという良さげなものを見つけたので、これを使ってFlaskアプリケーションをデプロイしていこうと思います。# Render.comとは?
WEBアプリケーションのデプロイをGUIで簡単に操作できるPaaS。Herokuは有料になってしまったっぽく、その代わりとしてRender.comが注目を集めているようですね!https://qiita.com/tks_00/items/73cf04c225e5f6113cd8
Githubでのデプロイをトリガーにして自動的にデプロイしてくれる(もちろん無効化することもできる)ので、わざわざデプロイ操作し直さなくていいところが便利ですね。
# 早速デプロイ
## 1. app.pyを作成
Blueprintを使って分割したFlaskアプリケーションの核となるファイル`app.py`だけこちらで公開します。詳しくは[こちら](https://github.com/RIKU-
[Django]Viewのテストを作成してみる
## はじめに
自分用の個人開発のメモ/備忘録として記録していきます。## 環境
django5.0
↓ dockerでの開発環境作成はこちらhttps://qiita.com/mkthrkw/private/588226d30690c707d2b8
↓ 認証ユーザーモデルはこちらをそのまま利用
https://qiita.com/mkthrkw/private/b2ea8fb8f33a68faab87
## やりたいこと
Viewのテストを一通り書いてみる## 前回
https://qiita.com/mkthrkw/items/c3fcebcbc17fe761bdd1
## テストについて下調べ
おもに下記のようなことを考えてる必要がある模様。
|No|カテゴリ|内容|
|–|—-|—-|
|1|アクセス制御テスト|適切なユーザーがリソースにアクセスでき、不適切なユーザーがアクセスできないことを確認。例えば、認証されたユーザーのみが特定のエンドポイントを利用できるか、また特定のロールを持つユーザーのみがリソースを編集または削除できるかなど|
|
HaystackでLlama3, ElasticsearchDocumentStoreを使った質問応答システム構築を試してみました。
## はじめに
ローカルに作成した情報に関する質問応答システムを作ってみたかったので、Haystackのパイプライン構造を使ったRAGを試してみました。## RAG(Retrieval Augmented Generation)とは?
RAG(Retrieval-Augmented Generation)は、自然言語処理(NLP)タスクのための最新の機械学習モデルの一つです。RAGは、質問応答、文章生成、要約作成などのタスクに適用されます。このモデルは、あらかじめ学習された情報を取得(retrieval)し、その情報を利用して文を生成(generation)することが特徴です。## 今回のターゲット
ElasticsearchDocumentStoreに回答の元になる情報を入れて、ElasticsearchのRetrieverを使い、Llama 3 をgeneratorにするRAGのパイプラインを Haystackで構成して動かしてみました。実際に使用する場合は、もっとローカルな設計データなどをDocumentStoreに入れてその内容に関して質問応答できる様にしますが、今
Pythonのfloat型の算術演算
# `float`型とは
小数点を含む数値のことで、小数点以下が0のみの場合も`float`型に分類される。
例)1.1, 2.0, 0.03, …# `float`型の演算
`float`型を含む演算は結果も`float`型になる。
“`python
>>> 2 + 1.0 # 加算
3.0>>> 2 – 1.0 # 減算
1.0>>> 2 * 1.0 # 乗算
2.0>>> 2 / 1.0 # 除算
2.0
“`また、演算式中に`int`型しか含まれない場合でも除算の場合は結果は`float`型になる。
“`python
>>> 3 / 2
1.5>>> 3 / 3
1.0 # 割り切れてもfloat型
“`除算結果を小数点以下を切り捨てた`int`型にしたい場合は整数除算(`//`)を用いる
“`python
>>> 3 // 3
1
“`整数除算の結果割り切れた場合でも演算式に`float`型を含む場合、出力は`int`型ではなく`float`型になる。
※演算式中のオペランドの中でもっとも広い型に合わせて結果が
Pythonの備忘録 (超初心者)
僕がPythonの使い方をド忘れした時のための備忘録を作成します。
PythonのList, Tuple, Dictionaryの使い方は下の図で表したような感じになっています。
![スクリーンショット 2024-04-22 12.03.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3575336/e19bf248-960a-7689-0026-132c19021b3a.png):::note warn
あくまで上記はイメージです
厳密さを必要とする場合は下記LINKを参照してください。
https://www.python.org/
:::
今回はListの使い方の基本を書き下ろしておきます。Listを設定
“`python
list = []
“`
:::note info
出力
:::
listを設定するだけでは何も出力はありません。
<
【Python】 GitHubレポジトリのバージョン更新に合わせて自動的にPyPIのバージョンも更新する
## はじめに
自作ライブラリを`pip`コマンドでインストールできるようにするには、`PyPI`に投稿しないといけません。手動で自作ライブラリを`PyPI`に上げる手順は、下記の通りですね。
[PyPIパッケージ公開手順](https://qiita.com/shinichi-takii/items/e90dcf7550ef13b047b5)新規投稿だけではなく、バージョンアップの手順も同様です。
しかし、メンドウですよね。我々は[自動化の王、自動化キング](https://qiita.com/uts1_6/items/11e348ead4bae71571b8)なので、`GitHub`を更新した時点で、`PyPI`への更新も同時にやってしうまうように、`GitHub`をいじりましょう。
## 結果
[この手順](https://github.com/konbraphat51/AnimatedWordCloud/blob/dev/CONTRIBUTING.md#updating-pypi)だけで `PyPI`の更新ができるようになります。すなわち、`Release`
python GUI tcl/tk ウィンドウ全体のスクロールバー、スクロールバー操作時に処理実行
# 実行サンプル
・python GUI tcl/tk ウィンドウ全体のスクロールバーを実装
・垂直スクロールバー操作時に処理実行
下図のように、垂直方向のスクロールバーをユーザー操作で動かすと、
プログラム起動したコマンドプロンプトにメッセージが表示される。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423803/1982d3e1-b91a-cf6a-72bd-2730f3ac153f.png)
# 実行環境
windows10
python3.9.5pythonモジュール tcl/tk
# 実行手順
ソースコードを作成する
windowsコマンドプロンプトでプログラム作成したフォルダに移動し、下記実行する
“`
python プログラム名.py
“`# 参考 URL
https://qiita.com/thruaxle/items/0fc3e89bd15e3d2f79a1
https://daeudaeu.com/scrollbar/#google_v
【Python】Ryeで始めるPythonプロジェクト
## はじめに
PoetryやPipenvではなく、**Rye**を使って開発を進めたい方向けの記事になります。
本稿は、ハンズオン形式で誰でも気軽にプロジェクトを作れるようになっています。### ハンズオン環境
– Ubuntu / MacOS
– VSCode
– Rye : 0.24.0## 0. Ryeとは?
RyeはPythonのための包括的なプロジェクトおよびパッケージ管理ソリューションです。
使用感としては、`Anaconda`のように独立してインストールでき、`pipenv`や`poetry`のように利用できる良いとこどりのような感じです。https://rye-up.com/
また、大元のAstralは、`ruff`や`uv`等、今後のPython実行環境を刷新するようなパッケージを多数生み出しているため、`Rye`含めAstaral製のエコシステムが主流になっていくのかなと思います。
(ちなみにどれもRust実装で軽快に動いてくれます)https://github.com/astral-sh
## 1. インストール編
基本的には、公式