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

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

Pythonのyoutube-transcript-apiの使用時に、プロキシサーバーを使用する

# Pythonのyoutube-transcript-apiの使用時に、プロキシサーバーを使用する

初心者です。間違い等ありましたら、ご指摘ください🙇

### 環境

– MacBook Air M2
– laravel 10.48.22
– python 3.12.4
– VSCode

SwiftUI✖️Laravel✖️Pythonを使用したアプリをHerokuへデプロイし、動作確認を行っていたところ、以下の問題に遭遇。

### 問題

Pythonライブラリ`youtube-transcript-api` を使用してYouTube動画の字幕を取得できるのだが、ローカル上では取得ができ、Heroku上では取得ができない…

### 結論(未解決)

プロキシサーバー(有料)を利用する。

### 原因

**YouTubeが、クラウドサービスのIPアドレスからのアクセスをブロックしているっぽい?**

以下の議論を参考にした。

https://github.com/jdepoix/youtube-transcript-api/issues/303

簡単に総括すると、

元記事を表示

【備忘録】SIGNATE Cup 2024に参加してみた

## 目次
[0.結論](#0-結論)
[1.コンペティション概要](#1-コンペティション概要)
[2.前処理](#2-前処理)
[3.モデリング](#3-モデリング)
[4.おわりに](#4-おわりに)

### 0. 結論
[SIGNATE Cup2024](https://signate.jp/competitions/1376)に参加。
順位:558 位 / 1,226人投稿
なかなか順位を上げることができなかったものの、AIコンペ完走することができ、多くの学びがあった。

### 1. コンペティション概要
旅行会社の保有する顧客データ(属性や志向、営業担当との接触履歴等)を元に、旅行パッケージの成約率を予測するモデルを構築するコンペティション。

### 2. 前処理
|特徴量|処理概要|Nan値埋め|
|:-|:-|:-|
| Age
(顧客の年齢) |①漢数字を数字に変換
②全角の数字を半角に変換
③〇代は〇5に変換(例.20代→25、10代のみ18に変換)|平均値(整数)|
| DurationOfPitch
(営業担当者による顧客への売り込

元記事を表示

Ray.remoteがついたメソッド内で親クラスを参照するとエラーになる

## コード
“`python: colab.ipynb
import ray
ray.init()

class A:
def add_5(self, a:int) -> int:
return a + 5

class B(A):
@ray.remote
def add_5(self, *args, **kwargs) -> int:
return super().meth(*args, **kwargs)

ray.get(B().add_5.remote(5))
#^^^^^^^^^^^^^^^^^^^^^^^^^^^
ray.shutdown()
“`

## エラー
“`.stderr
RayTaskError(TypeError): ray::meth():
File “colab.ipynb”, line 10, in meth
TypeError: super(type, obj): obj must be an instance or subtype of type
“`

## 解決策
明示的に

元記事を表示

インデックスを蔑ろにするからNaNが発生したんだ

# 背景
複数のデータフレームからcsvに出力するようにデータをまとめる処理をしていた時に少しハマったトラブルについて。
調べたらすぐわかるような初歩的なことなんですが、意識していなかったなと反省して記事に残します。

### やりたかった処理

データフレーム1のカラムを指定して、その中のデータと同じデータが存在する行だけデータフレーム2から取り出し、新しいデータフレーム3に格納する。

コードに直すと

“`python
df3[‘新しいカラム’] = df2[df2[‘ALL_ID’].isin(df1[‘target_ID’])][‘代入したいカラム’]
“`

こんな感じ。
ALL_IDにはかならずtarget_IDで指定したいIDが含まれており、df2のtarget_IDの’代入したいカラム’のデータをまるっとdf3に’新しいカラム’として代入したいのですが、この処理をするとdf3ではNaNが発生して期待通りになりませんでした。

### 改善方法
reset_index(drop=True)を入れるだけです。

“`python
df3[‘新しいカラム’] = d

元記事を表示

PyLoT Robotics 2024 -ソフトウェア-

# はじめに
こんにちは、しがない高校生をしているbasalteと申します。
今回は私が1からチームを作りRoboCup@Home Educationに出場したPyLoT Roboticsで開発したソフトウェアについて解説します。
こちらに活動の全体をまとめた記事もありますのでもし良ければご覧ください。

https://t.co/QZzCm7T8UX

# 画像認識
基本的にYolov8を使って開発していました。こちらは簡単に骨格検出と個体識別のトラッキングができるのでとても便利です。
私たちはタスクで使用するバッグと椅子を当日の会場でアノテーションし、学習していました。
また人を追従するための人体識別はYolov8のtrack機能を使用し、背景にいる人の誤検出が起きないようにしていました。

# Openmanipulator-x
大会期間までに開発したのは固定モーションの設定だけでした。
現在は以下のようなロボットアームの制御ができています。
こちらのデモの解説は今後別途記事を書こうと思います。

【分析】傾向スコアを使用した処置効果の推定

# 本記事の目的
– 分析業務を始めてもなかなか取っつきづらい「傾向スコア」を理解する
– 「傾向スコア」を使用したマッチング等による共変量の影響を極力取り除いた処置効果の推定方法を理解する

# 傾向スコア(*Propensity Score*)
– 与えられた共変量(説明変数)において介入(処置)が行われる確率
– 主にロジスティック回帰で確率推定をすることが多いが、共変量からの確率推定ができれば特に決まりはない
– 傾向スコアを使用した介入効果の推定方法として、「傾向スコアマッチング(*Propensity Score Matching*)」や「*IPTW*(*IPW*とも言う。*Inverse Probability of Treatment Weighting*)」、「*DR*(*Doubly Robust*)法」、「傾向スコア層別解析」などが代表的である
– 条件付き独立の仮定(*CIA*:*Conditional Independence Assumption*)が存在する
– *CIA*
– 傾向スコア*P*(*Xi*)で処置変数を条件付

元記事を表示

pygameでRPGを作ってみる1

# 目次

どんな人が書いてる?
環境
参考にしたサイト
pyrpg27の修正個所
[画面の表示](#画面の表示)
[テキスト表示](#テキスト表示)
[効果音を鳴らす](#効果音を鳴らす)
[BGMを鳴らす](#bgmを鳴らす)
[選択肢を作る](#選択肢を作る)

# どんな人が書いてる?

ここをクリックしてください

1.`おじさん`
2.`python初心者`

# 環境

ここをクリックしてください

python3.11
IDLE

# 参考にしたサイト

ここをクリックしてください

[人工知能に関する断創録](https://aidiary.hatenablog.com/archive/category/Pygame?page=3)
[PythonとPygameで作る レトロ風RPG 全コード](https://crocro.com/write

元記事を表示

PDFから表を抽出し、DataFrameやMarkDown形式に加工する。

# はじめに
PDF内の表データを取り出して、pandasで解析したりMarkDown形式でできないか調べてみた。“`pymupdf“`というPythonライブラリ使う。
その他PythonでPDF処理できる内容については、別記事でまとめているので👇を参照。

https://qiita.com/tapitapi/items/6b1982467f0345f3da67

# 目次
+ [ライブラリ:pymupdf](#ライブラリpymupdf)
+ [使い方](#使い方)
+ [用途](#用途)

## ライブラリ:pymupdf
“` pip install pymupdf“`でライブラリを入手。このライブラリの“`find_table()“`を使う。参考にしたサイトは下記。[ドキュメントから表の内容を抽出する方法](https://pymupdf.readthedocs.io/ja/latest/recipes-text.html#how-to-extract-table-content-from-documents) / [Page.find_tables()](ht

元記事を表示

【SSO】SnowflakeにローカルPCのAnaconda環境のjupyter notebookから接続

前回書いた下記の投稿で、ID/パスワードをjsonファイルに保存しておいて、それを読み込んでSnowflakeに接続するのを試しました。

https://qiita.com/baihebu/items/03e38f6e6d6f242ad8a3

実際は会社で使う環境などではSSO(シングルサインオン)で使っていて、パスワードを設定していないケースもあると思います。
SSOでSnowflakeに接続するということを試してみます。

前回の投稿の
– 仮想環境作成
– jupyter notebookでの操作
までは全く同じなので省略します。
jupyter notebook内でのpythonのファイルは別ファイルで新たに用意してもいいかもですね。
![スクリーンショット 2024-09-22 105516.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3487310/aad98ef4-ee90-b9f7-187a-4303b9ccc8e2.png)
sso_testというpythonのファイルを「▼Ne

元記事を表示

ABC372回答メモ

# 0.はじめに
 最近若干調子上向きの中臨んだABC372。
 A・B・Cを解いた後、Dは解き方が思いつかず
 Eは何とか行けそうだったので挑戦しましたが
 TLEは消せずあえなく時間切れ。
 それでも今のレートでは3問解けただけで+9と
 微増でした。

# 1.A – delete .
 pythonだと地味にめんどくさい文字列操作系問題。
 素直に以下の手法で解きました。
 入力する文字列をリスト化してリストSに読み込み
 回答用文字列ansを空で定義
 Sから一文字ずつ読み出し、”.”以外をansに加えていき
 最後にansを出力して終了

 https://atcoder.jp/contests/abc372/submissions/57953706

# 2.B – 3^A
 Bにしては難しくない?と思った問題。
 回答を見たら3進数に変換して解くとあり
 目からうろこでしたがまぁ、思いついた以下の実装。
 【実装】
  1.Mをインプット
  2.回答用リストansを空で初期化
  3.添え字iを10→0で1ずつ減らすfor文で以下の処理
   -1.Mが3のi乗以

元記事を表示

グラフデータベースを用いたカレー好きのソーシャルネットワーク分析:Neo4j と Python の統合

## はじめに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/c6af95da-279e-03a5-f42e-cedc600c6026.png)

本記事では、グラフデータベース Neo4j と Python を使用して、より複雑で現実的なカレー好きのソーシャルネットワークを分析する方法を解説します。この高度な分析を通じて、カレー愛好家たちの関係性、好みのパターン、人気のあるカレー店、そして個人の影響力などを詳細に可視化し、深い洞察を得ることを目指します。

## Neo4jとは?

![napkin-selection (20).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/55cedc6c-a5e3-574d-f142-2bbd92300bad.png)

Neo4jは、ノード(点)とリレーションシップ(線)でデータを表現するグラフデータベースの一種です。グラフデータベ

元記事を表示

知財のあれこれをPythonで何とかする

### マルチマルチクレームを何とかする
今回はマルチマルチクレームをチェックするプログラムを作ってみました。

“`python:Program1.py
#part1 請求項と従属先のセットを作成

import re
import unicodedata
import copy

meisai = []
ms_base = []
f = open(‘meisai.txt’, ‘r’)#ANSIで保存すること
ms_base = f.read()
f.close()
ms_base=unicodedata.normalize(“NFKC”, ms_base)#請求項数の数値を半角にする
meisai = re.split(“【”,ms_base)#請求項ごとに分割する
meisai.pop(0)

clm_gr_base=[]
clm_item=[]
for ms_part in meisai:
clm_item.append(re.findall(r’請求項(\d+)’, ms_part))

clm_gr_base = [[int(x) for x in sublist

元記事を表示

Python(Flask)学習備忘録~Part1~

### はじめに
 どーも、ムラカミです。
AIってカッコよさそー!という小並感でPythonに興味を持ち学習を始めました。
ゆるーく、記録を残していこうと思います。

### 理解したこと
– Pythonはインタープリタ型言語であること。(コンパイラ型と勘違いしておりました。トホホ)

### わからないこと
– 基本的にファイルに書いてあるコードがまだ意味不明です。(過去に触ったことがあるJava、PHP、Laravelなどとあまり共通していないため)

### 今後
– まずはweb上に文字を出力すること。(できれば、変数やif文などを使い動的な形で出したい。)

元記事を表示

【番外編】正則化について(まとめ)

【番外編】 正則化スタート!!
※この記事では正則化についてまとめます

## ▼学習の流れ
まずは正則化の概念を学び、具体的な分析例を通して理解を深めていく。

■使用するデータ
乳がんに関するデータ(全データ569)
説明変数:30個(腫瘍の半径、面積、深さ・・・)
目的変数:0は悪性(癌である)、1は良性(癌でない)

このデータを使用して、様々な測定値に基づいて腫瘍が悪性か良性かを予測するモデルを構築していく。

※データセット:後日(breast_cancer_data.csv)

■ 正則化について学習する
– 不足学習(未学習)と過学習の復習
– 過学習を防ぐための手法の一つとして、正則化を紹介

■ どんな種類があるのか
– リッジ回帰
– ラッソ回帰
– Elastic Net回帰

▼練習問題 【番外編】のため省略。

## ▼復習
過学習とは
モデルが学習データに過剰に適合し、新しいデータや少

元記事を表示

オフライン環境で使える WinPython のセットアップ

![03_officialsite.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3160433/e73ddf9d-9b44-e212-cff2-dec823039874.png)

WinPython はインストール作業不要で使える無料の Python 実行環境です。科学計算やデータ分析、グラフィックスなどの多くのパッケージが含まれており、Windows 環境で簡単に動かす事ができます。この記事では18歳の新入社員向けに WinPython のセットアップ方法を紹介します。

## WinPython を使う目的
### 管理者権限が不要
WinPython はダウンロードしてファイルを展開するだけで使うことができます。

### すぐに使えるデータサイエンス向けパッケージ
WinPython にはデータサイエンティストや学生向けの様々なパッケージ(NumPy, SciPy, Pandas, Matplotlibなど)が含まれています。

### オフライン環境での使用
WinPython は USB

元記事を表示

[Python]状態空間モデルの同定

# 目的
状態空間モデルのシステム同定方法の確認を行った為、確認に用いたPythonスクリプトを紹介する。

# 学習用データ作成のためのモデルおよび学習するモデル。
学習用データ作成のためのモデルおよび学習するモデルは以下のような2入力1出力の1次遅れ系とした。
・状態量x1が入力u1に対して一時遅れ系
・状態量x2が入力u2に対して一時遅れ系
・出力yは状態量x1,x2の合計

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111514/1511a070-d7a3-f902-dff7-af8f735db2c8.png)

# システム同定方法
定常ゲインK1,K2および時定数T1,T2を下式で最適化する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111514/4925c337-78ab-9861-1e05-d67f517a4312.png)

# 学習用データおよびシステム同定

元記事を表示

AI屋さんの streamlitと200万トークン全文入力 追加学習済み LLMの streamlitでWebアプリをクラウドデプロイ 実践編

AI屋さんの 追加学習済み LLMの streamlitでWebアプリをクラウドデプロイ 実践編

streamlitをお手軽に、
サーバーレスでWebアプリをデプロイしてみましょう。

追加学習済みのLLMを安価に共有する方法です。
完成ずみのwebapiを使って、
既にある、皆様のポータルサイトで呼び出したり
別途、独立サイトで運用したり 色々できます。

![Screenshot_20240922-061135.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237930/32dd824d-520a-6627-e0a8-2e1975c169a0.jpeg)

![Screenshot_20240922-060128.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237930/26b600c9-3bdd-511e-ca73-50c63614d067.jpeg)

既知のサイトです。(第五回参照)

ht

元記事を表示

【ガチで危機感持った方が良い】思考停止でLangChainを使ってはいけない理由とその対策

# はじめに
RAGの仕組みを概念的に理解している方は多いのではないでしょうか?
また、langchainを使って、実装している人も多いのではないでしょうか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3770170/4007ee6d-ab3c-59af-5218-a84191993aaf.png)

しかし、実際にどのような仕組みでRAG(langchain)が動いているのかを知っている人は多くないと思います。RAGでは自然言語からクエリを作り、それを実行するというプロセス上、プログラムが予期せぬ挙動を勝手に実行してしまうリスクがあります。(例:DBを消してしまう)

本記事では、実際のコードを見ながらlangchainを使ったRAGの処理内容を理解することで、思考停止でブラックボックス的にLangChainのライブラリを使わないようにする手助けをします。

なお、本記事では便宜的に通常のデータベースを対象にRAGをするシンプルなケースを考えます。

# RAG実装で欠かせない

元記事を表示

PyCon JPの技術に対する不正の告発、並びに技術者と大衆に対しての警鐘

# 概要

本文章は、一般社団法人PyCon JP Associationが主催したPyCon APAC 2023の開催に際し、そのプロポーザル選考過程において行われていた不正行為の告発を目的とするものです。

本文章が対象とする読者は技術者、及び、公衆です。技術者は技術『愛好家』との付き合い方について一考をするべきであり、公衆は「専門家ではないにも関わらず技術の専門家のフリをする不正な愛好家」に対して無自覚であるべきではない、という警鐘を鳴らすため、及びに、一般社団法人PyCon JP Associationの公衆に対する不正を告発するため、本文章を公開します。

本文章は、Qiitaが目指す、学びのある情報を技術者に共有することで、よりよい技術者コミュニティの形成を目指す内容であるため、Qiitaのガイドラインに沿った形式でQiita.com上で公開します。

## 告発する内容
– PyCon APAC 2023の準備活動中に発生した一連の事案
– 公益性を標榜する当該団体の活動における公益性の欠如の指摘
– 「技術愛好家」を名乗る人物らによる不正行為の実態

## 用語解説

元記事を表示

PythonでPDFファイルの読み書きマージやパスワード解除したりする。

# はじめに
PythonのPDF処理ライブラリ“`pypdf“`についてまとめる。

# 目次
+ [pypdfライブラリ取得](#pypdfライブラリ取得)
+ [PDF読み込みとテキスト出力](#pdf読み込みとテキスト出力)
+ [PDF図の出力](#pdf図の出力)
+ [PDF書き込み](#pdf書き込み)
+ [PDFマージ](#pdfマージ)
+ [PDF分割](#pdf分割)
+ [PDFパスワード解除](#pdfパスワード解除)

## pypdfライブラリ取得
pypdfのライブラリは下記で取得。パスワードがかかっているファイルを復号化する場合は“`pypdf[crypto]“`も必要。
“`cmd:
$ pip install pypdf
$ pip install pypdf[crypto]
“`

https://pypi.org/project/pypdf/

[戻る](#目次)

## PDF読み込みとテキスト出力
PDFファイルは“`pypdf.PdfReader()“`で読み出す。テキスト出力はページを指定して“`.extrac

元記事を表示

OTHERカテゴリの最新記事