- 1. Python Script: Retrieve and Print Zabbix API Version
- 2. Pythonで始める音声認識:faster-whisperを使った簡単なガイド
- 3. シミュレーション
- 4. List操作のデバッグを効率化するラッパークラス活用法
- 5. [画像処理]バイキュービック補間法では画像はどう補間されるのか?
- 6. BlenderでカーボンナノチューブのCGをつくる
- 7. カーボンナノチューブの電子状態密度をPythonで描画する
- 8. グラフェンのエネルギーバンドをPythonで描画する
- 9. 楕円の周長の求め方
- 10. シミュレーションの練習
- 11. 【備忘録】PythonでMySQLのデータベースにデータを作成する方法
- 12. 辞書
- 13. Stable DiffusionのWeb APIを用いて写真的素材をイラストに変換してみた
- 14. 文字列の重複を取り除く
- 15. GENERAL PATTERN EDITOR patterneditor.py
- 16. 昔懐かしのPCゲームを今のパソコンに移植しようシリーズGames in the atticその5豚殺しゲーム PIG SLAUGHTER (pigslaughter.py)
- 17. GAMES in the attic 昔懐かしのPCゲームを今のパソコンに移植しよう SUPERTEXT python用console module Ver. 1.0
- 18. 辞書データの順序
- 19. 辞書式ソート
- 20. 夜の渡り鳥が出す鳴き声を検出するnighthawkをdockerで動かしてみた
Python Script: Retrieve and Print Zabbix API Version
## Step 1
First, ensure you have the `requests` library installed in your Python environment, as it’s a common library for making HTTP requests. If it’s not installed, you can install it using pip
“`
pip install requests
“`## Step 2
Use the following Python script to retrieve Zabbix API version.
**Replace `YOUR_ZABBIX_URL` with the URL of your Zabbix server** and ensure that you have the correct endpoint for the API (commonly it’s /api_jsonrpc.php).“`retrieve_zabbix_version.py
import
Pythonで始める音声認識:faster-whisperを使った簡単なガイド
音声認識技術は、私たちの生活やビジネスに革命をもたらしています。特に、ポッドキャストのテキスト化、会議の議事録作成、音声コマンドを使った操作など、その用途は日々広がりを見せています。しかし、多くの人々が直面しているのは、技術の複雑さと実装の難しさです。ここで、Pythonユーザーに朗報です。`faster-whisper`は、音声認識を簡単に、そして速く行うためのツールです。
https://github.com/SYSTRAN/faster-whisper
# 対象読者
この記事は、Pythonに慣れ親しんでいるが、音声認識技術を使ってみたいと考えているプログラマーや開発者、また音声データをテキストに変換したい研究者やコンテンツクリエイターを対象としています。# 解決したい問題
音声データをテキストに変換する過程の複雑さと時間を削減し、誰もが簡単に高精度な音声認識を実現できるようにすることがこの記事の目的です。# はじめに
音声認識技術の進化は目覚ましいものがありますが、それを実際に使いこなすには専門知識が必要とされがちです。`faster-whisper`は、このギャッ
シミュレーション
https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_simulation_boss
“`py
H = int(input())
P_dmg_1 = 1
P_dmg_2 = 1
M_dmg_1 = 1
M_dmg_2 = 1
#turnは3から
#Hははじめから2減らす
turn = 2
H = 35- 2
while True:
turn += 1
P_dmg_1 = P_dmg_2
P_dmg_2 = M_dmg_1 + M_dmg_2
M_dmg_1 = M_dmg_2
M_dmg_2 = P_dmg_1 + P_dmg_2 * 2H -= M_dmg_2
if H < 0: break print(turn) ``` ```py H = int(input()) P_dmg_1 = 1 P_dmg_2 = 1 M_dmg_1 = 1 M_dmg_2 = 1 #turnは3から #Hははじめから2減らす turn = 2
List操作のデバッグを効率化するラッパークラス活用法
# はじめに
Java や Python など、多くのプログラミング言語で List やその他のコレクション型のデータ構造は頻繁に使用されます。これらのコレクションにオブジェクトを追加する際、特に複雑なアプリケーションや可読性の非常に低いコードでは、デバッグが難しくなることがあります。特に、List のオブジェクトクラスなどが多用されている場合、問題の追跡と解決はより複雑になります。このような状況を解決するための有効なデバッグ方法の一つが、List の Add メソッドなどのメソッドをラップしてブレークポイントで捕まえるテクニックです。
# 方法の概要
この方法では、既存の List にオブジェクトを追加する Add メソッド(あるいは同様の機能を持つメソッド)をカスタムラッパークラスで包みます。このラッパークラスでは、Add メソッドが呼び出された際に特定のアクションを実行することができ、デバッガーのブレークポイントを設定して実行時に停止させることが可能です。これにより、開発者はオブジェクトが List に追加される正確な時点を特定し、追加されるオブジェクトの状態を詳細に調査す
[画像処理]バイキュービック補間法では画像はどう補間されるのか?
# はじめに
先日、画像の補間方法について記事を書いた。https://qiita.com/sasshi_i/items/71189dc3a5c637fda3a4
本記事で紹介するバイキュービック補間法も画像を拡大、縮小、回転する時に利用できる補間法の1つである。バイキュービック補間法ではどのような処理が行われるのか解説していく。
# バイキュービック補間法とは?
バイキュービック補間法は、16個の画素値を用いて補間する画素の画素値を求める方法である。16個の画素の加重平均を基に補間する画素の画素値を求める。処理の流れを以下に示す。## 処理の流れ
変換後の画像の座標$(x’, y’)$における画素値を求める手順は以下の通り。
1. 拡大率を$α$とした時、$(\frac{x’}{α}, \frac{y’}{α})$を求める
2. $(\frac{x’}{α}, \frac{y’}{α})$の整数部の座標の画素値を$Src(0,0)$とすると、$x$軸方向および$y$軸方向の-1~+2の範囲における16画素を得る
3. 周囲16画素それぞれと$(\frac{x’}{α},
BlenderでカーボンナノチューブのCGをつくる
# 概要
BlenderとPythonでいい感じのカーボンナノチューブのCGをつくります.
Pythonの分子動力学シミュレーションライブラリ[ASE](https://wiki.fysik.dtu.dk/ase/)にはナノチューブの構造を作ってくれる素晴らしい関数が用意されています.さらに結合の情報を取得することもできるのであとは描画するだけ!# コード
なんとナノチューブはこれだけでできてしまいます.
“`Python
from ase.build import nanotube
from ase.geometry.analysis import Analysisdef create_cnt(n, m, l):
cnt = nanotube(n, m, length=l)
cnt.pbc = [False, False, False]
“`
結合は少し厄介.
“`Python
# to retrieve bond information
ana = Analysis(cnt)
CCBonds = ana.get_bonds(‘
カーボンナノチューブの電子状態密度をPythonで描画する
# 概要
皆さんカーボンナノチューブ(carbon nanotube, CNT)という物質はご存じでしょうか.
いろいろすごい物質です.
今回はカーボンナノチューブの大きな特徴である,ファンホーブ特異点(van Hove singularity)を持つ電子状態密度(density of state, DOS)を計算し描画していきます.![6_5_CNT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702367/52ff7826-5cc1-e08d-0f07-6642f48397d5.png)
# 理論
[前回の記事](https://qiita.com/PlusF/items/2b5208d7093dc524988f)でグラフェンのエネルギーバンドを計算し描画しました.それを使ってDOSを計算するのでまだ読んでいない方はぜひ.
コンテキストを端折ってしまいますが,単層CNTの電子の波動関数がとりうる波数ベクトルは限られており,カッティングラインと呼ばれる線分上のみとなる.単層CNTの分散関係
グラフェンのエネルギーバンドをPythonで描画する
# 概要
炭素の六員環からなる二次元物質グラフェンは皆さまご存じでしょうか.
ノーベル賞もとったことがあるすごい物質です.
今回はそのグラフェンのエネルギーバンドをPython (matplotlib)で描画していきます.![graphene.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702367/880e49b7-1b18-3642-f46a-92df08a90828.png)
# 理論
まず小難しい数式だけここにまとめておきます.
六方格子のような周期性を持つ構造においては,一般にブロッホの定理が成り立つ.…ちょっと数式書くのめんどくさいので気が向いたら追記することとします.
解だけ置いておきます.
${E_{2g}(\vec{k}) = \frac{\epsilon_{2p}\pm t\omega(\vec{k})}{1\pm s\omega(\vec{k})}}, \omega(\vec{k}) = \sqrt{|e^{ik_xa/2\sqrt{3}}+2e^{-ik_xa/
楕円の周長の求め方
## 楕円の周の長さの求め方
## 1. 理論などどうでもよいという場合
タイトルは不穏当だが,要するに,パッケージなりを使用して,簡単に答えを得たいという場合である。
ChatGPT3.5 に聞いてみると,「Julia には Elliptic に ellipke,Python には scipy.special に elliptic_perimeter_with_ellipkがあるよ」とご丁寧にもプログラムを添えて教えてくれた。
ただ,あとになってわかったが,あいも変わらず ChatGPT3.5 は不十分な答えを返してくれたのであった。
計算結果を見てのけぞった。別の計算手段から得られた数値よりずっと大きい値が返ってくる。私の聞き方も悪かったのだが,最初は「第二種楕円積分を使って…」で,次に「第二種完全楕円積分を使って…」と聞くと,同じ関数を引数として離心率と離心率の二乗を使ったプログラム例を提示してきた。そして,どちらも結果が異なる。
更にあとになってわかったが,ChatGPT3.5 が答えたのは第一種楕円積分と第一種完全楕円積分の方だった。
Julia で
シミュレーションの練習
https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_simulation_step2
“`py
n = int(input())
a,b = map(int,input().split())
paiza_score = 1
kirijima_score = 1
cnt = 0while n > kirijima_score:
#paiza_turn
kirijima_score = paiza_score * a
#kirijima_turn
paiza_score += kirijima_score % b
#turn_end
cnt += 1print(cnt)
“`
これでいいかな?と思ったんですがだめでした。
じっくり問題読むと、つまりキリジマのスコアがnを超えたときってことなので
それはつまり、キリジマのスコアが動いた時に判定しなきゃ意味がないんですね。
だからwhileの条件判定じゃだめってこと。
だから“`py
n = i
【備忘録】PythonでMySQLのデータベースにデータを作成する方法
### 備考
Python:3.9
MySQL:8.0.31
動作環境:MacOS
開発環境:PyCharm### 事前準備
データベース作成済みhttps://qiita.com/ume1017da/items/feaad4d0dc35f15ca4ba
マイグレーション実行済み
https://qiita.com/ume1017da/items/ec76466f36fc707e5a56
### 1. PyCharmにて新規プロジェクトを作成する
### 2. プロジェクトを以下の構成になるようにファイルを作成する
“`フォルダ構成.
.
├── main.py
├── env.py
├── .env
├── requirements.txt
├── crud
│ ├── certification_crud.py
│ └── user_crud.py
├── database
│ ├── database.py
│ └── models.py
└── schema
└── user_schema.py
“`### 3. requirements
辞書
https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_dictionary_boss
前回のケースからたぶん辞書と辞書を組み合わせればいいんだとは思ったけど
なかなか理解に骨が折れたのでコメントもつけつつ“`py
p,q,r = map(int, input().split())
#A->B, B->Cの辞書を作成する
A_B = {}
for _ in range(p):
i, j = map(int,input().split())
A_B[i] = jB_C = {}
for _ in range(q):
j, k = map(int,input().split())
B_C[j] = k#上の2つを利用してA_Cの辞書を作成
#この場合iは1〜pまででOK
#A_B[i]の値がそのままB_C[j]の値になり、それがそのままA_C[i]に代入
#上のロジックをどう数式にすればいいかわからんかった
A_C = {}
for i in range(1, p +
Stable DiffusionのWeb APIを用いて写真的素材をイラストに変換してみた
[Supership](https://supership.jp/)の名畑です。TVアニメ[マッシュル-MASHLE-](https://mashle.pw/)の2期の[OP](https://www.youtube.com/watch?v=210R0ozmLwg)が海外でバズっているという噂は聞いていたけれど、公開一月足らずでYouTubeの動画が2000万再生を超えていてびっくりしました。
## はじめに
画像生成モデルである[Stable Diffusion](https://ja.stability.ai/stable-diffusion)ではテキストからの画像生成(**text-to-image**)だけではなく、画像を元にした画像生成(**image-to-image**)もございます。
今回の記事では**Python**で[stability.aiのAPI](https://api.stability.ai/docs)を呼び出すことで「**写真を元にしたイラスト生成**」を行なっています。
目新しい試みではないというか、私の過去記事「[Stable Diffusi
文字列の重複を取り除く
文字列の重複を取り除くプログラムを***Python3***で実装しました。
“`python
input_line = input()
array1 = []
for i in input_line:
# 文字列iが配列に含まれているか確認する
if i not in array1:
array1.append(i)
print(i,end=””)
“`
GENERAL PATTERN EDITOR patterneditor.py
自由サイズの汎用2値画面パターンエディタです。
patterneditor.pyは実行ファイルです。
0 0 1 1 1 0 0 0
0 1 1 0 1 1 0 0
1 1 0 0 0 1 1 0
1 1 0 0 0 1 1 0
1 1 1 1 1 1 1 0
1 1 0 0 0 1 1 0
1 1 0 0 0 1 1 0
0 0 0 0 0 0 0 0のような0 と 1からなるテキストファイルを生成します。
import numpy as np
F = np.loadtxt(a)
として、numpyでファイルを読み込み、2次元のリストにすることができます。‘l’で 画面の幅、高さをファイルの要素数に合わせ、ファイルからパターンをロード
します。
‘s’で 現在の画面をファイルにセーブします。
‘z’で 現在の画面の幅と高さの要素数を設定します。
‘c’で 現在の画面をクリアします。
‘q’で 終了です。
画面のセルをマウスでクリックしたら、On/Offします。最初の画面の要素数は8×8です。“`patterneditor.py
#
昔懐かしのPCゲームを今のパソコンに移植しようシリーズGames in the atticその5豚殺しゲーム PIG SLAUGHTER (pigslaughter.py)
pigslaughter.pyは実行ファイルです。
supertext.pyというモジュールを使っています。https://qiita.com/fygar256/items/11b92b7285359f600b36
上から侵略してくる豚の鼻を砲弾で撃破し、画面最下段のラインにまで来ないようにするゲームです。65体の豚の鼻を倒したらミッションクリア、豚の鼻が画面最下段にまで到着したらゲームオーバーです。
オリジナルは、42年前のCommodoleのCBM3032にあったゲームで、正式名称は忘れたましたが、何体敵を倒したら終わりということはなかったと思います。オリジナルは豚とは関係ありません。同人誌CURSORのゲームだったと思います。記憶があやふやなもので、思い出せません。
キー操作は、’space’で砲撃、’4’でキャノンが左へ移動、’6’でキャノンが右に移動します。’q’でゲームを抜けます。
すごく単純なゲームです。豚の鼻の撃破数が出ますので、スコアを競ってください。
“`pigslaughter.py
#!/usr/bin/python3
import sup
GAMES in the attic 昔懐かしのPCゲームを今のパソコンに移植しよう SUPERTEXT python用console module Ver. 1.0
supertext.pyは、昔の40×25ディスプレイのパソコンのキャラクタゲームを移植する
ためのコンソール用pythonモジュールです。スクリーンに8*8ドットのオリジナルキャラクタを表示できます。cursesでは、当時のグラフィックキャラクタを再現できないため、キャラクタエディタと共に作りました。
supertextは、カレントディレクトリからchars.txtというキャラクタパターンデータを読み込みます。chars.txtのある場所は、プログラム内の、path_to_charsという変数を変えることによって変更することができます。最初は、/home/gar/lib/chars.txtになっていますが、使用者個人の環境に合せ、任意のパスに変更してください。
$ ./supertext.pyで、画面上に使えるキャラクタコードテーブルを表示します。キャラクタは0x00~0xffまでの256種類あり、charactereditor.pyで編集できます。
charactereditor.pyはカレントディレクトリのchars.txtを扱います。メソッド:
setscreen(ti
辞書データの順序
https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_dictionary_step3
最初、辞書から辞書のデータを表示できるかと思ってたら
なかなかできなかったのでメモ。
下記のようにしたらできるように。
1つの辞書だけで動かそうと思うんではなく、
別のリストから操作できるようにすることもできるということを学びました。“`py
n = int(input())
Data = {}
for _ in range(n):
[a,b] = input(),0
Data[a] = bm = int (input())
for _ in range(m):
[a,b] = input().split()
Data[a] += int(b)#ここからnameだけのリストを別に作る
names = list(Data.keys())
names.sort()#そのリストに合わせて値を表示させる
for name in names:
print(Data[name])
辞書式ソート
https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_sort_step3
うんつまりどういう意味じゃ?
と思ったのですが、
結局のところ降順に並べ替えるとこの問題の条件通りのソートになるということです。
ソートの仕様がそうなっている、という話ですね。
念のためソートの仕様を確認しておきます。仕様がわからんかったら、やっぱり知ってる関数を試してちゃんと条件通りになっているか
確認してみるのがよいですね。“`py
n = int(input())
ab = [None] * n
for i in range(n):
[a, b] = map(int,input().split())
ab[i] = [a, b]
ab.sort(reverse=True)
for i in range(n):
print(*ab[i])
“`
夜の渡り鳥が出す鳴き声を検出するnighthawkをdockerで動かしてみた
# 目的
夜渡る小鳥は鳴き声を出しながら飛んでいきます。春とか秋とか平野部でもよく聞こえます。この鳴き声をフライトコールと言いますが、夜間のフライトコール(NFC:Noctural Flight Call)を録音して渡りの生態を調べることが北米で行われています。そのための自動検知プログラムがpythonで開発されており、それをdockerで動かしてみようというものです。pythonの環境構築はバージョン管理やコンフリクトとかライブラリがないとか苦手なので、dockerを使うというのが新しいと思います。## 難易度
– 初心者向け## anaconda3をインストール
– docker desktopをインストールする
– こちらをご覧ください。 https://docs.docker.jp/desktop/install.html– docker-anacondaのイメージをとってくる
– continuumio/anaconda3:latest“`
$ docker pull continuumio/anaconda3
“`– anacon