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

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

スクリプトで楽しむBlender:3Dデータを簡単に作り出すテクニック

## はじめに

3Dプリンターで色々作って遊んでます。造形するデータは3DCGソフトのBlenderを使っています。
Blenderで3Dデータを作る人は珍しくないと思いますが、私のようにスクリプトで3Dデータを作る人は少ないかもと思い、その方法を紹介することにしました。

(私が3Dプリンターで作るものは留め具や固定台だったりとカクカクしたものが多いです。そーいうものを色々作っていくうちに、独特なスクリプトになりました。)

## スクリプトを使う利点とは

私が3Dデータの作成にプログラムを使う理由は**便利だから**。

例えば、大量の穴が開いた板を作るときにプログラムのforループを使うことができます。
穴の大きさや位置を変えたい場合は、プログラムのパラメータを変更し再実行するだけです。

これはスクリプト実行時の様子です。プログラムを実行するだけで穴あきの板ができます。プログラムさえ書いてしまえば、実行するだけでデータが完成します(楽!)

余談ですが、この穴あき板はレゴ

元記事を表示

【令和最新版】Cloud9にChromeとSelenium入れてスクレイピング環境構築

# はじめに
Cloud9にChromeとSeleniumを入れようと思ったときに、検索して出てくる記事が結構古かったりしたので今試した内容を記載します。

# 注意
– AWSアカウントの作成とかは省略します
– 仮想環境化はしません
– Webdriver Managerはあえて使用しません

