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

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

[Python] PDF文書からテキストの抽出

## はじめに
PDFは仕事でよく使われるテキスト形式であり、共有や保存に便利です。ただし、その中のテキストを編集したい場合は、PDFからテキストを抽出することをお勧めします。PDFファイルが少ない場合は、専用のPDFリーダーソフトウェアを使用して手動でテキストを抽出できます。しかし、ファイルが多い場合は、プログラミングを使用してPDFのテキストを一括で抽出することができます。この記事では、Pythonを例に挙げて、PDF全体または指定範囲のテキストを抽出する方法を紹介します。
## 環境
* Python 3.12.0
* [Spire.PDF for Python](https://www.e-iceblue.com/Introduce/pdf-for-python.html)ライブラリ

このライブラリは購入する必要がありますが、[30 日間の無料試用版](https://www.e-iceblue.com/TemLicense.html)も提供されています。
もっと多いサンプルコードについて、[Spire.PDF for Python](https://www.e-iceblu

元記事を表示

Streamlitを使ってみる:その1

データ解析結果をチームで共有するためのサイトを手軽に作れないか、と思い立ち、Streamlitを勉強中です。

# 1. 開発環境

– MacOS Ventura
– Anaconda

Anacondaは導入済みとする

# 2. 参考URL

### 使い方

https://docs.streamlit.io/

>Streamlit is an open-source Python library that makes it easy to create and share beautiful, custom web apps for machine learning and data science. In just a few minutes you can build and deploy powerful data apps. So let’s get started!
>Streamlitは、機械学習とデータサイエンス用の美しいカスタムWebアプリを簡単に作成して共有できるオープンソースのPythonライブラリです。わずか数分で、強力なデータアプリを構築して展開でき

元記事を表示

環境ごとの切り替えについて

## はじめに
– 環境変数
– .envファイル
など聞くけど、なぜ必要なの?

:::note info
面倒なことせずに、プログラムに埋め込めば良いんじゃないの?
:::
そういった疑問を持つ方がいたので、環境変数などがなぜ重要か説明します。

## 環境による切り替えが必要な理由
開発環境(prd) /ステージング環境(stg) / 本番環境(dev) によって扱う設定が異なり
環境固有に設定したい値が存在するから必要になります。

その場合、設定をハードコーディング(プログラムに埋め込む)するのではなく、
プログラムの

:::note info
外から環境ごとで切り替えられる仕組み
:::
が必要となる

## 環境変数とは
– プログラムの実行時などに必要となる、利用者やコンピュータごとに内容が異なる設定値などを記録するために使用する
– OSが設定値などを永続的に保存し、利用者や実行されるプログラムから設定・参照できるようにしたもの

### 利用するメリット
– 誤ってリポジトリに機密情報を混入する可能性が低くなる

### 機密情報を設定する場合
– System

元記事を表示

boto3でDynamoDBを操作する

## はじめに
DynamoDBをboto3で操作するとき、
登録・更新・削除の処理を書くことが多く、そのメモを残します。

## ソースコード

### 登録
“`python:put.py
def put_item(param):
try:
table = dynamo.Table(config.TABLE)
response = table.put_item(
Item=param
)
except Exception as e:
logger.exception(e)
raise
“`

### 更新
“`python:update.py
def update_item(param):
table = dynamo.Table(config.TABLE)
try:
update_params = {
‘Key’: {
‘primary_key’: primary_ke

元記事を表示

JAFの全国調査データを使ったデータ分析(その1)

# はじめに

先日、JAFから”信号機のない横断歩道での歩行者横断時における車の一時停止状況全国調査(2023年調査結果)”が公表された。

https://jaf.or.jp/common/safety-drive/library/survey-report/2023-crosswalk

全国平均と各都道府県のデータが示されていて、2019年以降毎年実施されていることが分かった。

しかし、全国平均を除いて、各都道府県の時系列変化について一目で把握できるものではなかったので、Webスクレイピング手法などを用いて、5年分のデータ取得・成形をしたのち、データ分析・可視化をやってみることにした。

地理空間情報(GIS)の習熟にちょうどいい題材だと思うので、ヒートマップの作成にも挑戦する。

# 元データの特徴の把握

どういう調査方法によって取得されたデータなのかを押さえておく。

降雪が多い時期や濃霧が発生しやすい時期は避けられていて、交通量や道路環境に偏りが出ないように調査場所の選定基準が明確になっている。

ドライバーによる横断歩道と歩行者の認知能力に、極力他の要因が関

元記事を表示

JavaScriptよりPython派な私がDapp開発でよく利用するツール10選

## 一覧

|ツール名|概要|
|–|–|
|[Vyper](https://docs.vyperlang.org/)|スマートコントラクトを記述するPythonライクな言語|
|[web3.py](https://docs.vyperlang.org/)|ブロックチェーンとのやり取りに関するメソッドを提供するPythonライブラリ|
|[Ethers.js](https://docs.ethers.org/)|web.pyのJavaScript版。フロントエンド開発で使う。|
|[Brownie](https://eth-brownie.readthedocs.io/)|スマートコントラクト開発のためのPythonペースなフレームワーク|
|[Alchemy](https://www.alchemy.com/)|DApp開発に関する多様なサービス群|
|Sepolia|公開されているEthereumのテストネットワーク|
|[Sepolia Testnet Explorer](https://sepolia.etherscan.io/)|Sepoliaのトランザクションを閲覧で

元記事を表示

LangChain: クエリからのタスク生成

# 0. はじめに
最近目覚ましい進化を遂げつつある自律型エージェント(Autonomous Agents)は、人間の介入なしに独立して意思決定や行動を行うシステムです。一方、複雑なアルゴリズムに基づいて動作するため、その行動が予測しにくく、思ったような挙動が得られない、などの問題が起こることがあります。

では、うまく動作しない原因は何なのか?
原因の一つとして、エージェント自身が何をできるのかを理解できていないケースがあります。

![DALL·E 2023-11-13 15.22.47 – An image representing the concept of Autonomous Agents, showcasing a blend of artificial intelligence, robotics, and autonomous vehicles. The scene in (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3565029/4e8f7958-c8be-48b3-a9

元記事を表示

ホールケーキ,ナイフ2回で3等分

問: 半径1のホールケーキを,ナイフを2回入れて3等分する。

答: 中心から上下(または左右)へ,約$\pm 0.265$離れた点を通り$x$軸($y$軸)に平行にカットする。

この解が適切かどうか,3分割された半月状の部分の面積をシミュレーションにより求めて,真値と比較検証する。

第1象限の一辺の長さ1の正方形内に二次元一様乱数$(x, y)$を$n$組発生させ,$(x, y)$が四分円内にあり,かつ,$y \gt y_{0}$ の点の割合が$\pi/3=1.0471975511965976$になることを確認する。

“`Python
import numpy as np
n = 100000000
x = np.random.rand(n)
y = np.random.rand(n)
print(2*np.mean((x**2 + y**2 < 1)*(y > 0.26493208460277684)))
“`

1.04728812

![fig1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

Python Polars の Deprecations を追う

# はじめに

[Polars](https://www.pola.rs/) の激しい変更を GitHub Releases から追う

コード

“`py
from __future__ import annotations

import json
import re
import urllib.request
from typing import Any

def filter_tag(release: dict[str, Any]) -> bool:
tag_name: str = release[“tag_name”]
return tag_name.startswith(“py-“) and “rc” not in tag_name

def extract_deprecations(release: dict[str, Any], owner: str, repo: str) -> str:
m = re.search(r”## .*Deprecations(.*?)##”, relea

元記事を表示

アルゴリズム設計力向上委員会

# はじめに
:::note warn
本記事はC++をターゲットにしています。
そしてかなり内向的です。
:::
自分のアルゴリズム構築力を向上させるための取り組みの一環として執筆します。
目標と〇〇はあった方がいいということで、AtCoder水色を第一目標に定めます。

## ルール
– 何かを学んで理解したら、自分の言葉で記事に書くこと!

## チェックリスト
必修の標準ライブラリ
※標準テンプレートライブラリ、STL(Standard Template Library) ともいう
|項目名|1回でもさらえば〇つける|理解できれば〇つける|
|-|-|-|
|abs |〇||
|sin/cos/tan ||
|string |〇||
|min/max ||
|swap||
|__gcd ||
|rand ||
|clock ||
|reverse ||
|sort|〇||
|vector |〇||
|stack ||
|queue ||
|priority_queue ||
|map||
|lower_bound |〇||
|set |〇||
|pair ||
|tuple |

元記事を表示

ChatGPTとPythonで学ぶ 非負値行列因子分解

皆さんこんにちは。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ 非負値行列因子分解」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

こんにちは、皆さん。私に機会を与えていただき、ありがとうございます。今日は非負値行列因子分解(Non-negative Matrix Factorization、NMF)についてお話しします。

NMFは、線形代数と機械学習が交わる部分に位置付けられる方法です。これは、行列を二つの行列に分解するという操作に関係しています。先に結論を言えば、NMFはデータの次元削減やクラスタリング、推薦システムなど、幅広い問題で活用されています。

では、非負値行列因子分解が何であるかを詳しく理解するためには、まず行列因子分解が何であるかを説明することから始めたいと思います。さて、行列因子分解とは何でしょうか?

まず、行列Aを二つの行列BとCに分解するということは、次のような式を満たす二つの行列B、Cを見つけるということです。

`A =

元記事を表示

IBM Cloud Code Engineを利用してCISの送信元IPアドレス変更をメール通知する

# はじめに

IBM Cloud CodeEngineを利用してCISの送信元IPアドレス変更を定期的にメール通知する方法を紹介します。

コンテナ実行環境サービスであるサーバーレスCode Engineのジョブを用いて定期実行する例です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329464/8dd55b6b-a146-8983-5b1c-e11e7b435eca.png)

スクリプト(bash)で実行した例を下記記事で紹介しておりますのでご参照ください。

IBM Cloud CISの送信元IPアドレス変更を検知する
https://qiita.com/aktech/items/f6cf0a9771c26c117825

IBM Cloud Functionsを利用した例を下記記事で紹介していますが、2023/10/26 Cloud Functionsは非推奨の発表がされています。

IBM Cloud Functionsを利用してCISの送信元IPアドレス変更をSlac

元記事を表示

AWS上にコンテナを置く際のセキュリティグループについて

# はじめに
どうも、ぷっちょボール食べたくてAmazonで12個買ったら2つ目で飽きた男です。
今回は、以前書いたAWSのVPC上にコンテナサービスを置いて、セキュアなアーキテクチャを作成した際に、セキュリティグループの謎についてまとめました。
この謎について詳しく書いていきたいと思います。
お付き合いください。

https://qiita.com/inoshun/items/849a2b8d568844b0f472

https://qiita.com/inoshun/items/d24844c8fcdcd6a884bc

# セキュリティグループとは
まずセキュリティグループについて簡単におさらいしましょう。
セキュリティグループとはVPC内におけるAWSリソースまたはサービス間のトラフィックを制御するためのルールのことです。
たとえば、VPC内の負荷分散のためにロードバランサーを設置したとします。このロードバランサーでECSで実行したタスクにアクセスを分散させる場合、このタスクはロードバランサーからのトラフィックを許可する必要があります。
この許可をプロトコルやポート番号、I

元記事を表示

Pythonで「文字列の中の指定した文字列を別の文字列に置換する(replace)」の動作を確認してみた

# 概要

Pythonで「文字列の中の指定した文字列を別の文字列に置換する(replace)」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/python/string/index20.html

# 実装

以下のファイルを作成しました。
“`sample.py
print(“Copyright 2018”.replace(“2018”, “2019”))
print(“box width 100, box height 50”.replace(“box”, “div”))
print(“Apple”.replace(“PP”, “oo”))
print(“”)
print(“AA BB AA CC AA DD AA EE”.replace(“AA”, “aa”))
print(“AA BB AA CC AA DD AA EE”.replace(“AA”, “aa”, 2))
“`

以下のコマンドを実行しました。
“`
$ python3 sample.py
Copyright 2019
div width 1

元記事を表示

[Python] 関数のデフォルト引数の挙動メモ

# はじめに

Pythonで関数のデフォルト引数にリストなどのイミュータブルな物は渡してはいけない事は、リンターが警告を出してくれていたので知っていました。
しかし、関数を実行する事でデフォルト値を渡す事がトラブルの元になる事は知りませんでした。
備忘録として記事にします。

リンタの設定を見直すべきですね。

# 環境

“`:py -VV
Python 3.11.4 (tags/v3.11.4:d2340ef, Jun 7 2023, 05:45:37) [MSC v.1934 64 bit (AMD64)]
“`

# コード

“`python
import time
from datetime import datetime

def now():
print(“now”)
return datetime.now()

def test1(l=[]):
l.append(“hage”)
print(l)

def test2(t=now()):
print(t)

test1()
test1()

test2()
time.sleep(1

元記事を表示

Python環境について[備忘録]

# Pythonの環境について
当方Pythonぺーぺー何もわかっておらんの民です.

色々あってPythonを触ることになったのですが,Anacondaさん,どうにもよくわからんということで色々と調べた結果**pyenv+venv環境**が良いらしいということで実際に構築したので備忘録なり.

## pyenvってなんだ
まず[pyenv](https://github.com/pyenv/pyenv)ってなんだ.

> Simple Python Version Management: pyenv

ということで**Pythonのバージョン管理システム**らしいです.Pythonくんは良くバージョンがどうちゃらこうちゃらと問題が起こるってのをよく聞くので,Pythonのバージョン管理ができたら良さそう.

### インストールとか
まずはGitHubからcloneする.
“`bash:install
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
“`
次にパスとかの設定.
“`bash:path setting
e

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その28 list と文字列の変換

# 目次と前回の記事

https://qiita.com/ysgeso/items/2381dd4e3283cbed49a0

https://qiita.com/ysgeso/items/51c2eba867aa560808c6

# 実装の進捗状況と前回までのおさらい

## 〇×ゲームの仕様と進捗状況

1. `正方形で区切られた 3 x 3 の 2 次元のゲーム盤上でゲームを行う`
2. `ゲーム開始時には、ゲーム盤のすべてのマスは空になっている`
3. `2 人のプレイヤーが遊ぶゲームであり、一人は 〇 を、もう一人は × のマークを受け持つ`
4. `2 人のプレイヤーは、交互に空いている好きなマスに自分のマークを 1 つ置く`
5. `先手は 〇 のプレイヤーである`
6. __プレイヤーがマークを置いた結果、縦、横、斜めのいずれかの一直線の 3 マスに同じマークが並んだ場合、そのマークのプレイヤーの勝利とし、ゲームが終了する__
7. __すべてのマスが埋まった時にゲームの決着がついていない場合は引き分けとする__

仕様の進捗状況は、以下のように表記します。

*

元記事を表示

状態空間モデルを基礎から学ぶ(理論からpythonによる実装まで) part0

# 動機
時系列解析の強力な道具である状態空間モデルを勉強したい。せっかくなら学んだ内容を整理して、Qiitaに記事を投稿してみたい。

# 予定
次の内容について文献を読みつつ理論・式展開を整理する。また、pythonを用いて(できる限り)スクラッチで実装してみる。
1. [線形ガウス型状態空間モデルとカルマンフィルタ](https://qiita.com/matsumoto616/items/d30091274784a28eb872)
1. 線形ガウス型状態空間モデルの実装
1. 線形非ガウス型状態空間モデルと非ガウス型フィルタ
1. 線形非ガウス型状態空間モデルの実装
1. 非線形ガウス型状態空間モデルと拡張カルマンフィルタ、アンサンブルカルマンフィルタ
1. 非線形ガウス型状態空間モデルの実装
1. 非線形非ガウス型状態空間モデルと粒子フィルタ
1. 非線形非ガウス型状態空間モデルの実装

:::note warn
現時点であまりよくわかっていないので、上記の分類は正しくない可能性があります。
:::

上記で基礎は抑えられると思っているので、その後は論文などを読みつつ状態空間

元記事を表示

ニュース記事ヘッドラインの感情分析による株価予測

### 実行環境

– Google Colaboratory, Python 3.8
– 使用ライブラリ: pandas, numpy, matplotlib, sklearn, vaderSentiment, datetime, yahoo_finance_api2, requests,LinearRegression, SVR, RandomForestRegressor, mean_squared_error, r2_score
– API: Yahoo Finance, NewsAPI

### 目次

1. イントロダクション
2. データ取得と準備
3. 分析
4. 結果
5. 考察
6. 課題と苦労した点

### イントロダクション

こんにちは!
私は機械学習を学び始めたばかりの初心者ですが、今回はじめて記事を投稿します。
これまで学んだ知識の初のアウトプットとして、課題設定から分析まで一貫して実施した内容になっております。

今回の取り組みでは、ニュース記事のヘッドラインについて感情分析行い、株価との関連性を見出して予測モデルの構築に挑戦しました。
ただし、非常に

元記事を表示

【メモ】SAMのLambdaの記述

# 前提
Runtimeはpythonを指定。
今回使用したキー情報のみを記述。

## 記述例

“`yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Transform: AWS::Serverless-2016-10-31
Resources:
# S3 Buckets
BucketName:
Type: AWS::S3::Bucket

# Lambda Functions
FunctionName:
Type: AWS::Serverless::Function # Serverless::FunctionがLambdaのこと
Properties:
Handler: app.handler #ここはファイル名.メソッド名で記述する。pythonの場合、app.pyのhandler関数を呼び出すということになる
Runtime: python3.11
CodeUri:

元記事を表示

OTHERカテゴリの最新記事