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

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

Moviepyでhevc_nvencを使う

## 結論:codecでhevc_nvencを指定する
Moviepyを利用してファイル出力する際、codec指定をしない場合、libx264が利用されます。
しかし参考とさせていただいた下の投稿にもあるように、Nvidia Geforceを利用していれば、ハードウェアエンコーダであるNVENCを利用することも可能です。

https://qiita.com/masachaco/items/0cb928c0f254cdc39258

## codecにnvencを指定するとなんだか出力が汚い
ハードウェアエンコーダの恩恵で処理速度は向上しますが、libx264と比べ画質が悪くブロックノイズが大きいと感じていました。
が、単純にmoviepyでビットレートを指定していなかったためでした。

部分的なコードのコピペですが、最終的には次のようにしています。
“`
if cuda_n==True:
clip.write_videofile(video_out, audio=audio_temp_filename,verbose=False,codec=’hevc_nvenc’, bi

元記事を表示

Pyinstaller と multiprocessing 併用

# 並列処理のための標準モジュール multiprocessing を使ったコードを Pyinstaller で固める
注意:とんでもないことが起きます。
単にpyinstallerしてバイナリ化したモジュールを走らせると、、、
1つ実行して停まるたびに次の実行を延々と繰り返しよる!
下手すると同一処理が無数に走って世界を埋め尽します。
それだけでなく、このプロセスが繰り返し時に重複して走るために様々な例外を引き起こしてエラーメッセージでコンソールが埋め尽くされ何が原因か分からなくなるという副作用もあります。

## 重要:最初にfreeze_support() を呼ぶこと
WindowsでもPosixでもfreeze_support()は必要です。
2024年9月現在、「freze_support() は Windows限定」というのは誤情報です。

:::note info
if _ _ _name_ _ __==’_ _ _ _main_ _ _’:
の直後に置けという説示も見かけるが本質的にはmultiprocessingを動かす前にmultiprocessing.free

元記事を表示

直角三角形の中に直角三角形「高校入試チャレンジ問題 補助線をうまく使おう」をsympyとFreeCADでやってみたい。

・問題文は2次元ですが、3次元FreeCADのマクロで、XY平面上に作図しました。

# オリジナル
・YUUU0123 様 (0:00〜4:54)

# sympyで(オリジナル 様の方法を参考に)
#### ver0.1 合同で
“`python
# ver0.1 合同で
from sympy import *
var(‘a’,real=True,positive=True)
AB,DC=6,10
print(“#”,sqrt(solve(Eq(a/6,(DC-AB)/(10+a)),a)[0]**2+AB**2))
# # 2*sqrt(10)
“`
# sympyで(いつもの方法で)
#### ver 0.2 一歩ずつ.円と平行線の交点計算
・△ADCの外接円と平行線の交点が点A。原点は点C.
・円周角∠∠DACの中心角90°で直角二等辺三角形。頂点Mが△ADCの外接円の中心
“`python
# ver0.2 一歩ずつ.円と平行線の交点計算
from sympy import *
var(‘r’,real

元記事を表示

ゼロから作る Deep Learning; 輪読

# ゼロから作る Deep Learning; 輪読
これは「ゼロから作る Deep Learning」のちょっとした知識メモです。Deep Learningの索引のように使用できればと思います。

## ニューロン(ノード)と呼ばれる入力値とその総和で作る式の意味

バイアスの項含めた入力信号の総和(= $\sum_i^n w_i x_i + b$)が0より大きい時、y =1を出力し、0以下の時y = 0を出力する。

i = 2の時、次になる。
“`math
\begin{equation} y=
\left\{
\begin{aligned}
1 \space (w_1 x_1 + w_2 x_2 + b > 0) \\
0 \space (w_1 x_1 + w_2 x_2 + b <= 0) \\ \end{aligned} \right. \end{equation} ``` $\sum_i^n w_i x_i + b$ について、${w_i}$ ${b}$ はパラメータであり、${x_i}$ は入力値

元記事を表示

jupyterでpdやplのdfを1行が1lineになるようdisplayさせる

plやpdのdfをjupyterでdisplayした際に、
日本語の自動折り返しがめちゃくちゃで行高がえらいことになって
イライラすることが度々あったので、対応関数を作成してみた。
`white-space: nowrap !important;` を与えることで、
セル内での改行/折り返しを抑制させている。
pandasに限れば `d1.to_pandas().style.set_table_styles([{‘selector’: ‘td’, ‘props’: ‘white-space: nowrap !important;’}])` という手もあるが、
これはpd.optionのmax_colwidthでは制御できず、
改行/折り返し無しだと横にとんでもない長さとなることがあるため却下。

“`
from IPython.display import display_html
import pandas as pd
import polars as pl
import datetime

def display_df(df, max_strlen = 50):
“””

元記事を表示

#49 Kibelaの記事をBacklogのWikiへ移行する〜Backlog APIを利用する

## はじめに

自社でこれまで作成してきたKibelaの記事をBacklogのWikiページに移行させたい、という要請を受けたため、まとめて記事を移行させるスクリプトをpythonで作成してみました。
こちらでは備忘録として、移行までの調査内容や実際に作成したコードについて、3部に分けてまとめていきたいと思います。
記事の第2部にあたる今回は、実際にスクリプトに使用したBacklogが公開しているAPIに関する説明を中心に取り上げます。
スクリプトとの連携方法からまとめていきますので、初学者の方のご参考になれば幸いです。

第1部の記事をご覧になりたい方は以下から確認できます。

**本記事に関連するブログ記事**

– (第1部)[Kibelaの記事をBacklogのWikiへ移行する〜移行のための調査と準備](https://qiita.com/nxted_sapporo/items/d4a74dfa7af59c75e704)

## Backlog APIとは

ブラウザ上のBacklogで行える操作の多くを公開APIを用いて実行する

元記事を表示

LINEボットでGoogleカレンダーに予定を追加するシステムを作ってみた

こんにちは!今回、私が挑戦したプロジェクトについて、皆さんに共有したいと思います。
LINEボットを使ってGoogleカレンダーに予定を追加するシステムです。正直、最初は「無理かも…」と思いましたが、なんとか形にすることができました!この記事を読んで、少しでも「私にもできるかも!」と思ってもらえたら嬉しいです。

## きっかけ

私は予定管理はいつもGoogleカレンダーを使っているんです。でも、いちいちアプリを開いて入力するのが面倒で…。「LINEで予定を入れられたら便利だな」と思ったのがきっかけです。

## 使った技術

まず、どんな技術を使えばいいか調べました。以下の技術を使うことにしました:

– Python:プログラミング言語
– Flask:Webアプリケーションフレームワーク
– LINE Messaging API:LINEボットを作るためのAPI
– Google Calendar API:Googleカレンダーを操作するためのAPI
– OpenAI GPT-3.5 Turbo:自然言語処理のためのAI

## 苦労したポイントと解決策

### 1.

元記事を表示

paizaラーニング問題集「二次元累積和」を解いてみた

▼感想:

累積和の計算方法のやりかたを踏まえて、本問を解くことができました。

▼コード:

########## 処理0(準備) インプット,リスト定義など ###########

H,W,N = map(int,input().split())

A = [[0 for i in range(W)] for j in range(H)]

# ruisekiwa_yoko,ruisekiwa_tate: 横方向,縦方向の累積和格納用リスト
ruisekiwa_yoko = [[0 for i in range(W)] for j in range(H)]
ruisekiwa_tate = [[0 for i in range(W)] for j in range(H)]

########## 処理1 横方向の累積和の計算、格納 ##########

for j in range(H):

A[j] = list(map(int,input().split()))

元記事を表示

フラクタルノイズを使って、リアルな 大気 の動きアニメーション。地球シュミレータのゲーム。

![スクリーンショット 2024-09-11 050503.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/11503d59-2f9b-5796-6b29-0d8db8feca82.png)

![スクリーンショット 2024-09-11 050443.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/95eec986-0172-716a-5202-49fd6b57c9bc.png)

![スクリーンショット 2024-09-11 050430.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/869d0b7b-ba19-8eb4-0e46-2cd52e2cb557.png)

#### パーリンノイズ (Perlin Noise)
パーリンノイズは、コンピュータグラフィックスにおいて自然な見

元記事を表示

Web Speech APIの機能で、しゃべるブラウザです。

![fc0bb942-be42-4527-970f-90246bcfa0dd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/f0682060-b9ca-a106-dfe0-8cbe7d94e04a.png)

![スクリーンショット 2024-09-11 042001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/647f3278-43f6-86ae-528b-2481d4dd9a7a.png)

### 英語と日本語のテキストを入力し、それを読み上げることができます。

サンプルテキスト 日本語

物語: 言葉の力
未来の世界では、人工知能が人々の生活に深く根付いていた。人々はAIと一緒に暮らし、AIに助けられながら日々を過ごしていた。その中でも、「言葉」は特別な意味を持っていた。言葉は人と人をつなげるだけでなく、AIと人間の架け橋にもなっていた。

ミライという名前

元記事を表示

S3バケットのファイル内容をLambdaで書き換えて別バケットにアップロードする

# はじめに
本記事では、S3バケットにファイルがアップロードされたときにLambdaを使用でそのファイル内容を修正し、別のバケットにファイルをアップロードする方法について実装します。

# ゴール

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1247619/122f805b-bb16-6891-0601-db0e6954fe3a.png)

S3バケットにファイルをアップロードした際に、LambdaでS3バケットからファイルを取得し、内容を修正したファイルを別のS3バケットにアップロードする

# 前提
下記2つのS3バケットは事前に作成しておきます。
– ファイルダウンロード元のバケット(本記事では変数 `source_bucket`)
– 修正されたファイルのアップロード先となるバケット(本記事では変数 `upload_bucket`)

また、LambdaにはS3へのIAM設定をしておきます。

# 環境
Python 3.12

# Lambda関数の作成

コンソール画

元記事を表示

pipを使おうとすると「pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.」のwarningが出る場合

## 問題
pipを使うと、
`pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.`のWargningが出るようになってしまった。
pip installができない。

## 環境
Mac book Air M2
python は pyenv 経由で使用
“`
$ where python
/Users/ユーザー名/.pyenv/shims/python
“`

## どういった時にこのWarningが出るか?

Python が ssl モジュールを正しく認識できていないとき。
– openssl がシステムにインストールされていても、Python が正しくリンクされていない
– Python 環境に問題がある
– OpenSSL の PATH 設定に問題がある

## 原因:python がシステムの OpenSSL を使っていなかった
“`
# opensslの場所を確認した結果
$ where openssl

元記事を表示

【Atcoder解法検討】ABC128 A~D Python

## A – Apple Pie
#### 問題ページ : [A – Apple Pie](https://atcoder.jp/contests/abc128/tasks/abc128_a)
### 考察
標準入力と整数の四則演算、標準出力を利用すれば簡単に実装できます。
### コード
“`python
A, P = map(int, input().split())
print((A * 3 + P) // 2)
“`
## B- Guidebook
#### 問題ページ : [B – Guidebook](https://atcoder.jp/contests/abc128/tasks/abc128_b)
### 考察
$(市名, 得点, 店番号)$をデータ単位としてリストを作成してソートすることでまず市名順、同じ市名なら得点順に並べることができます。ただし、このままソートすると得点は小さい順にソートされてしまいますので、$(市名, 得点 \times (-1), 店番号)$をデータ単位とすることで得点も高い順に並べることができます。
### コード
“`python

元記事を表示

pythonの学習がてらリバーシを作ってみる

Pythonの学習の一環としてリバーシを作成してみたので、どのように実装したのか書いていきます。

## 今回作成したコードを実行したもの
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1477630/1a2f03a3-4365-5b80-b0fb-8d73b2b48bc8.png)

## 作成したコード
“`python
import numpy as np

# 定数宣言
BLACK = 1
WHITE = -1
EMPTY = 0

DIRECTIONS = np.array([
(0, 1), # 右 (Right)
(1, 0), # 下 (Down)
(0, -1), # 左 (Left)
(-1, 0), # 上 (Up)
(1, 1), # 右下 (Down-right)
(1, -1), # 左下 (Down-left)
(-1, 1), # 右上 (Up-right)
(-1

元記事を表示

Python データの繋がりを解き明かす:効率的なグラフ探索技法

## はじめに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/c91b52bf-a663-57e2-03a0-c7e5f840ed19.png)

グラフアルゴリズムは、多くの実世界の問題を解決する上で重要な役割を果たしています。本記事では、深さ優先探索(DFS)と幅優先探索(BFS)の効率的な実装方法について、特にイテレータを活用したアプローチを紹介します。基本的な概念から高度な実装まで、幅広い内容を扱います。

## 目次
1. グラフの基本概念と表現
2. イテレータの基本と利点
3. イテレータを使った深さ優先探索(DFS)の実装と最適化
4. イテレータを使った幅優先探索(BFS)の実装と最適化
5. パフォーマンス比較と最適化テクニック
6. 実践的なユースケース
7. まとめ

## 1. グラフの基本概念と表現

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0

元記事を表示

Prisma Client Python で JSON 型を扱うときの Dirty Hack

[Prisma ORM](https://www.prisma.io/orm) を Python からも利用したくて最近よく [Prisma Client Python](https://prisma-client-py.readthedocs.io/en/stable/) を使っている。普通に利用する分には何も問題はなく、TypeScript 版 Prisma Client に倣ったインタフェースは非常によくできていてかなり好きなのだけれど、ただ一点「**JSON 型が扱いづらい**」という問題だけが悩ましい。そもそも RDB で非構造データ型を多用するなという話ではあるので、妙なことをしようとして妙なところでハマっているという様相である。

この問題のスマートな解決策は未だ見つけられていないのだけれど、「とりあえずこうすれば動く」は見つけられたのでまとめておく。

## 環境
– Prisma 5.17.0
– Python 3.12
– Prisma Client Python 0.15.0
– Pyright
– PostgreSQL 15

## 例
こういうスキーマでテーブ

元記事を表示

【Python】WeatherAPIから天気情報を取得してみた

# かるく自己紹介
初めまして。まどと申します。
IT業界に入ってから4年ほど、VB.netやJavaをメインに触ってきたアプリSEです。
最近仕事でPythonを触る機会があり、今更ながら一から勉強してみたところ、余りにも色々な事が簡単に実装出来ることに感動してしまいました。
初心者ながら、やってみたことをメモ代わりに書き記してみようと思いますので、お手柔らかによろしくお願いします。

# 1. WeatherAPIについて
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/665882/5c3ebf7a-d319-fcf6-7c6e-202918ff593d.png)
WeatherAPIは、気象データをAPI形式で提供しているWebサービスです。
アカウントを作成してAPIキーを発行することで、Pythonから簡単に指定した地域の天気情報を取得することが出来ます。

### 1-1. アカウント作成
まずは、WeatherAPIのアカウントを作成します。
画面右上の「Sign In」を

元記事を表示

Pandas 2.3 に向けてmergeされた PDEP-14 とは何か

## この記事の目的

2024年7月25日に merge されていた [PR#58551](https://github.com/pandas-dev/pandas/pull/58551) は `
PDEP-14: Dedicated string data type for pandas 3.0` というタイトルが示す通り pandas 3.0 に向けた string data type の仕様である。

https://github.com/jorisvandenbossche/pandas/blob/4de20d194beb9418fcee6e839f404a1725ff48dd/web/pandas/pdeps/0014-string-dtype.md

翻訳は適宜DeepLやGPTにやらせておけばよいので、私が読んだ感想をparagraphごとにつらつらと記述していくお気持ち日記とする。(もやはそのようにしないと人間の価値が出せない時代となってしまった)

## Disclaimer
この記事の内容は、私個人の意見や見解であり、私が所属する組織の公式な立場、方針、意見を反映

元記事を表示

Azure Functionsでローカルでは正常に動作するが、デプロイ後に関数が表示されない問題とその解決法

## 最初に

Azure Functionsでローカル環境では正常に動作していたのに、デプロイ後に関数が表示されずに困ったことがありました。ローカル環境では問題なく実行されていたため、原因が分からずに調査を進めたところ、`@app.route`で定義された関数以外の関数がスコープの外に存在している場合に、デプロイ後に関数が正常に読み込まれないことが判明しました。

この問題を解決するためには、すべての関数や処理を`http_trigger`関数のスコープ内に含める必要があります。

## Azure Functionsにおける関数のスコープについて

Azure Functionsを使ってHTTPトリガーを定義する際、`@app.route`で定義された関数以外の関数がスコープの外にあると、デプロイ後に正しく動作しないケースがあります。そのため、すべての処理を`http_trigger`関数のスコープ内に含める必要があります。

### なぜスコープ内に含める必要があるのか?

Azure Functionsでは、`@app.route`で指定された関数の外に別の関数が存在する場合

元記事を表示

Notionを使った論文管理

# Notionでの論文管理
Notionを使ってこのように論文管理をしています.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3119582/6b777e7f-64bb-7035-70a6-6d8efdaf0e38.png)

# 主な特徴 (ギャラリー表示と情報取得の半自動化)
– 論文を一番特徴的な画像を使って記録することが可能であり, 画像で記憶している場合に便利.
– もちろんメモ機能などもあり, 必要な内容をメモしておくことが可能.
– また, お互いの論文をリンクすることが可能であり, 参照が容易である.
– PDFを1つのファイルあたり, 一般の人は5MB, 学生はファイルの容量制限なしにアップロード可能.

## データベースの半自動化
しかし, これらのデータベースに1つずつ手入力を行うことはかなり億劫なので, その自動化をしたい, そこで利用できるのが, Papntと呼ばれるPythonによるコマンドツールである.

### できること
– `papnt doi`

元記事を表示

OTHERカテゴリの最新記事