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

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

好きなクローラ発表ドラゴン (Scrapy + Playwright)

好きなクローラ発表ドラゴン
![好きな〇〇発表ドラゴン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540865/13dcfbd4-044b-f300-cae4-213bb30ef770.png)

# 目次
1. 諸言
2. なぜ好きなのか
3. クローラの辛みに効くScrapy+Playwright
4. 結言

# 諸言
初めまして!株式会社 Panta RheiのCEOです。かずさんと呼ばれているので以後そんな感じでお呼びください。Xのハンネはpandasista(@sotsogprinciple)です。
好きなクローラを発表します。

scrapy + Playwright です。

好き好き大好き。

# なぜ好きなのか
## Scrapyが良い
– ORM(SQLAlchemy)を標準装備しており簡単DB接続
– データフローを構築しやすくパブリッククラウドと相性が良い
– データ取得を自動化しやすい
– 多種類のW

元記事を表示

[メモ] pytest 7.2.2を使用しているとVSCodeのPytestプラグインがテストを見つけてくれない

https://github.com/microsoft/vscode-python/issues/23773

## 現象
`pytest 7.2.2`を使用しているとVSCode起動時にPytestプラグインがテスト検索に失敗する。

バージョンを確認すると`7.2.2`だった。
“`shell
$ pip show pytest
Name: pytest
Version: 7.2.2
“`

## 解決方法

pytestのバージョンを最新版に更新し、VSCodeを再起動する。

“`shell
$ pip install pytest –upgrade
$ pip show pytest
Name: pytest
Version: 8.2.2
“`

元記事を表示

MySQLで爆速!簡単にランダムなテストデータを生成する方法

データベースのテストには、さまざまな種類のデータが必要です。ここでは、MySQLでランダムなテストデータを生成する簡単な方法をいくつか紹介します。

# 1. ランダムな文字列を生成する
まず、ランダムな文字列を生成する方法です。以下のクエリを使用すると、ランダムな文字列を取得できます。

“`sql
SELECT SUBSTRING(MD5(RAND()), 1, 10) AS random_string;
“`

# 2. ランダムな整数を生成する
次に、特定の範囲内のランダムな整数を生成する方法です。RAND()関数を使用します。
“`sql
SELECT FLOOR(RAND() * 100) AS random_number;
“`

# 3. ランダムなデータを含むテーブルを作成する
例えば、ユーザー情報を含むテーブルを作成し、ランダムなデータで埋める場合は以下のようにします。

まず、テーブルを作成します。
“`sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VAR

元記事を表示

`pandas.DataFrame.to_json`はスラッシュをエスケープして出力する

# 環境
* Python 3.12.1
* pandas 2.2.2

# はじめに
[pandas.DataFrame.to_json()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_json.html#pandas.DataFrame.to_json)は、スラッシュ`/`を`\\`でエスケープして出力します。

“`
In [6]: import pandas as pd

