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

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

[Elastic Beanstalk]appじゃなくてapplicationだった

## 概要
Elastic Beanstalkでflaskを使用したlinebotを実装しようとしていたところ、
`application`が見つからないというエラーが出た

## ログ
“`
—————————————-
/var/log/web.stdout.log
—————————————-
(省略)
Nov 28 05:46:30 ip-172-31-24-160 web[4572]: Failed to find attribute ‘application’ in ‘application’.
Nov 28 05:46:30 ip-172-31-24-160 web[4572]: [2023-11-28 05:46:30 +0000] [4572] [INFO] Worker exiting (pid: 4572)
Nov 28 05:46:30 ip-172-31-24-160 web[4568]: [2023-11-28 05:46:30 +0000] [456

元記事を表示

FastAPI でデータをダウンロードさせる

Python で生成したデータを FastAPI のエンドポイントからダウンロードさせるにはどうしたらよいか、と思ってやってみたら普通に `Response` に `Content-Disposition` を指定するだけでできた、という話。

“`python
from fastapi import FastAPI, Response

app = FastAPI()

@app.get(“/download”)
def get_download():
“””データを CSV 形式でダウンロードする”””
content = “あ,い,う\n1,2,3” # CSV data
filename = “data.csv”
return Response(
content=content.encode(“cp932”),
headers={“Content-Disposition”: f’attachment; filename=”{filename}”‘},
media_type=”text/csv”,

元記事を表示

2023年の天気図をGIFアニメーションで振り返ってみる

# 概要
2023年も残りわずかということで、今年の天気図をGIFアニメーションで動画化して振り返ってみました。

# データの準備
気象庁のサイトでは毎日3時間ごと(日本時間0時除く)の日本周辺域の実況天気図を公開しています。

https://www.jma.go.jp/bosai/weather_map/

これらの天気図を使いたいところなのですが、画像のURLパスを見てみると…

“`
https://www.jma.go.jp/bosai/weather_map/data/png/20231128020830_0_Z__C_010000_20231128000000_MET_CHT_JCIspas_JCP600x581_JRcolor_Tjmahp_image.png
“`
となっていました。
最後のスラッシュの後に、日時の情報があるのでこれらを変えれば画像にアクセスできるはずです。

しかし、よくよく見てみるとURLの形式は以下のようになっています。

“`
https://www.jma.go.jp/bosai/weather_map/data/png/ #ここは

元記事を表示

[LINE BOT]Webhook URLに何を設定すべきなのかでつまづいた

## 概要
line botを作成するために、Messaging APIを使おうとしたが、
「Webhook URL」に何を入力するのかわからなかった

## 実行していた手順

AWSを活用してLINEチャットボットを作ってみた!①

## つまづいた箇所
Console内の、Messaging API設定タブの、Webhook設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1741372/07354c42-ab85-c5b6-b508-fa690729a137.png)
まずここに何を入力すべきなのかわからない

## Copilotにきく

[質問]Messaging APIで、Webhook URLには何を入力すればいいですか?
“`
Webhook URLは環境のURLそのものになります。
例えば、環境のURLが http://example.com で、
プロセスのパスが/webhookの場合、
Webhook URLは http://exampl

元記事を表示

ChatGPTとPythonで学ぶ スペクトラル埋め込み

皆さんこんにちは。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ スペクトラル埋め込み」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

こんにちは、皆さん。今日もわくわくする知識を一緒に学ぶ時間にしましょう。

今日のテーマである「スペクトラル埋め込み」は、高次元のデータを低次元に埋め込むための手法の一つです。特に、グラフデータの埋め込みによく使用されます。

スペクトラル埋め込みは大まかに以下のステップで行われます。

1. グラフのラプラシアン行列を作成します。 ラプラシアン行列は、グラフの接続性を表す行列であり、特定の性質(例えば、グラフの接続性)を分析するために使用されます。
2. ラプラシアンの固有値と固有ベクトルを計算します。固有ベクトルは、データの構造を保持しながら低次元空間に埋め込むために使用されます。

以上が主な流れになります。Pythonでは、numpyやscipyといったライブラリを使用してこれらの計算を行うことができます。

具体

元記事を表示

【競プロ】逆元の計算方法のチートシート

毎回逆元の計算方法を忘れるので、備忘録として残します。

## TLDL;
整数Nの逆元(inverse)の求め方
“`
inv = pow(N, MOD-2, MOD)
“`

## 上記の計算式が成り立つ理由
フェルマーの小定理を使います。[wiki](https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A7%E3%83%AB%E3%83%9E%E3%83%BC%E3%81%AE%E5%B0%8F%E5%AE%9A%E7%90%86)
p を素数とし、a と p は互いに素とするときに、 以下が成り立つ。
“`math
a^{p-1}≡1 (mod \ p)
“`

今回 $a^{-1}$ を modで取りたいとした時に、以下のxを求めることを考えます。

“`math
a^{-1}≡x (mod \ p)
“`

フェルマーの小定理の両辺に $a^{-1}$ をかけます。
“`math
\displaylines{
a^{p-1} \times a^{-1} ≡ a^{-1} (mod \ p) \\
a^{p-2}≡ a^{

元記事を表示

高度なSQLをまとめてみる

業務でSQL Alchemyを使うことになり、
今まで「SQLはGPTに書かせればいいだろう」と思い、
selectやwhereくらいしか覚えていなかったが今大変。

# SQL Alchemy の前提

SQL Alchemyはデータベースとのやり取りを
セッションで管理する

# Lv.1 全取得
“`python
users = session.query(User).all()
“`
Userのモデルをすべて取得する

# Lv.2 カラム指定
“`python
users = session.query(
User.name,
User.email
).all()
“`
Userモデルから”name”と”email”のみを取得する

# Lv.3 エイリアス
“`python
users = session.query(
User.name.label(“user_id”),
User.email
).all()
“`
ここでは、User.name カラムに “user_id” というラベル(別名)を付けています。
User.nam

元記事を表示

Pandasのread_csv()で小数点がつく要因と対応策

# はじめに
本記事では、Pandasライブラリの関数`read_csv()`で数値データを読み込んだ時、「.0」のように少数点がついてしまう要因とその対応策について記載します。

# 要因について
数値と空を含むデータを読み込んだ時、発生します。

## サンプルデータ
| No | 名前 | 都道府県 | 注文ID |
| —- | —- | —- | —- |
| 1 | 名前1 | 埼玉県 | |
| 2 | 名前2 | 栃木県 | 3002 |
| 3 | 名前3 | 岡山県 | 7601 |
| 4 | 名前4 | 大阪府 | |
| 5 | 名前5 | 富山県 | 3507 |

## read_csv()実行後のデータ
| No | 名前 | 都道府県 | 注文ID |
| —- | —- | —- | —- |
| 1 | 名前1 | 埼玉県 | NaN |
| 2 | 名前2 | 栃木県 | 3002.0 |
| 3 | 名前3 | 岡山県 | 7601.0 |
| 4 | 名前4 | 大阪府 | NaN |
| 5 | 名前5 |

元記事を表示

pybind11のReturn value policiesについて

## はじめに
[pybind11](https://github.com/pybind/pybind11)とはC++とpythonの相互呼び出しを実現するためのライブラリです。
boost::pythonと比較し以下の特徴があります。

* ヘッダファイルのみで利用可能
* 簡潔に記述できる(特にデフォルト引数周りで余分にマクロを書かなくてよいのが良いです)
* 古い環境はサポートされていない(Python3.6以上、C++11以上)
* 構造やキーワードがboost::pythonと似ており移行が比較的容易

本稿ではドキュメントの説明だけではわかりづらかったReturn value policiesに絞って検証を行い、理解した内容をまとめておきます。

## 各Return value policiesを検証
pybind11ではpython側にメソッドなどを公開する際にReturn value policiesを指定可能です。
現状用意されている値は以下の通りです。
| enum値 | 説明 |
|:-|:-|
| return_value_policy::copy |新しいオ

元記事を表示

【Django】プロジェクト名を変更するプログラム

# はじめに
djangoでプロジェクトを作成後プロジェクト名を変えることがあった(普通はないと思うのですが…)ので、[こちら](https://qiita.com/meklick/items/ae2fbd01516f8e5a44cc)を参考に修正したのですが、(普通はないと思いますが)またプロジェクト名を変更するようなときに同じことをやりたいくない&コードを書く練習になりそう、ということでプロジェクト名を変更してくれるプログラムを作成しました。

# コード
rename_django_project.pyという名前でコードを作成しました。
以下、コード全体
“`python:rename_django_project.py
# プロジェクトディレクトリに移動してから実行する

import glob, re, os

# 現在のプロジェクト名を取得する
old_project_name = glob.glob(“./*/settings.py”)[0].split(“/”)[1]
new_project_name = input()

old_projectdir_path

元記事を表示

【Python】dictionaryを使う前に、超便利メソッドを知ってくれ!エラーハンドリングはもうしなくていい!

どうも。ちょっぴり便利なコードを1000年集め続ける、おたくの[フリーレン](https://frieren-anime.jp/)です。
[東大GDSC](https://twitter.com/GDSCut)アドベントカレンダーへの寄稿です

## よくないね
辞書型でデータを管理しているとき、こんなコード書いていませんか?
“`python: よくないね.py
try:
#keyが存在しなかったらエラーが出る!!!
nanka_tsukau(dictio[key])
except KeyError:
#key無し???(nanka_tsukau()のエラーの可能性も)
nanka_tsukau(0)
“`

要するに、`key`が`dictio`に登録されているかもしれないし、登録されていないかもしれない。だから`key`がないときのエラーをハンドリングして、0を明示的に記述した方のコードを書く。

こんな面倒なこと、もうやめませんか?

## いいね
### 良いメソッドを紹介しましょう
#### 取得
`get(キー)`メソッドが便利です。

元記事を表示

[Elastic Beanstalk]502 Bad Gatewayの原因はファイル名ミス

## 概要
Elastic Beanstalkのチュートリアルをしていたら502 Bad Gatewayに遭遇。
原因は `application.py` とすべきところを `applications.py` にしていただけだった。

## チュートリアルの内容
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/create-deploy-python-flask.html#python-flask-setup-venv

## 事の顛末

##### 1. eb initを実行して、初期設定する
“`
eb init -p python-3.7 flask-tutorial –region us-east-2
“`

##### 2. もう一度初期化する
“`
eb init
“`

##### 3. アプリケーションをデプロイする
“`
eb create flask-env
“`

##### 4. eb openでWebサイトを開く
“`
eb open
“`

##### 5. Hel

元記事を表示

画像認識でCatとDogの識別「Python」

はじめに
私は幼い頃に二匹犬飼ったことがありました、CATとDOGはかなり仲良く私達の生活の中に存在感があります、今回の画像認識アプリ製作のテーマはCATとDOGの識別を選びました。
実際のアプリ製作アプリケーション
先に実際のアプリケーションをお見せします。
https://flask-render-seikabutu1.onrender.com

目次

1\. 実行環境
2\. 画像収集
3\. 実行
4\. HTMLの作成
5\. 試行錯誤
6\. 結果と考察
7\. WEB上で画像認識
8\. まとめ

1.実行環境

・Visual Studio Code
・Google Colaboratory

2.画像取集・画像認識

画像を用意ためにDowndload後 500枚ずつ画像をCATとDOGのフォルダを分けて、GoogleDrive上に保

元記事を表示

Pythonで「累算代入演算子(複合代入演算子)の使い方」の動作を確認してみた

# 概要

Pythonで「累算代入演算子(複合代入演算子)の使い方」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/python/var/index6.html

# 実装

以下のファイルを作成しました。
“`sample.py
num = 10
print(“num = ” + str(num))

# num に 5 を加算します
num += 5
print(“num = ” + str(num))

# num に 10 を乗算します
num *= 10
print(“num = ” + str(num))

str = “Hello,”
str += “Python”
print(str)

str = “Good!”
str *= 4
print(str)
“`

以下のコマンドを実行しました。
“`
$ python3 sample.py
num = 10
num = 15
num = 150
Hello,Python
Good!Good!Good!Good!
“`

# まとめ

何かの役に立て

元記事を表示

Python イテラブル・イテレーター・ジェネレータ式を簡潔に

Pythonを学ぶなかで、`イテラブル`、`イテレーター`、`ジェネレータ式`という存在に直面しました、、
これらはデータの処理やアルゴリズムの実装において非常に重要なものだそう。
本記事では、これらの概念をなるべく簡潔にまとめてみました。

# イテラブル (Iterable)
イテラブルは、メンバーを一つずつ返すことができるオブジェクトです。
リスト、タプル、文字列、辞書など、Pythonの多くの組み込みデータ型がイテラブルです。

### 特徴
– forループで繰り返し処理が可能
– イテレーターに変換できる(`iter()`関数を使用)。

### 例
“`py:python
my_list = [1, 2, 3]
for item in my_list:
print(item)
#->1
#->2
#->3
“`
### イテラブルではないもの
イテラブルでないとは、forループなどを使い、その要素を一つずつ取り出すことができないことを意味します。

#### 整数 (int)

整数は単一の数値を表すため、イテラブルではありません。例えば、for i in 5

元記事を表示

【気象データで時系列解析①】定常性

# 概要
シリーズ「気象データで時系列解析」では、気象データを例に時系列解析の基礎を学びます。

今回は、**定常性**について扱います。

# 定常性とは
定常性には大きく2つあって、**弱定常**と**強定常**があります。

## 弱定常の定義
系列$\\{y_t\\}$が**弱定常**であるとは、

– ある$\mu$が存在して、任意の$t$に対し$E[y_t]=\mu$
– 任意の$k$に対しある$\gamma_k$が存在して、任意の$t$に対し$\text{Cov}[y_t,y_{t-k}]=\gamma_k$

を満たすことです。

つまり、平均と共分散が時刻$t$によらず一定(ただし共分散はラグ$k$に依存してよい)であるような系列のことです。

グラフで見ると、ある平均値まわりをずーっと同じ振れ方でギザギザしているような感じになります

単に「定常性」と言ったときは、この弱定常を指すことが多いです。

## 強定常の定義
一方、系列$\\{y_t\\}$が**強定常**であるとは、

– 任意の$k$に対して、$y_{t_1},\cdots,y_{t_n}$の同時分布

元記事を表示

pickle の逆アセンブリの命令の解説 (pickletools 使用)

pickle で作成したファイルをデバッグしたい場合に、逆アセンブリを読むこともあると思います。

こちらの記事がとても丁寧に解説されていて、非常にわかりやすく助かりました。

https://qiita.com/tanuk1647/items/4c2a305c7cc4e12ef99d

ですが、`pickletools` のプロトコル(バージョン)が違うからなのか、こちらに掲載されていないニモニックもあり、あまり日本語でまとまっているサイトも見当たらなかったので、いくつか追加で解説していきたいと思います。今回使用したプロトコルは `PROTO 4` です。

# STACK_GLOBAL (スタックを参照する GLOBAL)

冒頭の記事で紹介されている `GLOBAL` オペコードでは 2つの引数を取ってオブジェクトを作成しますが、 `STACK_GLOBAL` はかわりにスタックからオブジェクトを2個ポップして、(プッシュされた順に)`module_name` と `class_name` とし、`”module_name.class_name”`をスタックにプッシュします。

元記事を表示

YouTubeタイトルを通じた日本経済の理解 【形態素解析・感情分析】

# 目次
1 . 本記事の最終目標
2 . 実施手順
3 . 結論
4 . 感想

# 実行環境
・Python3.10.12
・Google Colaboratory

# 1.本記事の最終目標
この記事では、ビジネスリーダーが直面する日々の課題に対処するためのデータ駆動型アプローチを探求します。具体的には、Pythonを用いた自然言語処理技術を活用し、YouTubeのタイトルを分析することで、日本経済の動向を洞察し、ビジネスマンとしての洗練された見識を磨くことを目指します。また、このプロセスを通じて、現代ビジネスにおけるデータ分析の重要性と効果的な活用法を明らかにし、読者の皆様がより戦略的な意思決定を行えるようサポートします。なお、このブログはAidemy Premiumのカリキュラムの一環で、受講修了条件を満たすために公開しています。

:::note info
データ駆動型アプローチ(Data-Driven Approach)とは、決定、プロセス、または企画を行う際に、直感や経験だけでなく、客観的なデータ分析を重視する方法です。
:::

# 2.実施手順
⑴ Youtube

元記事を表示

LLMの信頼性をどのように評価するかその2:Arthur Benchを使う

# はじめに
みなさん、こんにちは、M&Aクラウドの尾村です。以前、[LangCheckを紹介する記事](https://qiita.com/homura99/items/82d1e4159707cb8327c4)を書きました。今回は、同じようなツールですが、tensorboardのようなUI付きで確認できる[Arthur Bench](https://github.com/arthur-ai/bench)を試してみたので紹介したいと思います。Arthur Benchは、アメリカのスタートアップ[Arthur.ai社](https://www.arthur.ai/)が開発しているLLM評価ツールです。Arthur社はArthur Benchの周辺ツールであるArthur ShieldやArthur Scopeをクラウドで提供することで利益を得ているようです。今回は、公式ドキュメントを参考に私の環境で試してみたのでその結果をお伝えします。

# 環境設定
公式にあるようにinstallしていきます。私は仮想環境上で試したいので、以下のコマンドで、benchenvという仮想環境を作成し、ア

元記事を表示

パイソンでアスキーからcsv

以下は、指定された処理をPythonで実行するコードです。空白を無視して特定の文字列を抜き出し、CSVに書き出します。

“`python
import csv

# ASCファイルのパス
asc_file_path = “path/to/your/file.asc”

# CSVファイルのパス
csv_file_path = “path/to/your/output/file.csv”

# データ抽出とCSV書き出しの関数
def process_asc_and_export_to_csv(asc_path, csv_path):
with open(asc_path, ‘r’) as asc_file, open(csv_path, ‘w’, newline=”) as csv_file:
csv_writer = csv.writer(csv_file)
csv_writer.writerow([“ExtractedData”]) # CSVヘッダー

for line in asc_file:

元記事を表示

OTHERカテゴリの最新記事