- 1. python + BigQuery Storage Write API でデフォルトストリームを使用する
- 2. 宝塚男役トップスターの舞台化粧顔と素化粧顔は、どれぐらい違う!?
- 3. Ubuntuの`python3.12`パッケージには`ensurepip`モジュールが存在しない
- 4. Pythonで画像をPDFに変換する
- 5. 複数のPDFを統合したいときに作ったスクリプト
- 6. Azurite https SSL 証明書の検証エラー
- 7. 右クリックの「送る」メニューに「FFmpegで結合」を追加
- 8. 究極のプログラミングリソース:無料のプログラミングチートシート集
- 9. 【アルゴ式】整数論的アルゴリズム、軽くまとめ
- 10. `pandas.json_normalize([{“a”:{}}])`で生成したDataFrameには`a`列は存在しない
- 11. ラビットチャレンジday4 レポート
- 12. Python を使って MySQL に接続しようとしたところ、いくつかエラーがでたので解決策をメモ
- 13. PyTorchをインストールする際のPythonのバージョンについて
- 14. 【Python】Ruff を使って Python らしいコードを学ぼう【初心者】
- 15. DTSA 5304 データ可視化の基礎
- 16. 【Python】sdf形式を経由してChemDrawの構造式からxyz座標を取得する
- 17. Tensorflowで犬と猫の画像判定をする
- 18. AWS Lambda Layersを自動更新するGitHub Actions
- 19. エクセル操作ができるopenpyxlまとめ
- 20. Pythonのbisectで2分探索
python + BigQuery Storage Write API でデフォルトストリームを使用する
# 背景
– BigQuery Storage Write API でデフォルトストリームを使いたかった(使用言語: python)– が、公式ドキュメントを読んでもデフォルトストリームを使用する場合の具体的な実装方法がわからなかった
– 日本語版公式ドキュメントには[Javaのサンプルコード](https://cloud.google.com/bigquery/docs/write-api-streaming?hl=ja#at-least-once)しかない。
– Githubの[pythonのサンプルコード](https://github.com/googleapis/python-bigquery-storage/tree/main/samples/snippets)も、pendingタイプのストリームを使う場合の実装方法しかサンプルがなかった## ストリームについて
Storage Write APIには「ストリーム」という概念があり、これによって、BigQueryテーブルにデータが書き込まれます。
大きく分けると、以下の種別があります。詳しくは公
宝塚男役トップスターの舞台化粧顔と素化粧顔は、どれぐらい違う!?
# 目次
* はじめに
* 宝塚歌劇団について
* テーマ
* 実行環境
* 学習の流れ
* 実践!
* スクレイピング
* 学習&テスト用データセットの作成
* モデル学習
* 精度の検証
* まとめと考察
* アプリはこちら# はじめに
記事を目に留めて下さり有難うございます。人生で初めてブログなるものを書きました。
**自己紹介**
高校生の時に好きになった初めての贔屓が退団して抜け殻となり、
昨年の月組公演「グレート・ギャツビー」で月城沼に足を取られてヅカオタに返り咲いた宝塚ファンです。以前から機械学習に興味があり、AidemyさんのAIアプリ講座でpythonの基本から勉強した成果をまとめてみました。
プログラミング自体が未経験で、最初は簡単なif文すら怪しい状態でしたが、3か月間でここまでできるようになった!という軌跡を見て頂けたら嬉しいです。# 宝塚歌劇団(来年は創立110周年!!)について
宝塚歌劇団は1914年に結成された、未婚の女性のみで構成される歌劇団花・月・雪・星・宙の5組と、スペシャリストで構成される専
Ubuntuの`python3.12`パッケージには`ensurepip`モジュールが存在しない
# 環境
* Ubuntu 24.04以下のコマンドはdockerのコンテナ内で実行しています。
“`
$ docker run -it ubuntu:24.04 /bin/bash
“`“`
# uname -a
Linux cf81d231b59a 5.15.153.1-microsoft-standard-WSL2 #1 SMP Fri Mar 29 23:14:13 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux# cat /etc/os-release
PRETTY_NAME=”Ubuntu 24.04 LTS”
NAME=”Ubuntu”
VERSION_ID=”24.04″
VERSION=”24.04 LTS (Noble Numbat)”
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL=”https://www.ubuntu.com/”
SUPPORT_URL=”https://help.ubuntu.com/”
BUG_REPORT_URL=”h
Pythonで画像をPDFに変換する
画像をPDFに変換する主な理由の一つは、共有や転送を容易にすることです。また、複数の画像を1つのPDFファイルにまとめることで、ファイル管理を簡素化することもできます。この記事では、サードパーティライブラリ[Spire.PDF for Python](https://www.e-iceblue.com/Introduce/pdf-for-python.html)を使って**Pythonで画像をPDFファイルに変換する**方法を紹介します。
## Python PDFライブラリの紹介
[**Spire.PDF for Python**](https://www.e-iceblue.com/Introduce/pdf-for-python.html)は、PythonアプリケーションでPDFファイルを扱いたい開発者のための多機能ツールです。PDFの作成、操作、変換のための幅広い機能を提供し、単純なPDF作成から複雑な文書処理タスクまで、様々なユースケースに適しています。Python PDFライブラリをインストールするには、以下のpipコマンドを実行します:
> **`pip insta
複数のPDFを統合したいときに作ったスクリプト
## はじめに
仕事や学業で複数のPDFファイルを1つに統合する必要が出てくることはよくあります。この記事では、PyQt5を使って作成した使いやすいGUIアプリケーションを紹介します。このアプリケーションを使用すれば、複数のPDFファイルを簡単に選択し、ドラッグ&ドロップで順序を変更し、ワンクリックで統合することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34295/ba109593-4d08-6d2c-db09-d8107aa42d80.png)
## GUIアプリケーションの概要
このアプリケーションには以下の機能があります:
1. PDFファイルの追加(複数選択可能)
2. 選択したPDFファイルの削除
3. ドラッグ&ドロップによるPDFファイルの順序変更
4. ワンクリックでのPDF結合と保存
5. プログレスバーによる結合進捗の表示## 必要なライブラリのインストール
まず、必要なライブラリをインストールしましょう。
“`bash
pip
Azurite https SSL 証明書の検証エラー
# Azurite https SSL 証明書の検証エラー
ローカルとAzure上で、Azure Storageに接続する際、同じコードにしたいので
DefaultAzureCredentialでAzuriteに接続したいと思った“`test.py
config = os.environcredential = DefaultAzureCredential()
storage_account_url = config[“STORAGE_ACCOUNT_URL”]
blob_service = BlobServiceClient(storage_account_url, credential)
containers = blob_service.list_containers(include_metadata=True)
for container in containers:
logging.info(f”{container[‘name’]} {container[‘metadata’]}”)
“`“`
STORAGE_ACCOUNT_URL=http
右クリックの「送る」メニューに「FFmpegで結合」を追加
## 概要
FFmpegとPythonがインストールされていれば、`SendTo`ディレクトリにスクリプトファイルを1つ配置するだけで、エクスプローラーの「送る」に「FFmpegで結合」メニューを作れます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29682/f2a3efca-f241-ce90-c6b3-ed1c355634c2.png)
**万一プログラムの不具合で大事なファイルを失ってしまっても責任はおえません。すいません。**
## 実行環境
今回稼働確認を取った環境です。厳密にこのバージョンでなくてもある程度動くと思います。メモ程度に。
* Windows 11 Home
* Python 3.10.1
* FFmpeg 4.4.1## 前提条件
* Pythonがインストールされていること
* コマンドプロンプトで`python`と打つとPythonが起動すること
* FFmpegがインストールされていること
* コマンドプロンプトで`
究極のプログラミングリソース:無料のプログラミングチートシート集
プログラミングの世界では、チートシートはすべての開発者の秘密兵器です。初心者から経験豊富なプログラマーまで、これらのチートシートは必要な情報を迅速に見つけ、生産性を向上させるのに役立ちます。今日は、PythonからDockerまでのさまざまなプログラミング言語とツールをカバーする究極のプログラミングチートシート集をまとめました。ぜひブックマークしてください!
## 1. Python
Pythonは、さまざまなアプリケーションに適した広く使用されている高級プログラミング言語です。このチートシートには、Pythonの基本構文、データ構造、および一般的なライブラリが含まれています。
[Pythonチートシート](http://cheatsheets.zip/python)## 2. Git
Gitは現在最も人気のあるバージョン管理システムです。コードのコミット、ブランチ管理、コンフリクトの解決など、このチートシートがあれば簡単に対応できます。
[Gitチートシート](http://cheatography.com/itsellej/cheat-sheets/git-commands)
【アルゴ式】整数論的アルゴリズム、軽くまとめ
# 1. この記事は何?
アルゴ式の整数論的アルゴリズムの問題が一通り解き終わったので、忘備録として基本的な中身をまとめておこうと思います。本当にアルゴリズムとその実装コードをさらっとまとめて、ときたま自分の失敗例を振り返る結構個人的なものなので、もしちゃんとアルゴリズムを勉強したいという方はアルゴ式に取り組まれることをお勧めします。
# 2. 素数判定法
素数はご存じの通り、1とその数以外では割り切れない数のことです。
整数Nが素数かどうかは、√Nまでの数で割り切れるかどうかを判定すればよいです。:::note info
計算量は、Nすべてを計算するか、√Nまでの計算でいいかでかなり計算量が変わります。
N=10000のとき、そのままであれば一万回分処理をしなければなりませんが、√Nでいいのであれば僅か100回で計算結果が出ます。
グラフで見ると、よりその差が如実に分かります。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2826164/d124f016-3270-417
`pandas.json_normalize([{“a”:{}}])`で生成したDataFrameには`a`列は存在しない
# 環境
* Python 3.12.4
* pandas 2.2.2# はじめに
ネストされているdictのlistをpandas.DataFrameで扱うため、[pandas.json_normalize](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.json_normalize.html)を使ってpandas.DataFrameを生成しています。“`
In [104]: data=[{“a”:{“x”:1,”y”:2}, “b”:”alice”}, {“a”:{“x”:4}, “b”:”bob”}]In [108]: df = pandas.json_normalize(data)
In [109]: df
Out[109]:
b a.x a.y
0 alice 1 2.0
1 bob 4 NaN“`
# ハマったこと
変数`data2`のキー`a`の値は空のdictです。`pandas.json_normalize`で生成
ラビットチャレンジday4 レポート
# Section1:強化学習
■強化学習とは
・長期的に報酬を最大化できるように環境のなかで行動を選択できるエージェントを作ることを目標とする機械学習の一分野
→行動の結果として与えられる利益(報酬)をもとに、行動を決定する原理を改善していく仕組み
・強化学習のイメージ
![スクリーンショット 2024-07-10 19.25.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817732/0a4aebb5-5c56-ad59-db22-b4e16accbc7c.png)
・エージェントは行動する主体のこと
・エージェントは、なんらかの環境に置かれ、環境の「状態」を観測し、それに基づき「行動」を行う。その結果として、環境の状態が変化し、エージェントは環境から「報酬」を受け取ると同時に、「新しい状態」を観測する。■強化学習の応用例
・マーケティングの場合を考えると、環境、エージェント、行動、報酬は以下のように考えられる。
環境:会社の販売促進部
エージェント:プロフィールと購入履歴に基づいて、キ
Python を使って MySQL に接続しようとしたところ、いくつかエラーがでたので解決策をメモ
## はいじめに
pythonをつかってmysqlに接続しようとしたところ、少しつまずいたので、メモがてら記事を書いています。### 今回解決できたエラー
– *mysql.connector.errors.DatabaseError: 2005 (HY000): Unknown MySQL server host*
– *mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user*### 今回の環境
– ラズパイで dokcer のコンテナ使用(mysql server 側)
– 同じネットワーク内のメインPCから接続する(Python側)
## 本文
### python側の修正
port番号の指定をhostと分けて指定する必要があった。– 誤り
“`python
import mysql.connectordef conn_db():
conn = mysql.connector.connect(
host =
PyTorchをインストールする際のPythonのバージョンについて
PyTorchをインストールしようとした際にうまくできなかったので記事にしました。
もともと仮想環境内のPythonのバージョンが3.8くらいでその状態で仮想環境内にPyTorchをインストールしようとしたらうまくいきませんでした。
結論として、私の場合はPythonのバージョンをアップデートしたらうまくインストールできました。
初めにコマンドプロンプトなどで仮想環境内のPythonのバージョンを確認しましょう
コマンドプロンプトではPython -Vで確認できます。私の場合はこのバージョンが3.8とかでした。
次にもしPythonの新しいバージョンをダウンロードしていなければ下記のURLからダウンロードしましょう。
私は3.11.7をダウンロードしました。URL : https://www.python.org/downloads/
最後に仮想環境内のPythonのバージョンをアップデートしましょう。
ダウンロードしただけでは仮想環境内のPythonのバージョンは変わりません。
仮想環境内に入り次のコマンドを打ちましょう
py -3.11 -m venv
【Python】Ruff を使って Python らしいコードを学ぼう【初心者】
# はじめに
ナイトウ([@engineer_naito](https://twitter.com/engineer_naito))と申します。
最近 ChatGPT に頼りっぱなしです。
手でコードが書けないことに気づきました。一番経験のある言語が Python だったので、Python を自分の手で書けるように勉強をしています。
勉強には競技プログラミングでお馴染みの AtCoder の過去問を選びました。
Novisteps という非公式の過去問学習記録サイトを併せて利用しています。
https://atcoder-novisteps.vercel.app/AtCoder ではブラウザ上にエディタがあるのでそれを利用することもできますが、慣れている VS Code を使います。
linter や formatter などの静的解析ツールなしでのコーディングが辛かったので今回は Ruff も使います。この Ruff が Python 学習に非常に効果的だと感じのでその理由を書きます。
まずは Ruff について。# Ruff とは
公式ドキュメント
https
DTSA 5304 データ可視化の基礎
学習した内容を深めるために、アウトプットするのが一番良い手段です。もし他人の参考にもなれば、最高です。
そのため、こちらのコース[DTSA 5304 Fundamentals of Data Visualization](https://www.colorado.edu/program/data-science/coursera/curriculum/dtsa5304)から重要なポイントを抜粋し、自分なりの解釈を加えてこちらに残しています。# 全体概要
このコースでは、主に以下の六つを紹介しています。
1. デザインの基本
2. ユーザーのニーズ
3. 評価
【Python】sdf形式を経由してChemDrawの構造式からxyz座標を取得する
本稿では化学構造式エディタ「ChemDraw」上で描画された複数の構造式を一括でxyzデータに変換する方法の例を紹介します。
“`py:動作環境
Python 3.9
rdkit 2024.03.3(2024年現在最新の2024系が望ましい)
“`* * *
ここでは、複数の分子の構造式を含むChemDrawファイルが存在する前提で、
1. ChemDrawからsdf形式のファイルを出力
2. sdfファイルをPythonスクリプトで処理
([**RDKit**](https://www.rdkit.org/docs/)を利用して sdf > smiles > xyz に変換)という順序で、各分子のxyz形式の三次元座標データを取得します。
sdfファイルに出力された時点で分子の3次元骨格は得られるのですが、結合長や結合角が正確ではない上に、水素原子を補完する必要があります。これらの点を自動で解決するスクリプトを作成するのが今回の目的です。
# ChemDrawからsdf形式のファイルを出力
描画されている構造式は例えば以下のようなものです。
![cyc
Tensorflowで犬と猫の画像判定をする
**目次**
- はじめに
- 本記事の概要
- 作成したプログラム
- Googleドライブから画像を読み込めるようにする
- モジュールのインポート
- ハイパーパラメータの設定
- 乱数を固定する
- 画像を読み込む
- 画像を加工する
- 正解ラベルを付与する
- データを結合しランダムに並び替える
- データをTensorflowの学習に適した形に変更する
- モデルの学習をし、エポックごとの予測精度を取得します
- 予測精度をグラフで可視化する
- おわりに
****
**1
AWS Lambda Layersを自動更新するGitHub Actions
# はじめに
あの若干面倒なAWS LambdaのLayersをGithubActionsで自動更新するプロセスを組みましたので参考にしていただければ!!(備忘録も兼ねて)
また、本記事内ではアクセスキーとシークレットキーを使った認証ではなく、OIDC認証で実施していますので以下の記事を参考にしていただければ問題ないかと思います。
https://qiita.com/frei_aqua/items/c284a1249dac84c881cb
# 前提
– Python
– Pipenv環境
– Lambda関数を作成済み
– Layersも紐づけ済み(設定オプション的に紐づけもコマンドで行けそうか?要検証)# 本体
お急ぎの方もいるかと思いますので先にymlを貼っておきます。
“`yaml
name: Layer Updateon:
push:
branches:
– main
paths:
– “Pipfile”env:
REGION_NAME: your-region
FUNCTION_NAME: 対象のf
エクセル操作ができるopenpyxlまとめ
エクセルを操作できるopenpyxlについてまとめました。
### openpyxlインポート
“`
import openpyxl
“`### ブックを作成
“`
wb = openpyxl.Workbook()
“`
### シートを作成
“`
ws = wb.create_sheet(title=’hoge’)
“`### シートの取得
“`
ws = wb[‘hoge’]
“`
### A1セルの取得
“`
cell = ws[‘A1’]
“`### 値の代入
“`
cell.value = “テスト”
“`
### ファイルの保存
“`
wb.save(“input_file.xlsx”)
“`
Pythonのbisectで2分探索
## はじめに
この記事では、Pythonの標準ライブラリである`bisect`を用いて、効率的に2分探索を行う方法について紹介します。
## bisectライブラリの基本
`bisect`ライブラリは、ソートされたリストに対して指定した値の挿入ポイントを2分探索によって見つけるために使用されます。以下のコード例は、その基本的な使い方を示しています。
“`python
import bisecttmp = [2, 4, 6, 8]
index = bisect.bisect(tmp, 5)
print(index) # 出力: 2
“`この例では、リスト `[2, 4, 6, 8]` の中で、値 `5` を挿入するべき位置を返します。結果は `2` で、リストを `[2, 4, 5, 6, 8]` にすることができます。
## bisect_left と bisect_right
`bisect_left` と `bisect_right` は、同じ値がリスト内に存在する場合に、その値の左側または右側のインデックスを返します。
“`python
tmp