# 手順
## Cloud9構築
1. Cloud9のコンソール→「環境を作成」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177673/d99d43da-8bf5-2583-9eb9-e6156bf0d044.png)
1. 名前を入れ、他はデフォルトで「作成」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177673/35c454d3-5d4f-5086-b87b-c2932b442192.png)
![image.png](https://qiita-image-store.s3.a

元記事を表示

pandasのDataFrameに複数行の値をインプットにして新しい列の値を作ることをPythonで楽しんでなおかつ、Elixirでも同じことを楽しむ

$\huge{元氣ですかーーーーッ!!!}$
$\huge{元氣があればなんでもできる!}$

$\huge{闘魂とは己に打ち克つこと。}$
$\huge{そして闘いを通じて己の魂を磨いていく}$
$\huge{ことだと思います}$

# はじめに

[pandas](https://pandas.pydata.org/)の[DataFrame](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html#pandas.DataFrame)に複数行の値をインプットにして新しい列の値を作ることをPythonで楽しみます。

なおかつ[Elixir](https://elixir-lang.org

元記事を表示

pythonで電卓(ちょいむずめ)(解説はありません)(コードだけ)

# 電卓のコード

“`python:電卓.py
import tkinter as tk
import math

class AdvancedCalculator(tk.Tk):
def __init__(self):
super().__init__()
self.title(“Advanced Calculator”)
self.geometry(“400×600”)
self.result_var = tk.StringVar()

# エントリウィジェット
entry = tk.Entry(self, textvariable=self.result_var, font=(‘Helvetica’, 20), justify=’right’)
entry.grid(row=0, column=0, columnspan=5, padx=10, pady=10, ipadx=8, ipady=8)

# ボタンのレイアウト
b

元記事を表示

Pythonで電卓を作る方法の解説(初心者向け)(サンプルコードあり)

# この記事の対象者
pythonの条件分岐や四則演算、繰り返しや変数、定義を学び、それらのまとめとして何か作ってみたいという方向けです。
# プログラム
早速ですがまずプログラムを貼っときます。
解説は後でします
“`python:電卓.py
//各計算の定義
def add(x, y):
return x + y

def subtract(x, y):
return x – y

def multiply(x, y):
return x * y

def divide(x, y):
if y != 0:
return x / y
else:
return “Error: Division by zero”

while True:
print(“選択してください:”)
print(“1. 足し算”)
print(“2. 引き算”)
print(“3. 掛け算”)
print(“4. 割り算”)
print(“5. 終了”)

choice = inpu

元記事を表示

Pandasの列単位での演算、加工

## はじめに
Pandasの演算、加工の基本に関しての備忘録です。
コードを書き始めて1年以内の若輩者です😅
もし間違いがあれば、ご指摘いただけると助かります🙇

## 🦁**結論**🦁
Excelのように列ごとに演算、加工が可能。
シンプルに列を選択して演算を入れて計算、加工することが可能。

:::note info
押さえておくべき点
* 演算結果を元のDataFrameに直接反映させるか、新しいDataFrameを作成するかを選択できる。
* 日付や時刻のデータを加工して、曜日や月などの情報を抽出もできる。
:::
***

:::note alert
注意点
* データ型を確認する必要がある。(特に、数値演算を行う際に文字列型のデータが含まれているとエラーが発生するため、dtype属性やastype()メソッドを用いてデータ型を確認・変換することが重要)
* inplace=Trueの使用: 元のデータを上書きすると、元に戻せないため注意が必要。
:::

***

## **コード例**

##

元記事を表示

python(外部モジュールなし)による暗号化・復号化簡易プログラム

# pip不要(外部モジュールなし)、import不要、フリーの暗号化・復号化プログラム
pythonのみで動作します。

:::note warn
頑強ではありません。総当たり法でコロッと逝きます。
最後に挙げた総当たり法に対する改良版はちょっとだけ抵抗します。
高度な暗号化が必要ならばcryptography等のきちんとした暗号化ライブラリを使ってください。
:::

そう簡単には破れることもない(改良版の方)コンパクトな暗号化・復号化を利用したい人向けです。以下の2点が理由で作りました。

  • 暗号化ライブラリのインストールをしたくない
  • できるだけ標準ライブラリでないものをpipをしなくても済むプログラムを作るため。動作環境の安定化。

  • 暗号化ライブラリのimportをしたくない
  • 配布用の実行ファイル(pyinstallerによりコンパイルしたもの)の巨大化を回避するため。一瞬で起動する実行ファイルが欲しかった。

以下の自作プログラムで使っています。OpenAIのAPIキーを暗号化・復号化するために利用していますが、日本語が含

元記事を表示

シリアライズをpickleで行って高速化

## はじめに
シリアライズをpickleで行って高速化に関しての備忘録です。
コードを書き始めて1年以内の若輩者です😅
もし間違いがあれば、ご指摘いただけると助かります🙇

## 🦁**結論**🦁
データの蓄積や膨大なデータの読込を早くするためにシリアライズすることで読込、書込を早くすることができる。
Pythonでは標準ライブラリで「pickle」がある。
データが大きくなった場合には非常に便利なライブラリ。
また文字列もそのまま保管できる。

:::note info
押さえておくべき点
* シリアライズとはデータ一つのバイト列(バイナリデータ)に変換するプロセスのことを指す(他の形式もある)
* pickleファイルはバイナリモードで読み書きする必要がある。
* バイナリデータでの読み書きは処理が早くなる。
* 数行のコードでデータを保存・読み込みできる。
* 大量のデータも素早く保存・読み込みができる。
* テキストだけでなく、リストや辞書なども扱える。
* 自動的にデータを圧縮して小さくできることがある。
:::
***

:::not

元記事を表示

LLM(gemma)&LangChainで会社のQABotっぽい物を作成する

# はじめに
先日Googleから発表されたLLM(Gemma)を触ってみましたので、簡単にまとめてみます。

実行環境にはGoogle Colab(無料版)を使用しています。

## 今回やること
ただ動かすだけでは面白くないので、会社のHP( https://www.haw.co.jp )情報をLangChainのRetrievalQAを使用してLLM(Gemma)で扱えるようにして、会社に関するQAのチャットボットっぽい物を作成したいと思います。

## Gemmaとは?
Googleが2024年2月22日に公開した、オープンソースの大規模言語モデルマルチモーダルAIのGeminiよりも軽量で、商用利用も可能です。

https://ai.google.dev/gemma?hl=ja

### モデルについて
現在公開されているのは以下の4種です。

– gemma-2b
– gemma-2b-it
– gemma-7b
– gemma-7b-it

何もないのがベースモデルで、`it`がついているのが命令モデルのようです。

## LangChain・RetrievalQAにつ

元記事を表示

「Python で学ぶ画像認識」の Transformer を用いた画像キャプショニングのプログラムを非自己回帰型に改修しました。

## はじめに

これまで、音声合成、音声認識、機械翻訳において、推論を非自己回帰的に行う Transformer の使い方を提案してきました。今回は、画像キャプショニングのプログラムの推論を非自己回帰的に行うように改修しましたので、ご報告させていただきます。

## 提案する Transformerの 使い方。

Transformer デコーダーには、q, k, v の入力が必要です。デコーダーの Self Attention では、一般に、q,k,vの入力には、すべて、同じ q を入力します。また、 Cross Attention では、一般に、q には クエリー q を、k,v には、キーk を入力します。学習時には、通常の Transformer デコーダーの Self Attention への3つの入力には、教師データを time sequence で 1だけ早い方向にずらした label を用います。また、Cross Attention へのクエリ入力は、教師データを 1だけずらした label であり、k, v 入力は Transformer Encoder の出力です

元記事を表示

pipについて

## pipでインストールされているライブラリの情報を見たい時

#### 特定のライブラリのバージョン情報をみたい場合
“`python
pip show “`
#### pipでインストールされている全ライブラリのバージョンを表示
“`python
pip list
“`
#### “pip list”のオプションを表示
“`python
pip list -h
“`

#### “pip freeze”のオプションを表示
“`python
pip freeze -h
“`

## pipでインストールしたい時

#### インストール
“`python
pip install “`

#### ライブラリのバージョン指定インストール
“`python
pip install ==
“`
【注意】
『library_name』と『desired_version』の間の”==”がダイジ!!

#### requirements.txtを使っ

元記事を表示

StreamlitをPyCharmでデバックする

PyCharm community 2023.3では、以下と画面が異なっていました。

https://chemesim.xsrv.jp/wp/streamlit%E3%82%92pycharm%E3%81%A7%E5%AE%9F%E8%A1%8C%EF%BC%88run-debug%EF%BC%89%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95-631.html

Interpreter optionsに、-m streamlit run を追加してみると、Run実行はできたけれど、
デバックできませんでした。

以下の設定
module をstreamlitとして、スクリプトパラメータに、
run 実行したいコード.pyを入れると、Debugでも動きました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643531/d47a048f-85eb-2a1d-0877-e1ce21b4e709.png)

元記事を表示

【Python】npmを使って、Djangoにtailwindcssを導入する

## はじめに
Djangoでテンプレート層の開発をする際、ネイティブCSSでスタイルを適用しようとすると、重複したクラスを定義したり、使われていないクラスを定義してしまいがちです。

これは筆者自身もフロントエンド技術が未熟であるという問題もありますが、多くの人が同様の悩みを抱えていると思います。

そのため筆者は普段、ネイティブCSSでスタイルを決めることはほとんどせず、多くの場合、tailwindcssを使ってフロントエンドの実装を行います。

毎度新しいプロジェクトを立ち上げる際に、tailwindcssの導入方法を調査していたため、導入方法にまとまりがなく、毎回微妙な誤差が発生していました。その差をなくしたいという意味と今後の備忘録としてまとめておこうと思います。

本記事の実際の挙動が確認できるリポジトリを貼付しております。
お急ぎの方はこちらへどうぞ。

https://github.com/jugeeem/django-tailwindcss-npm-sample

## 実行環境
– Python: 3.12.2

## 免責事項
表題の説明にフォーカスを当てるために

元記事を表示

テスト

# 入力文字列
input_string = “ブランチ1/V00.01/a:100,b:100,c:—– ブランチ2/V00.02/a:200,b:200,c:—–”

# 入力文字列を処理してデータを抽出
branches_data = input_string.split()
branch_info = []
branch_names = []
data_keys_order = []

# データ項目の順序を保持するために最初のブランチから順序を取得
first_branch_data = branches_data[0].split(‘/’, 2)[2]
data_keys_order = [item.split(‘:’)[0] for item in first_branch_data.split(‘,’)]

for branch in branches_data:
parts = branch.split(‘/’, 2) # 最初の2つのスラッシュで分割
name, version, data = parts
branch_name

元記事を表示

YOLOWorldを手軽に使う iOS用に変換する

# 好きな物体を設定できる
テキストで物体検出するクラスを設定できるYOLOWorldですが、
pipパッケージを使うと数行のコードで簡単に使えます。

### インストール

“`bash
pip install ultralytics
“`

“`python
from ultralytics import YOLOWorld
model = YOLOWorld(‘yolov8l-world.pt’)
“`

### クラスを設定

“`python
model.set_classes([“donuts”])
“`

これでドーナツを検出するようになりました。

### 実行

“`python
results = model.predict(‘donuts.jpg’,save=True)
“`

### Co

元記事を表示

テスト

はい、GitLab CIで実行した結果をHTMLファイルとしてメールで通知することは可能です。このプロセスを実装するためには、いくつかのステップに従う必要があります。以下に一般的なアプローチを紹介します:

1. **テスト結果をHTMLファイルに出力する**: まず、GitLab CIのジョブでテストを実行し、その結果をHTMLファイルに出力する必要があります。このファイルは後でメールで送信されます。

2. **メール送信用のスクリプトを用意する**: 次に、HTMLファイルをメールとして送信するためのスクリプトを用意します。このスクリプトは、SMTPサーバーを使用してメールを送信するPythonスクリプトなど、さまざまな形式で作成できます。

3. **GitLab CIのパイプラインにステップを追加する**: HTMLファイルの生成とメール送信スクリプトの実行を含むステップを、`.gitlab-ci.yml`ファイルに追加します。このステップは、テストジョブが成功した後に実行されるように構成することができます。

以下は、上記のステップを組み合わせた基本的な例です:

“`y

元記事を表示

【数学溢れ話】【Token】反比例関数と指数対数関数の回転

# 線形関数(Liner Function)と反比例関数(Inverse Proportional Function)の連続性
冪乗関数$y=a^x(a,x \in \mathbb{R})$を用いれば、**線形関数**(Liner Function)y=x(y=x^1)と、その逆関数たる**反比例関数**(Inverse Proportional Function)$y=\frac{1}{x}(y=x^{-1})$を**連続する関数表現**(Continuous Function Expression)に収める事が出来ます。ただしaが**特異点**(Singular Point)0に収束する時、1対1対応が崩れた**多価関数**(Multivalued Function)となってしまうのです。

“`math
y=\lim_{a \to 0}a^x = \left\{
\begin{array}{ll}
y=-1 & (x>0) \\
-1 < y < 1 & (x=0) \\ y=1

元記事を表示

botにDBが最適かどうかはわからないけど、とりあえず勉強がてらやってみた

# 趣旨
DBについての知識が欲しくなったので勉強目的でとりあえず動くものを作ってみました。
忘れないうちにここにまとめて記録しておきます。

# MySQLサーバーのインストール方法

私はボタン一つでサーバーが立ち上がるサービスを利用しているので、この作業はやっていません。不具合が出ても責任は取れませんのでご了承ください。

## 必要な Linux コマンド
ターミナルを開き、以下のコマンドを実行してMySQLサーバーをインストールします。
“`
sudo apt update
sudo apt install mysql-server
“`

インストールが完了したら、MySQLサービスが正常に動作していることを確認します。
“`
sudo systemctl status mysql
“`

インストール後、以下のコマンドを実行してセキュリティを強化します。
“`
sudo mysql_secure_installation
“`

以下のコマンドを使用してMySQLにログインします。

データベースを作成します。
“`
CREATE DATABASE `use

元記事を表示

venvとjupyterを使用時、仮想環境内のモジュールをインポートできるようにする(ModuleNotFoundErrorの解決)

## 経緯
https://qiita.com/lilacs/items/acff5baa9b49af0586d0#%EF%BC%93%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89

を参考に、JupyterLabの仮想環境上での作業ページを作ったが、ModuleNotFoundErrorが発生した。

まあいつものことなので、どうせJupyterに仮想環境内のモジュールへのパスが通っていないのだろうなとsys.pathを見てみると当たり。

毎回sys.path.appendをするのは面倒くさすぎるので、ちょっと手を加えてなんとかする。

(初めてのQiitaの記事作成です)

## 使用OS
windows11

## 作業手順
参考

IPython Kernelのスタートアップスクリプトを利用する。

“`Powershell:Powershell
$ ipython

元記事を表示

エニグマ暗号をPythonで実装した

# 1. 動機

以下のページを読んで,Pythonで実装できそうだと思ったこと.

[たった1枚の紙でナチス・ドイツの傑作暗号機エニグマを再現できる「Paper Enigma Machine」を使ってみた – GIGAZINE](https://gigazine.net/news/20201123-paper-enigma/)

# 2. 方針

1. 3つのローターを左から順に1, 2, 3とし,ローター1の左側,ローター1の右側,ローター2の左側,……,ローター3の右側を表す6つのリストを定義する.


2. 入力された文字列をリストに格納し,先頭から1文字ずつ次の操作を行う.

a. その文字 $ l_1 $ が,アルファベットの何番目であるか求める.($ n_1 $ とする)
b. ローター1の右側で同じく $ n_1 $ 番目にある文字 $ l_2 $ を求める.
c. $ l_2 $ がローター1の左側で何番目であるか求める.($ n_2 $ とする)
d. ローター2の右側で同じ

元記事を表示

OTHERカテゴリの最新記事