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

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

Pythonを使用してPDFドキュメントにアクションを作成する方法

PDF形式は、そのクロスプラットフォーム互換性と豊富な機能セットにより、多くの業界で選ばれるファイル形式となっています。その中でも、**PDFのアクション(Action)機能**は特に注目されます。アクションを使用することで、リンクやボタン、スクリプトなどのインタラクティブな要素を埋め込むことができ、ドキュメントの対話性や機能性が大幅に向上します。Pythonのような強力なプログラミング言語を用いてこれらのアクションを作成することで、ドキュメント処理の自動化や、複雑な操作の実現が可能となり、PDFドキュメントの活用範囲が大きく広がります。静的なコンテンツ表示に留まらず、ユーザーのニーズやビジネスプロセスにより適したサービスを提供できるようになるのです。本記事では、Pythonを使用して**PDFドキュメントにアクションを作成する方法**について説明します。

– **[Pythonを使用してPDFにナビゲーションアクションを作成する](#pythonを使用してpdfにナビゲーションアクションを作成する)**
– **[Pythonを使用してPDFにサウンドアクションを作成する](#py

元記事を表示

AtCoder 過去問「ABC049C – 白昼夢」を解いてみた

# はじめに
Python の練習として AtCoder の過去問「ABC049C – 白昼夢」を解いてみました.

https://atcoder.jp/contests/abs/tasks/arc065_a

もちろん, 優れた解説はたくさんあるので, そちらと見比べてください.

# 再帰で解いたら, 案の定…
まず, 再帰で解いてみました. 与えられた文字列が, dream, dreamer, erase, eraser のいずれかにマッチしたら, マッチした文字列を消去して, 同じことを繰り返します. そして最後まで達したら True, マッチしなかったら False を返します.

“`python:1
s = “dream dreamer erase eraser”.split()

def match_string(str):
“”” str の先頭からの文字列が s に含まれるか判定する
“””
global s
result = [

元記事を表示

pythonのlist処理でちょっと使いづらい点 pop()

# プログラミングの際に思ったこと

pythonのpopがちょっと使いづらい
例えば、
l=Noneまたはl=[]のとき、
“`python
i=l.pop(-1)
“`
としたら、pythonはエラーを返すが、無視して、iにNoneを返して、lはそのままにしていて欲しい。
実装すると、こう
“`python
>>> po=lambda l:l.pop(-1) if l else None
>>> l=[‘a’,’b’]
>>> i=po(l)
>>> l
[‘a’]
>>> i
‘b’
>>> l=[]
>>> i=po(l)
>>> l
[]
>>> i
>>>
>>> l=None
>>> i=po(l)
>>> l
>>> i
>>>

“`
NULLの処理の仕方の問題ですにゃ。

元記事を表示

小さなGPUでのエンジニアリング。TensorFlow.js での AIモデルゲーム。

#### ショートストーリー: テンソルの彼方に
東京の下町に住むプログラマー、田中健一は、言語モデルのAIを開発するスタートアップ企業で働くエンジニアだった。彼の仕事は、複雑なアルゴリズムとデータ処理に囲まれた毎日で、言語モデルがどのようにして知識を構築し、自然な言葉を生成するのかを深く探求していた。

ある日、健一はプロジェクトの一環として、4次元テンソルを使った新しい計算モデルの設計を任された。これまでは2次元や3次元のテンソルを扱ってきたが、4次元のテンソルは彼にとって未知の領域だった。彼はテンソルの奥深さに魅了され、挑戦する決意を固めた。

健一は、言語モデルの背後に潜む計算プロセスに思いを馳せた。単語がエンベディングされてベクトルとなり、それらのベクトルが連なって行列を形成する。さらに、その行列が複数連なり、3次元テンソルを構成する。そして、この3次元テンソル同士の掛け算を行うことで、コンテキストテンソルが得られ、その中から意味がある行列を取り出すことができる。この行列をテキストに変換すれば、言語モデルの応答が得られるのだ。健一は、このシンプルなテンソルの掛け算が言

元記事を表示

Python+AWS LambdaでWEBスクレイピングAPIを作成してみた

# Lambdaを使ってAPIを作りたい
![Screenshot 2024-08-30 131834.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/722467/7fe54343-ed11-6453-664a-2bf239577cde.png)

前から気になっていたAWSのサービス、Lambdaを使ってAPIを作成することができました。
コードはPythonで書いており、市町村の観光情報をスクレイピングして取得してjson形式で取得できるAPIです。

どんな風に作ったか説明していきます。

# Pythonコード
## 必要なライラブリ
“`python
import json
import requests
from bs4 import BeautifulSoup
import urllib3
“`
json形式で取得するため、json
webスクレイピングに使用するrequests,BeautifulSpoup
SSL証明書がないという警告を無視するためのurlib3
(↑公開するなら対

元記事を表示

AWS Lambdaを使ってHULFT Squareを実行してみた

# はじめに

こんにちは。すぎもんです:grinning:
以前、「[コマンドを使って外部からHULFT Squareを実行する方法](https://qiita.com/sugimon/items/beeaaa615d448848ff72)」をご紹介しました。
HULFT Squareは他のクラウド製品と合わせて活用することでサーバーを持たずに稼働させることが出来ます。

そこで今回はサーバーレスコンピューティングサービスであるAWS Lambdaを使用して、HULFT Square を実行することが出来るか試してみます。
これにより、AWSや他のサービスから任意のタイミングでHULFT Squareを実行させることが出来ます。

# 今回やること
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4effa46b-f975-710d-c4c5-80375e9a1e0a.png)
今回は、AWSのLambdaを使用してHULFT Squareを実行してみたいと思います。

元記事を表示

Pythonでの高速化の選択肢

[Python プログラマのスキル標準化のための項目](https://qiita.com/nonbiri15/items/6461aa4dd82183fa7014)

の目的のため、高速化アプローチについて概観するためのメモを作成する。

### 想定する読者
python の中級者
pypy, Numba などの上級者向けのことは書いてありません。

## 自作モジュールは必要なのか
– その分野で使われだしているOSSのモジュールはないか?
– 車輪の再発明をしなくてよい。
– OSSのモジュールで標準化されていれば、次の作業は不要になる可能性が高い
– CPU, GPUのサポート
– マルチコアを使った高速化のサポート

以下は自作モジュールが必要な前提で書く。

## 処理時間を計測する
– 例 cv2.getTickCount() を使う
timeit
[timeit — 小さなコードスニペットの実行時間計測](https://docs.python.org/ja/3/library/timeit.html)
[Pythonのtimeitモジュールで処理

元記事を表示

線形基底関数モデル

## 2次元入力の面モデル
年齢から身長を予測していたが、これに加えて体重のデータも使って予測する。
体重のデータはBMIが23の人を仮定して使う。

“`BMIの式.
体重 = 23 × 身長^2 / 100 + noise
“`

体重は身長の二乗に比例する式である。今回年齢をX0, 体重をX1, 身長Tとしてグラフを表示する。

“`python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

np.random.seed(seed=1) # 乱数を固定
X_min = 4 # Xの下限値
X_max = 30 # Xの上限値
X_n = 16 # データ個数
X = 5 + 25 * np.random.rand(X_n)
Prm_c = [170, 108,

元記事を表示

SQLite

## 目的
mosquittoで受信したデータをdb格納
msserver, mysql, sqliteどれを導入するかと迷ったが
今回はpython で手軽に実行できるので、まずsqliteを選定
*どこまでできるか判断して、プロジェクトに応じ使用する。

## 現状
データ取り込みはOKだが、複数のデータを各時間あたりで処理するときの
データ競合など諸問題への対応に直面

## chatgptと対話

対話詳細:複数の処理を安全に行うために

SQLiteで複数の処理を安全に行うためには、いくつかのベストプラクティスと適切な設定を行うことが重要です。以下に、SQLiteで安全かつ効率的に複数の処理を行うための方法を説明します。

1. トランザクションを使用する
トランザクションは、複数のSQL操作を1つの不可分な操作として実行するために使用されます。トランザクションを使用することで、データの整合性を確保しながら複数の操作を安全に行うことができます。

方法:

import sqlite3
conn =

元記事を表示

【最新情報付き】ImageFXで実在するようなAI美女を無料で生成する方法

こんにちは、KIIです!

ImageFXについてさらに詳しく知りたい方は、[こちらの記事](https://note.com/kii_genai/n/n48996336e1c3?sub_rt=share_pw)
の記事も参考にしてください。

AI画像生成技術の進化は目覚ましく、特にGoogleが提供するImageFXはその最前線に立つツールの一つです。本記事では、ImageFXの使用方法や技術的背景、そしてプロンプト作成のコツについて、最新情報を交えながら詳しく解説します。技術者の皆さんにとって、AI画像生成の可能性を最大限に引き出すためのヒントが詰まった内容となっていますので、ぜひ参考にしてください。

## 1. ImageFXとは何か?

**ImageFX**は、Googleが開発した高品質なAI画像生成ツールで、特に人物画像の生成において他のツールを凌駕する性能を誇ります。このツールは、Google DeepMindが開発した**Imagen 2/3**を基盤としており、非常に細かなディテールや質感をリアルに再現することが可能です。

**特徴**:
– 高精度な

元記事を表示

StreamlitでAIチャットボットを作ってみた

## **はじめに**

引き続き生成AIの話題が続いていますね。

私も個人的なプロジェクトとして簡単なチャットボットを作ってみたいと思い、挑戦してみました。今回は、DifyというAIアプリケーション開発プラットフォームを使ってチャットボットのバックエンドを作成し、そのAPIをStreamlitというPythonライブラリを使って構築したフロントエンド/バックエンドと連携させるという試みについて紹介します。

前の記事に[Difyについて書きました](https://qiita.com/CodingDane/items/005b583fa4dfa34dfb1e)ので、良かったらご覧ください。

※ここに前の記事のリンクを挿入

Dify(AIアプリケーションを簡単に作成できるノーコードプラットフォーム)とStreamlit(データサイエンティストやエンジニアがウェブアプリケーションを簡単に作成できるPythonライブラリ)を組み合わせることで、比較的少ない労力で機能的なチャットボットを作ることができます。

最後に、Streamlit Cloudを使って無料でアプリのデプロイをやって

元記事を表示

Google Colab (Python)にて SPARQL により Wikidata からデータを抽出する方法

## 概要

Google Colab (Python)にて Wikidata に対する SPARQL の基本的な操作を実施します。 Wikidata の基本的な説明を実施後、本ノートブックにて Python で Wikidata から SPARQL によりデータの抽出を実行します。

Spark の記事ではなく、 SPARQL の記事です。SPARQL とは、RDF(Resource Description Framework)データをクエリするための問い合わせ言語です。SPARQLは、W3C(World Wide Web Consortium)によって標準化された言語で、RDFデータモデルに基づくデータベースから情報を抽出するために使用されているようです。

## Wikidata について

Wikidata とは、下記のように説明されており、取得したデータを自由に再利用にできます。

> ウィキデータは、人間とコンピュータの双方が平等に参照・編集できる無料のオープンな知識データベースサイトです。

引用元:[Wikidata](https://www.wikidata.org/

元記事を表示

4次元サイン関数のアニメーション。

![スクリーンショット 2024-08-30 045807.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/07f9be4c-fb36-b64c-b051-fec3dd5f8f12.png)

![スクリーンショット 2024-08-30 045820.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/50d37739-419b-36cf-517f-6cd843db2eed.png)

![スクリーンショット 2024-08-30 045832.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/904c44fd-02ca-608f-db92-d5981576335b.png)

### 4次元サイン関数をアニメーションさせ、各グリッドの値を色で表現してます。このコードでは、TensorFlow.j

元記事を表示

Streamlit 1.38.0の新機能紹介

## Streamlitとは

StreamlitはPython向けのWebアプリケーションフレームワークです。

https://streamlit.io/

Streamlitを使うとフロントエンドの知識ゼロでもデータを可視化するためのWebアプリケーションを簡単に作れます。以下のような機能が特徴。
– 変数を地の文に書くだけで、GUIに出力される(**マジックコマンド**)
– `st.radio`や`st.text_input`のようなWidget APIを呼び出すだけで、GUIコンポーネントが生成される

## Streamlitの最新バージョン

Streamlitの最新バージョンは[Changelog](https://docs.streamlit.io/library/changelog)で確認できます。
2024/8/29時点で最新バージョンは1.38.0です。

https://docs.streamlit.io/library/changelog

以下に記載した変更点は、1.38.0でHighlights、Notable ChangesおよびOt

元記事を表示

Pythonで解いたっpaizaのキャンペーン対象問題(Sランク「mod7占い」)

いつ解いたのか分からない問題が対象でしたので解説・・・正直コードの意図が分からない。

https://paiza.jp/works/mondai/s_rank_skillcheck_sample/mod7

## コードの解説
“`py
# coding: utf-8
n = int(input())
input_line = [int(input())%7 for _ in range(n)]
z = 0
for q in range(len(input_line)):
for w in range(q+1,len(input_line)):
for e in range(w+1,len(input_line)):
if (input_line[q]+input_line[w]+input_line[e]) % 7 == 0:
z += 1
print(z)
“`
このコードはごり押しで「3つの整数を足した和が7で割り切れるような組合せがいくつあるか」を確認しています。正直解説できる部分が全くあ

元記事を表示

Google ColaboratoryとWhisperを使用した簡単音声文字起こしガイド

# Google ColaboratoryとWhisperを使用した簡単音声文字起こしガイド

## はじめに

音声ファイルのテキスト化(文字起こし)は、多くの場面で必要とされる作業です。しかし、高品質な文字起こしを行うためのツールは、しばしば高価であったり、使用が複雑だったりします。この記事では、OpenAIが開発した強力な音声認識モデル「Whisper」とGoogle Colaboratoryを組み合わせて、無料で簡単に高品質な文字起こしを行う方法を紹介します。

## Whisperとは?

Whisperは、OpenAIが開発した多言語音声認識モデルです。68か国語以上の言語に対応し、高い精度で音声をテキストに変換することができます。また、オープンソースで公開されているため、無料で使用することができます。

### Whisperのモデルサイズ

Whisperには複数のモデルサイズがあり、用途や必要な精度、利用可能な計算リソースに応じて選択することができます。主なモデルサイズは以下の通りです:

1. **tiny**: 最小のモデルで、非常に軽量ですが、精度は低めです。

元記事を表示

Pythonで解いたっpaizaのキャンペーン対象問題(Sランク「島探し」)

そろそろ時間もないので適当になりますが、paizaの問題を解説しましょう。

https://paiza.jp/works/mondai/s_rank_skillcheck_sample/search-island

## コードの解説

“`py
def main():
xy = list(map(int,input().split()))
input_line = [list(map(int,input().split())) for _ in range(xy[1])]
n = 0
for i in range(xy[0]): # x軸
for j in range(xy[1]): # y軸
if input_line[j][i] == 1:
input_line[j][i] = 0
a = [[i,j]]
while a:
x,y = a.pop()
# Up
if y != 0 and input_line[y-1][x] == 1:
input_line[y-1][x] = 0

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その111 同一局面の計算と同一局面を考慮した強解決の AI の判定

# 目次と前回の記事

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

https://qiita.com/ysgeso/items/c4c7220d8c2f0ac3b6e6

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

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

| リンク | 説明 |
|:–|:–|
| [marubatsu.py](https://github.com/ysgeso/marubatsu/blob/master/111/marubatsu.py) | Marubatsu、Marubatsu_GUI クラスの定義|
| [ai.py](https://github.com/ysgeso/marubatsu/blob/master/111/ai.py) | AI に関する関数 |
| [test.py](https://github.com/ysgeso/marubatsu/blob/master/111/test.py) | テストに関する関数 |
| [util.py]

元記事を表示

Python StopIterationの理解から始める、エラーに強いイテレータの実装

## はじめに

Pythonのイテレータは、データ構造を順番にアクセスするための強力な機能です。しかし、イテレータを正しく実装し、特に`StopIteration`例外を適切に処理することは、初心者にとって難しい場合があります。この記事では、`StopIteration`の基本的な概念から始めて、エラーに強いイテレータの実装方法まで、段階的に説明していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/0df86401-7ff8-4bfd-58eb-b3a630e6f89b.png)

## StopIterationとは

`StopIteration`は、イテレータが終了したことを示すPythonの組み込み例外です。通常、`for`ループや`next()`関数を使用してイテレータの要素にアクセスする際、すべての要素を取得し終わると、この例外が自動的に発生します。

![image.png](https://qiita-image-store.s3.ap-nor

元記事を表示

電力潮流解析とニュートンラフソン法

# はじめに
潮流計算とは、あらかじめ系統の発電機の出力や負荷の消費電力が与えられた場合において、送電線にかかる電圧や潮流を逆解析を用いて推定する方法である。逆解析の方法については、非線形問題でも扱うことができるニュートンラフソン法などが用いられる。ニュートンラフソン法では、曲面の傾きにあたるヤコビアンを偏微分により算出して、最適解を近似する。本記事では、非線形問題である電力方程式をニュートンラフソン法で解くことを目的とする。

# 問題設定
令和3年度の電験一種二次試験、電力管理における第3問の問題をモデルとする。電力系統図は以下のとおりとする。

![電力系統.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/fa952a1c-2645-2a92-38b7-83c48c5d4fde.jpeg)

ノードアドミタンスは、以下の通りとする。

“`math
\dot{Y}=

\begin{pmatrix}
-18j & j10 & j10\\
j10 & -18j & j10\\
j10

元記事を表示

OTHERカテゴリの最新記事