In [12]: data = [{“id”:”alice”, “url”:”https://example.com”}]

In [16]: df = pd.DataFrame(data)

In [17]: df.to_json()
Out[17]: ‘{“id”:{“0″:”alice”},”url”:{“0″:”https:\\/\\/example.com”}}’
“`

しかし、`json.dumps`ではスラッシュをエスケープせずに出力します。

“`
In [15]:

元記事を表示

【YOLOとtiling処理の活用】Pythonで高精度な人物検知

Pythonの人物検知について学習するにあたり、人物検知の精度をどうしたら高められるかが気になりtiling処理にたどり着きました。

人物検知で有名?なYOLO(v8)では、YOLOに渡す画像のサイズは640×640に固定されています。どれだけ高精度なカメラで撮影してもサイズが固定されているために精度を上げるのには限界があります。そこでtiling処理の出番です。

### 1-1 人物属性の基本概念
#### 1-1-1 人物属性の定義
人物属性とは、個人を識別し、特徴を把握するための情報のことです。具体的には、年齢、性別、身長、体重、髪の色など、個々の特徴を示すデータが含まれます。人物属性の正確な定義は、利用目的や分野によって異なる場合がありますが、基本的には個人のアイデンティティを特定し、さまざまな分析や処理に用いられます。

#### 1-1-2 人物属性の種類
人物属性には多岐にわたる種類があります。主なものとしては、年齢、性別、民族、体型、服装、髪型、顔の特徴などが挙げられます。これらの属性は、人物の特定だけでなく、行動パターンの分析やマーケティング戦略の立案な

元記事を表示

Perplexity APIを叩いて睡眠のアドバイスをしてもらいました

# はじめに
こんにちは!
2024年4月に新卒で入社した、**むら**です。
大学院ではウェアラブルデバイスから機械学習で睡眠に関する変数の予測モデルを研究で作っていました。研究室では様々なウェアラブルデバイスに触れていたことから、今でも寝るときには3つのデバイスをつけて寝ています:sheep:

突然ですが、皆さんはしっかりと睡眠が取れているでしょうか?成人の睡眠時間は7時間から9時間が推奨されています。また、ある研究によると6時間未満と9時間以上の睡眠を取る人は、6時間~8時間睡眠の人に比べて心血管疾患のリスクが高くなると報告されています。しかし、適切な睡眠時間には個人差があります(例えば、短時間睡眠で十分に休息が取れるショートスリーパーなど)。

そうなると、**自分が**よりよい睡眠を取るためにはどうしたらいいのかアドバイスが欲しくなりませんか?睡眠データを渡したらそれに応じたアドバイスを返してくれたらとても便利ではないでしょうか?

ということで、今回はウェアラブルデバイスのFitbitから得られた睡眠データを生成AIに渡して睡眠の改善点やアドバイスをもらうシステムを作って

元記事を表示

AAAI学会(2020~2024)の研究トレンドを分析してみる

# 概要
AIトップカンファレンスの一つ、**[AAAI(Association for the Advancement of Artificial Intelligence)](https://aaai.org/conference/aaai/)** の研究トレンドを論文タイトルから分析してみます。
(時期的にCVPRで試したかったですが、後述のAPIで2024年分が取得できなかったので、データが揃っていたAAAIを選定しています)
2020~2024年の5年間を対象に分析した結果、
– language model や diffusion model などの生成モデル系
– federated learning
– point cloud
– backdoor attack

などに関する研究が増加傾向にあるようです。

# はじめに
近年、様々な分野で研究開発が急速に発展しており、技術トレンドのキャッチアップが難しくなってきています。
そこで今回は、論文タイトルを自然言語処理を用いて分析し、効率的なトレンド推定を図ります。
Deep Learningは使わず、形態素

元記事を表示

同人ゲーム(のアレのシーン)にオートモードがないときに悲しみを背負わないために

# オートモード欲しい!!
昨今は多くの素晴らしい同人ゲームが存在しますが、そのすべてにオートモードが実装されているわけではありません。オートモードがないと、片手間にナニかをするときに非常に不便ですよね…
# 自分でオートモード作らないか?
とは言え、製作者の方にオートモード作ってもらうよう呼びかけたり、プログラムの中身を見て自分でオートモードを実装するのは無理があります。なので、ユーザーサイドでオートモードを再現してみました!使ってみたところ、割といい感じに使えましたので、喜びと方法を共有します!
# コードの解説と使用方法
オートクリックができるモジュールはpyautoguiやpynputなど多くありますが、色々試してみた結果、Windows APIを直接呼び出すことができる、ctypes とwintypesのみが有効だと判明しました。このモジュールと音声認識のモジュールをつかったコードになります。
コードの動き方としては、5秒ごとに判定を行い、音声が認識されていない間はクリックを行わず、音声が認識されていなかったら、クリックを行う、みたいな感じになっています。(めっちゃガバガ

元記事を表示

【PowerPoint】PythonでPowerPointファイルの図表番号の整合をチェックする

## はじめに

 PowerPointで資料を作成した後に、図番号の整合が取れているかチェックしたい時がありますよね。前回はその第一歩として、Pythonを用いてPowerPointファイルのスライドの図番号を自動取得する方法についてご紹介しました。

 今回は自動取得した図番号に対して、その図番号が他のスライドから参照されているか自動でチェックをする方法についてご紹介します。

 なお、PowerPointファイルはあらかじめXML形式に変換しておく必要があります。
XML形式への変換方法については前回の記事を参考にしてください。

[【PowerPoint】PythonでPowerPointファイルから図番号を自動取得する](https://qiita.com/ebi3kani3/items/a6abf491a9003c5683b7)

### この記事でわかる・できること

– PowerPointファイルから図番号を自動で取得する方法がわかります
– 図番号の参照の整合性を自動でチェックする方法がわかります

### この記事の対象者

– PythonでPower

元記事を表示

PythonスクリプトがLambdaにアップロード出来ない問題について

# 発生した問題について
Pythonでスクリプトを作成し、AWS Lambda上で実行するような検証を行っていた。
スクリプトの概要としては、Python SeleniumでWebサービスのログイン画面をスクレイピングして、各XPathに必要な項目を入力するというもの。

いざ作成したスクリプトをLambdaにアップロードしようとすると…
~~~AWS CLI:エラーメッセージ
An error occurred (RequestEntityTooLargeException) when calling the PublishLayerVersion operation: Request must be smaller than 70167211 bytes for the PublishLayerVersion operation
~~~
どうもZipのファイルサイズが70167211バイト(約66.92MB)より大きくアップロード出来ないようです。
このあと何度も不要なファイルやディレクトリを削除し、Zip化して、アップロードを繰り返すわけですが、一向に上手くいかず…

# 解決

元記事を表示

Excel作成/編集を自動化!python openpyxlのまとめ

# 0. この記事の狙いと対象者
最近では便利な可視化ツールやpythonのパッケージがリリースされ、データ分析作業が日々楽になってきていますが、一方で分析者以外に結果を提出するためのレポーティング作業は属人的な部分が多いように感じています。
例えば分析結果をエクセルファイルで提出する際、視認性を高めるために「ヘッダーの色変更」「数値のカンマ区切り」「罫線の描画」「セル幅の調整」を実施したりします。
視認性が高まることで分析者以外の方からの満足度が向上しますが、pythonなどの分析結果から人手で毎回作成することは大変です。
こういった作業をpythonで自動化することで、レポーティングの負担を減らせるようになることが本記事の狙いです!!

■対象者
– pythonについて基礎知識がある方
– pythonでExcel操作をしたい方

# 1. openpyxlとは
openpyxlとは、エクセルファイルの作成や細かい編集(色や罫線)を可能にするpythonのパッケージです。
本記事ではopenpyxをどのように使うかを可能な限り最小単位でまとめています。

# 2. openpyx

元記事を表示

Pythonを用いた総当たりステッチ処理

## はじめに

このプログラムは、OpenCVライブラリを使用して、画像をステッチし、成功した画像と失敗した画像を分類します。
また、ステッチ成功した画像を保存し、最終的にすべての成功した画像を1つのフォルダにコピーします。

### 実行環境
python-version 3.8.8
cv2-version 4.7.0

## 必要なライブラリのインストール
まず、必要なライブラリをインストールします。
以下のコマンドを実行してください。

“`console
pip install opencv-python-headless
“`

## プログラムの全体像
以下がプログラムの全体像です。
このプログラムを順を追って説明していきます。

“`python
import cv2
import os
import shutil
import glob
import copy
import re

# 総当たりでステッチ処理
def stich_round_robin(image_files, save_dir):
# スキャンモードのStitcherクラスを作成する

元記事を表示

Knowledge Graphを使った RAG をLangChainで実装[後編]

少しだけではあるが、[前編](https://qiita.com/FukuharaYohei/items/6f1d094dc33688711221)の内容を実践的に試してみた。
以下のWikipedia記事の3万文字を読み込んでNeo4jに入れてRAGを実施。

https://ja.wikipedia.org/wiki/%E5%AF%84%E7%94%9F%E7%8D%A3

# サマリ
– Neo4jにデータ入れる前に名寄せはした方が良い
– 日本語でGraph DBであいまい検索をすると精度下がる場合あり

# Neo4jへのデータ格納
## プログラム
前篇のプログラムとほぼ同じなので解説省略。大きく違うのは、もとテキストをWikipediaから読み込んでいる部分。

“`python
from dotenv import load_dotenv
from langchain_community.document_loaders import WikipediaLoader
from langchain_text_splitters import RecursiveChara

元記事を表示

【生成AI】知らないと後悔する、GPT-4oだけでシステム開発を300%効率化する裏技

::: note
こちらの記事は投稿時点の情報です。
最新情報は公式ドキュメントでご確認お願いいたします。
:::

都内のIT企業に勤めている、ソフトウェアエンジニアの D̷ELL と申します。
本稿はQiita Engineer Festa 2024の参加記事です。

本日は生成AI(GPT-4o)のAPIキーだけで、システム開発を300%効率化するハックを共有したいと思います。
なお、本稿はキャンペーンに参加しておりますので、楽しんで頂けたら「いいね」と「ストック」を頂戴できると幸いです。

# 概要
– 生成AIによるアプリケーション開発自動化が実現しつつある時代になってきた
– 日本企業における「Excelドキュメント」は数多く、生成AIを実践投入しづらい
– GPT-4oのAPIキーさえあれば、社内のドキュメントからシステムを自動構築してくれる仕組みがあった

# はじめに
みなさんはアプリケーション開発における生成AIの利用と言えば、何を想像しますか?おそらく大半の方が、ChatGPTやCopilotを用いた「コード生成の補助」ですよね。プロンプトを渡せば、特定のファイル

元記事を表示

Blender 4.2で星空を作ろう

Blender 4.2 LTSがリリースされました!

Homepage

さっそく、次のような星空を作ってみましょう。

## まずは、アドオンをインストールしよう

次のリンク先からアドオンをダウンロードしてください。ダウンロードしたZIPファイルは**解凍せずに**使います。

https://github.com/SaitoTsutomu/StarrySky/archive/refs/heads/master.zip

次の手順でアドオンをインストールします。

* 編集メニューのプリファレンスを選ぶ
* 左のタブの中からアドオンを選ぶ
* 右上の `v` のボタンの「ディスクからインストール…」を選ぶ(下図)
* ダウンロードしたファイルを選択し、「ディスクからインストール」を押す

元記事を表示

Blenderで、3Dのハート(関数版)を作る

# 関数で3Dのハートを作る

記事「[ちょっと変わったハートの関数](https://qiita.com/yutowac/items/41aa57f76543c9f99bbf)」に、いろいろな**ハートを関数で作る**方法が紹介されていました。

https://qiita.com/yutowac/items/41aa57f76543c9f99bbf

その中に**3Dのハート**もありました。
BlenderではPythonで3Dのオブジェクトを作れます。ということは、Blenderで3Dのハートを作れるということになります。

さっそく、Blender 4.2 LTSで作ってみましょう。

## 3Dのハートの頂点と面を求める

元記事では、scikit-imageの`measure.marching_cubes()`関数で、ハートの境界面を求めていました。
この関数は、与えられた3次元データの特定の値の等しい面(2次元でいう等高線)を求めることができます。

https://scikit-image.org/docs/stable/api/skimage.measure.htm

元記事を表示

abc-361 Cを解いてみました

## 問題
長さ$N$の数列から$K$要素を自由に選んで消し,残った要素を順序を保って連結
その数列における(最大値)-(最小値)としてありうる最小値を求めよ.

## 考え方
(最大値)-(最小値)をもとの数列より小さくしたい場合,もとの数列の最大値か最小値は取り除く必要がある
– 具体例(数列がソートされてる場合)
– `[1, 2, 3, 5, 7]` から1つ取り除く場合
– `1` あるいは `7` を取り除く必要がある
– `[1, 2, 3, 5, 7]` から2つ取り除く場合
– 左から2つ `[1,2]` を取る,左と右から1つずつ `1`, `7` を取る,右から `[5, 7]` を取る,のいずれかを行う

:::note info
$k$個取り除く場合,右から$x$個,左から$(k-x)$個取り除くとよい
:::

ソートの計算量は$n \log n$,$n < 2 \times 10^5$より,時間内に計算可能 右から取り除く数$x$については,全探索の計算量が$k$のため大丈夫 ## 実装したコード ```

元記事を表示

うるう年をもっと調整する

## はじめに
前回,うるう年の調整に関する記事を書いた
– [うるう年はなぜ複雑なのか](https://qiita.com/mtmtss/items/f878b61386c6fa68d936)
– 今回は上記よりもスケールの大きな調節を行う

## 前回までの流れ
– 4,100,400,3200の倍数の年でうるう年の調整を行っていた
– 4の倍数でうるう年
– ただし100の倍数はうるう年でない
– ただし400の倍数はうるう年
– ただし3200の倍数はうるう年でない
– 次の条件は分からない…

## 前回までの実装で1000000年までプロットしてみる
![loss_day_3200notleap.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3768359/e0e8d587-f399-caa2-f8dd-ce0d5b588820.png)
– 500000 – 600000年あたりで1日ずれている
– 今まで,$2^m \times 10^n$年

元記事を表示

Raspberry Pi AI Kit 使ってみた

## Raspberry Pi AI Kit
イスラエルのHailoが出しているHailo 8LというNPUです。
ラズパイ5向けで13TOPSとのことです。

![https://www.switch-science.com/cdn/shop/files/74012faf-a369-44bc-9fc0-928a99ecb107_360x360.jpg?v=1720761431](https://www.switch-science.com/cdn/shop/files/74012faf-a369-44bc-9fc0-928a99ecb107_360x360.jpg?v=1720761431)

スイッチサイエンスのページ

Raspberry Pi AI Kit

日本では軒並み売り切れ状態です。いつ入荷されるのでしょうか?

今回はwaveshareで運よく買えたので香港から船でどんぶらこと運んでいただきました。

## 組み立て
簡単でした。
イカツイGPIO拡張を付けたのでイカツイ(語彙力)
![Image.jpg](https

元記事を表示

マッチングアプリライクなニュース機能を作ってみた

こんにちは、@natsuya_ITと申します。

先日、 マッチングアプリのデート体験を共有するSNSアプリ – マッチシェアに**スワイプでニュースを閲覧できる機能**を追加したので軽く紹介したいと思います 🦜

👇リリース中のアプリはこちら👇

https://matching-share-introduction.vercel.app

## 作ったもの

mojikyo45_640-2.gif

こちらが今回作ったニュース機能です 📗
機能としては非常にシンプルでニュースカードを右へとスワイプすると既読、左へスワイプすると未読のままに、カード押下でニュースページに遷移するといったUXにしています。

## 実装

### クライアント

上記ニュースのスワイプUIは[rn-swiper-list](ht

元記事を表示

OTHERカテゴリの最新記事