Python関連のことを調べてみた2023年07月31日

Python関連のことを調べてみた2023年07月31日
目次

python venvの仮想環境で構築する顔認証(face_recognition)windows環境

### ■ 概要
・Windows11。
・pythonの仮想環境venvで構築。
・モジュールは、opencv-python、face_recognition、configを使用。
・外部カメラ使用(USB WEBカメラ)
・物体検知で、ディレクトリ(image_jp)内にある画像と一致したら、パスワードを入力する。

### ■ 完成画面
![スクリーンショット (762).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/ca843db6-6639-c6eb-12b2-154bae65a6dd.png)
### ■ ディレクトリ構成
![スクリーンショット (756).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/8f1ffc5c-b4e2-5997-14a9-5231775eb14b.png)
./app/以下
![スクリーンショット (757).png](https://qiita-im

元記事を表示

【AtCoder】現役中学生がPythonで青になったから書いた記事

# まえがき
こんにちは、Halcyonです。
先日開催された[AGC063](https://atcoder.jp/contests/agc063)にて青色コーダーに昇格しました。
![IMG_2012.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3359390/860a7782-4409-faf5-b63b-f02ddbdc189d.jpeg)
AtCoderの社長である[chokudaiさんのブログ](https://chokudai.hatenablog.com/entry/2019/02/11/155904)によると、青色コーダーのレベルは
>* 学生時代を競技プログラミングに注ぎ込んでも、ここにたどり着けない学生は大量にいる
>* 8割以上のIT企業において、アルゴリズム力はカンスト(一部企業においては、少し持て余してしまう)

という感じらしいので、中2であるこの段階で青に到達できたのは素直ににめちゃくちゃ嬉しいです。
この記事では、

元記事を表示

ニートの戯言(1)(ChatGPTにヌードル亭麺吉を学ばせたら壊れた)

### はじめに
先日書いた記事では、作成した[夢分析サイト](http://henna-yume.tokyo)の制作過程でのトラブルシュート等を書こうとしていました。

https://qiita.com/HenNayume2023/items/91c1414b135a303dbc7c

ですが、この環境構成(Cakephp4×さくらレンタルサーバ×MySQL×Bootstrap×Git)の情報は無限にありそうだし、もうトラブルシュートの内容覚えてないので保留しようと思ってます。

### この記事について
昨晩、ふとChatGPTになにか学習させたいなと思い、ヌードル亭麵吉をfinetuningさせることにしました。
(ヌードル亭麵吉はググればすぐに出てきます。)
相当少ない学習量で回したのでなんとも言えないのですが、結果としては、多分壊れました。
この記事は、壊れた旨の報告と、正直よくわかってないので誰か助けてくださいというアラートです。

### 学習内容
※壊れ方を見たい方は「やりとり」まで飛んでください。
ヌードル亭麺吉のコピペは[こちらのサイト](http://jiroc

元記事を表示

JythonでPythonとJava間での値の受け渡し

Javaにある値をPythonに渡す方法と、Pythonにある値をJavaに持ってくる方法です。
Pythonの型で値を渡すためのPyObjectの生成方法も紹介します。

# PythonInterpreterでの受け渡し

### JavaからPythonに値を渡す

“`java:
public static void main(String[] args) {
StringWriter writer = new StringWriter();
try(PythonInterpreter pyInterp = new PythonInterpreter()) {
pyInterp.setOut(writer);

PyInteger num = new PyInteger(5);
pyInterp.set(“num”, num);
pyInterp.exec(“print(num)”);
pyInterp.exec(“print(type(num))”);

System.out.println(writer);
}
}
`

元記事を表示

ABC_312解説

# ABC_312解説
## この記事は何
この記事は自らの復習用としてatcoder beginner contestを開設したものになります。一旦はC問題まで解説していますが、後程D問題以降も解説していければと思います。
## 問題の解説
[問題のリンクはこちら](https://atcoder.jp/contests/abc312/tasks)
### A問題
[A問題の公式解説のリンクはこちら](https://atcoder.jp/contests/abc312/tasks/abc312_a/editorial)
A問題はいつも通り言われたことを愚直に表現すればACが出るはず!!自分のコードはこちら。
“`python:abc_312_a.py
S = input()
condition = [‘ACE’,’BDF’,’CEG’,’DFA’,’EGB’,’FAC’,’GBD’]
ans = ‘Yes’ if S in condition else ‘No’
print(ans)
“`
### B問題
[B問題の公式解説リンクはこちら](https://atcoder.jp

元記事を表示

Stable Diffusionの最新モデル「SDXL 1.0」と過去モデルの生成画像をひたすら比較して進化を実感してみた

[Supership](https://supership.jp/)の名畑です。[週刊少年ジャンプ](https://www.shonenjump.com/j/)34号に掲載された[小園江ナツキ](https://twitter.com/osonoeosonoe)先生の読切漫画「[殺陣ロール](https://togetter.com/li/2192828)」好きです。

## はじめに

7月27日についに[Stable Diffusion](https://ja.stability.ai/stable-diffusion)の新モデル**SDXL**の**1.0**がリリースされました。当初の予定よりは遅れたものの、**0.9**がリリースされた6月23日から1月程度での高速リリースです。

**SDXL 0.9**の際に「[Stable Diffusionの最新モデルSDXL 0.9と過去モデルで生成画像を比較してみた](https://qiita.com/nabata/items/1b1fbc362d71dc76237b)」という記事で**Stable Diffusion**にお

元記事を表示

ChatGPTのプロンプトを効率的に作成・管理したい!

# プロンプトの作成・管理のためのPythonライブラリ: Promptex

Generative Pre-trained Transformer(GPT)モデルの回答品質は入力プロンプトに依存しています。
プロンプトは、モデルに何を生成するべきかを指示する重要な手がかりであり、プロンプトの更新や管理は日々の中でも繰り返し発生することや、業務として複数人でプロンプトを運用するケースなどもあります。

そこで、今回は[Promptex](https://github.com/rinov/promptex)というプロンプトを効率的に管理するためのPythonライブラリを作成し、これについて少し紹介をさせていただきます。

URL: https://github.com/rinov/promptex

## 主な機能

**Promptex**は以下の機能にフォーカスしています。

1. **プロンプト管理**: ニーズに合わせたプロンプトの設定と取得の方法を提供します。
2. **データ統合**: データパイプラインにシームレスに統合するための多様なファイル形式(JSON, JSON S

元記事を表示

Xarrayによるモダンなデータ解析(3) DataArray編

# はじめに
[Xarray](https://docs.xarray.dev/en/stable/index.html)は大気海洋分野のデータ解析に用いるPythonパッケージのデファクトスタンダートとなっている。しかし、日本語の情報があまりまとまっておらず、誰もが十分に使いこなせているわけではない。

以前「[PythonでnetCDFを読み込む際のnetCDF4とxarrayの違い](https://qiita.com/wm-ytakano/items/5a5962d440887e54e080)」という記事を書いたが、特にnetCDF4-pythonパッケージから移行した人は昔ながらの最低限の機能を使って書いており、最近の便利な機能を知らないことも多いと思われる。

そこで、以下の3部構成で”モダンな”データ解析方法について解説する。
1. [概要編](https://qiita.com/drafts/586960f08c8b9fc30542/edit)
2. [Dataset編](https://qiita.com/wm-ytakano/items/ddeecf2b43a4d1

元記事を表示

Xarrayによるモダンなデータ解析(2) Dataset編

# はじめに
[Xarray](https://docs.xarray.dev/en/stable/index.html)は大気海洋分野のデータ解析に用いるPythonパッケージのデファクトスタンダートとなっている。しかし、日本語の情報があまりまとまっておらず、誰もが十分に使いこなせているわけではない。

以前「[PythonでnetCDFを読み込む際のnetCDF4とxarrayの違い](https://qiita.com/wm-ytakano/items/5a5962d440887e54e080)」という記事を書いたが、特にnetCDF4-pythonパッケージから移行した人は昔ながらの最低限の機能を使って書いており、最近の便利な機能を知らないことも多いと思われる。

そこで、以下の3部構成で”モダンな”データ解析方法について解説する。
1. [概要編](https://qiita.com/wm-ytakano/items/586960f08c8b9fc30542)
2. Dataset編 (本記事)
3. [DataArray編](https://qiita.com/wm-yta

元記事を表示

Xarrayによるモダンなデータ解析(1) 概要編

# はじめに
[Xarray](https://docs.xarray.dev/en/stable/index.html)は大気海洋分野のデータ解析に用いるPythonパッケージのデファクトスタンダートとなっている。しかし、日本語の情報があまりまとまっておらず、誰もが十分に使いこなせているわけではない。

以前「[PythonでnetCDFを読み込む際のnetCDF4とxarrayの違い](https://qiita.com/wm-ytakano/items/5a5962d440887e54e080)」という記事を書いたが、特にnetCDF4-pythonパッケージから移行した人は昔ながらの最低限の機能を使って書いており、最近の便利な機能を知らないことも多いと思われる。

そこで、以下の3部構成で”モダンな”データ解析方法について解説する。
1. 概要編 (本記事)
2. [Dataset編](https://qiita.com/wm-ytakano/items/ddeecf2b43a4d1b200f2)
3. [DataArray編](https://qiita.com/wm-yta

元記事を表示

Data Engineering Geeks #3 Snowflakeハンズオンセミナー参加レポート

## どういうイベントなの

DATUM STUDIO株式会社がデータエンジニア(やデータエンジニアを目指す人)向けに開催しているイベントシリーズ、Data Engineering Geeksの第3回!…が先日7/30に開催されたので、参加してきました。
今回はSnowpark for PythonとdbtとApache Airflowを組み合わせてMLパイプラインを作ろうというSnowflakeハンズオンセミナーでした。
このハンズオンは2023年2月のSNOWDAY JAPANでも開催されていて、そのときも満席御礼の大人気セッションだったのですが、今回は内容がさらにブラッシュアップされていました!

【申込終了】DATUM STUDIO 主催 Snowflake hands-on【無料・対面開催】 ー Snowpark for Python、dbt、AirflowでつくるMLパイプライン ー

当日は、カラーバーヘッドなデータエンジニアの梶谷さんがハンズオンガイドに沿ってライブコーディングして、菱沼さんが実況と解説、サポートスタッフとして待機していた他のデータエンジニアの皆様が参加者一人ひとりの質問やトラブルをバシバシ解決する、

元記事を表示

Qiita の投稿規定

**Markdown 記法についてのページもちゃんと用意されているのに**,多くの人は無頓着に投稿されるようです。

https://qiita.com/Qiita/items/c686397e4a0f4f11683d

余計なお世話ですが,以下の2項目だけを特にお願いします。

![スクリーンショット 2023-07-30 23.29.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611739/5fd44646-b3eb-e709-8c67-85f3a46c48d7.png)

![スクリーンショット 2023-07-30 23.27.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611739/d5c1e656-1b0f-29d6-5328-b5e6ee8d0ac4.png)

元記事を表示

ログをデコレーターで記述する

関数内にログをベタベタ書くと見づらいのでデコレータで
外に吐き出しました。(結果的に一層長くなりましたが…)
もっと短く書けないか考え中です。

以下、足し算・引き算の例です。

“` python
import logging
import sys
import functools

class CalculatorLogger:
def __init__(self, logger_name):
self.logger = logging.getLogger(logger_name)
self.logger.setLevel(logging.INFO)

# ログが重複しないように、既存のハンドラーがあれば削除
if self.logger.hasHandlers():
self.logger.handlers.clear()

formatter = logging.Formatter(‘%(asctime)s – %(name)s – %(levelname)

元記事を表示

【Python】CSVファイル名に記載のある日付を新しい列として追加してみた(その3)

前提

  • 環境:Python 3.11.4
  • 細かいパスの指定は省略

今回のゴール

‘sample_data_2023-07-23.csv’や’2023-07-23_sample_data.csv’といった、任意の場所にある’yyyy-mm-dd’を抽出し、2列目にdateという列として、追加する処理を複数ファイルまとめて実行したい。
前回の記事ではfilepath1やfilepath2といった風にファイル名を手動で指定しましたが、10個のファイルをまとめて処理を行いたいという場合もあると思うので、複数ファイルに対して、まとめて処理を行いたい。

“`python:sample.py
>>> import pandas as pd
>>> filename1 = ‘sample_data_2023-07-23.csv’
>>> filename2 = ‘2023-07-24_sample_data.csv’
>>> filename3 = ‘2023-07-25_data.csv’
>>> df

元記事を表示

【Python】CSVファイル名に記載のある日付を新しい列として追加してみた(その2)

前提

  • 環境:Python 3.11.4
  • 細かいパスの指定は省略

今回のゴール

‘sample_data_2023-07-23.csv’や’2023-07-23_sample_data.csv’といった、任意の場所にある’yyyy-mm-dd’を抽出し、2列目にdateという列として、追加したい。

“`python:sample.py
>>> import pandas as pd
>>> filename1 = ‘sample_data_2023-07-23.csv’
>>> filename2 = ‘2023-07-24_sample_data.csv’
>>> df1 = pd.read_csv(filename1)
>>> df2 = pd.read_csv(filename2)
>>> df1.head()
id
0 1
1 2
2 3
3 4
4 5
>>> df2.head()
id
0 1
1 2
2 3
3 4
4 5

元記事を表示

【Python】CSVファイル名に記載のある日付を新しい列として追加してみた(その1)

前提

  • 環境:Python 3.11.4
  • 細かいパスの指定は省略

今回のゴール

‘2023-07-23_data.csv’という名のCSVファイルの2列目にdateという列を追加したい。

“`python:sample.py
#’2023-07-23_data.csv’の中身
>>> import pandas as pd
>>> df = pd.read_csv(‘2023-07-23_data.csv’)
>>> df.head()
id
0 1
1 2
2 3
3 4
4 5
“`

“`python:sample.py
#完成系
#’2023-07-23_data.csv’の「2023-07-23」を抽出して、追加したい
id date
0 1 2023-07-23
1 2 2023-07-23
2 3 2023-07-23
3 4 2023-07-23
4 5 2023-07-23
5

元記事を表示

ChatGPTのリクエストを並列化して時短しよう!

# はじめに
最近、OpenAIのAPIを使って開発を行うことが多いので、今まで使ってきて便利だったものをまとめようと思います。~~とりあえず第一弾~~(二弾があるかは不明ですが)として、APIリクエストの並列化の記事を作成しました!また、役立つ記事も添付させていただいてます。ぜひ読んでいってください:eyes:

:::note info
**こんな方におすすめ**
– テストケースを1件ずつ実行している方
– トークン数やリクエスト数の上限を超えて怒られた経験のある方
:::
例として、簡単なQ&AをLangChain実装します。

# 1. 初期設定 & 準備
以下のようなテーブル形式を想定します。質問に対して各データを参照して答えるプログラムを作ります!

下のプログラムでデータの読み込み、モデル選択、max_tok

元記事を表示

injector(DIコンテナ)の隠蔽

[前々回](https://qiita.com/odxdoge/items/6031419f9461a8775d98)と[前回](https://qiita.com/odxdoge/items/2d1924e7d4fbe92e9969)の続きです。
クラスの依存関係の管理方法について解説しました。
injectorの実用的なテクニックについて深掘りします。

## アーキテクチャ設計と実装

今までのコードでDIの考え方について解説してきました。また、その実装をライブラリを使って実現する方法についても示してきました。このようにアプリケーションのアーキテクチャを設計し、決定した場合、その後実装を行うはずです。
しかし、実際にAWS Lambdaで実装すると、ひとつ思うことがあります。
lambda handlerの最初にinjectorインスタンスを作成し、設定を行う必要があり、複数のLambdaを運用すると重複したコードになります。

これにはいくつかの問題が挙げられます。
– 関係するすべてのLambda実装者がinjectorについて理解している必要があります。
– injecto

元記事を表示

今更ながらRuby on Rails?

少し方向転換を考えている

# 事情
 職場の異動の話しが出てきた。これまでSTREAMLIT+FASTAPI+REACTで、アプリ開発を進めてきているが、やはり立ち上げの遅さを感じている。それよりも、やはりStreamlitで覚えたスキルは、あまり使い物にはならない気がする。
 正直、Redmineを触っていても次の展開が見えず、調べてみるとopen projectと言うのがあるではないか・・・

https://www.itreview.jp/compares/openproject_vs_redmine_vs_zube?category_id=project-management

 このopen projectはredmineの開発プロジェクトから派生したものらしく、開発言語はやはりRuby on Railsだと言う。それだけでなくGitHub,GitLabもRubyであり、OSSの基盤ツールとして開発するうえで、実はRubyは強力な言語なのではないかなと思っている。
 
# Ruby on Rails

Rubyは多くの大規模で有名なWebアプリケーションやサービスで採用さ

元記事を表示

うるう年計算の疑問

## うるう年(閏年)とは

**うるう年**(閏年)は1年が366日ある年です。そうでない年は**平年**です。

### グレゴリオ暦によるルール

1. 西暦年が4で割り切れる年は(原則として)閏年。
2. ただし、西暦年が100で割り切れる年は(原則として)平年。
3. ただし、西暦年が400で割り切れる年は必ず閏年。

## うるう年を計算する関数について

Pythonのcalendarモジュールの`isleap()`関数は、下記のように定義されています。

“`py
def isleap(year):
“””Return True for leap years, False for non-leap years.”””
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
“`

さて、ここで2つの疑問がわきました。

* なぜ、ルールはわかりにくく例外を重ねる書き方をしているのか?
* なぜ、Pythonのコードはルールの順番通りに書いてあるのか?

それぞれ考察してみましょう。

元記事を表示

OTHERカテゴリの最新記事