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

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

Excelから使える!PythonのPandasとMatplotLibを使った20のデータ分析手法

## 第1章: Pandasとは何か

Pandasは、Pythonでデータ分析を行うための強力なライブラリです。大量のデータを効率的に処理し、分析するための機能を提供します。Pandasの主要な機能には、データの読み込み、操作、集計、結合などがあります。

Pandasの中心的なデータ構造は、DataFrameとSeriesです。DataFrameは2次元のテーブル形式のデータを扱うのに適しており、Seriesは1次元の配列のようなデータを扱います。

以下は、Pandasを使用して簡単なDataFrameを作成する例です:

“`python
import pandas as pd

# サンプルデータの作成
data = {
‘名前’: [‘田中’, ‘佐藤’, ‘鈴木’],
‘年齢’: [25, 30, 28],
‘職業’: [‘会社員’, ‘自営業’, ‘公務員’]
}

# DataFrameの作成
df = pd.DataFrame(data)

print(df)
“`

この例では、辞書形式のデータからDataFrameを作成しています。

元記事を表示

【Python】選択ソート

## 概要
選択ソートは、基本的なソートアルゴリズムの一つです。選択ソートの仕組みは、リストの中で最小(または最大)の要素を見つけ、それをリストの先頭に配置し、残りの部分について同じ操作を繰り返します。
選択ソートの計算量はO(n^2)で、効率はそれほど高くありません。

この記事では、Pythonでの選択ソート実装方法について説明します。

## コード
以下がPythonでの選択ソートの実装例です。

“`python
def selection_sort(arr):
n = len(arr)
# リストの全ての要素を繰り返し処理
for i in range(n):
# 残りの部分の最小値を探す
min_idx = i
for j in range(i + 1, n):
if arr[j] < arr[min_idx]: min_idx = j # 最小値を現在の位置にスワップ arr[i], arr[min_idx]

元記事を表示

【Python】飛行機の運動をシミュレートするプログラムをつくる その5 「SAC」

# はじめに

今回は以下の記事の続きです。

https://qiita.com/yuki_2020/items/fba0e7595afde373f54a

本プログラムは**飛行機をSACにより連続値制御で操縦することを目指したプログラム**です。

飛行のモデリングは『航空機力学入門 (加藤寛一郎・大屋昭男・柄沢研治 著 東京大学出版会)』の3章「微小擾乱の運動方程式」をベースに作成しています。

そしてSACの実装は東京大学松尾研究室の「サマースクール2024 深層強化学習」をベースにしております。

水平旋回を目指して学習させた結果が以下です。

![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/993303/862590a4-f694-b140-770c-96be4cc9a143.gif)

プログラムはgooglecolabで実行できるように公開しています。

https://colab.research.google.com/drive/1p96ASmsCG11bW

元記事を表示

asyncioを使ったPuLPで、複数ソルバーの並列処理

## 概要

数理最適化のモデラーであるPuLPで**異なるソルバーを並列実行**して、高速に解を求めてみましょう。

PuLPではさまざまなソルバーを扱うことができます。本記事では、CBCとHiGHSを使います。

* CBC: https://github.com/coin-or/Cbc
* HiGHS: https://github.com/ERGO-Code/HiGHS

並列実行のうちの1つでも解が得られたら、すべての処理を終了することで、別々に解くより速く解ける可能性があります。

## 準備

PuLPとCBCは、次のようにインストールできます。

“`
pip install pulp
“`

HiGHSのインストールは、[Installation](https://github.com/ERGO-Code/HiGHS?tab=readme-ov-file#installation)を参照してください。
私は、`brew install highs`でインストールしました。

## pulp_async.py

asyncioを使って並列実行します。asyncioは

元記事を表示

操作変数法の流れをまとめてみた(単回帰分析からの2段階最小二乗法)

# はじめに
「Pythonによる計量経済学入門」を読みました。
そこで操作変数法が紹介されていたので、書籍をベースに自分で調べた内容をメモします。

https://amzn.to/3MSTwAV

# 流れ
1. OLS推定: まず、OLSを用いてモデルを推定します
1. Breusch-Pagan検定: OLSの誤差項に異分散性があるかを確認します。異分散性が認められればGMM、認められなければ2SLSを使います
1. IV推定: 内生性が疑われる場合は、Breusch-Pagan検定の結果を参考に2SLSまたはGMMを用いて推定します
1. Hausman検定: OLSとIV法の推定結果を比較し、内生性があるかどうかを判断します

# そもそも操作変数(IV)法とは
**操作変数法とは、モデルに内生性の問題がある場合に、それを解決するための手法です。**

ここでの内生性とは、説明変数が誤差項と相関していることを指します。この問題があると、通常の最小二乗法(OLS)ではバイアスのある推定量が得られてしまいます。

## 内生性の問題
計量経済学では、モデルにおいて説明変数(独立

元記事を表示

CORDICアルゴリズムによるTan関数の近似

# はじめに
CORDICは、関数電卓などに用いられる簡易的な関数近似アルゴリズムである。そこで今回は、CORDICを用いてPythonで三角関数のTan関数の値を近似することを目的とし、誤差の評価を行う。

# アルゴリズム

CORDICのアルゴリズムは以下の大変分かりやすい記事を参考にした。

https://teamcoil.sp.u-tokai.ac.jp/calculators/column/100224/index.html

例として、$tan 60^\circ$の近似値を算出することを考える。

以下のアルゴリズムについて図を用いて説明する。

(1)$tan 45^\circ$は上辺と底辺の比率が1対1の直角三角形の傾きである。

(2)上辺と底辺の比率が1対2の直角三角形を(1)の三角形の斜辺に底辺が来るような倍率で付け加える。

(3)目的角(図の赤線)が$60^\circ$と比較して大きいかどうかを調べ、大きければ、1対$2^2$の比率の直角三角形を(2)と同様のアルゴリズムで付け足し、小さければ負の角度方向に直角三角形を付け足す。

(4)(1)から(3)

元記事を表示

Kaggleの楽しみ方 〜コンペだけじゃない!データセットで気軽にEDAに挑戦しよう〜

# はじめに
こんにちは!
Kaggleという名前を聞くと、どうしても「世界中のデータサイエンティストたちが集まる競争の場」というイメージを持ってしまいませんか?
でも実は、Kaggleはコンペに参加しなくても十分に楽しめる、データサイエンスのおもちゃ箱なんです!今回は、競争とは違うKaggleの楽しみ方「データセットを使ったEDA(探索的データ解析)」を中心に、その魅力をご紹介します。

## 1. コンペに参加しなくてもOK!💡

「Kaggleって競争がメインじゃないの?」という声、よく聞きます。
たしかに、Kaggleにはたくさんのコンペが開催されていますが、これだけが全てじゃありません!むしろ、データセットを使って **自分なりの発見を楽しむ** ことができるのも、Kaggleの醍醐味なんです。

たとえば、Kaggleの「データセット」ページには数えきれないほどのデータが公開されています。それを自由に使って、自分のペースで分析をしたり、可視化したりするだけでも十分に楽しめますよ!
しかも、他の人が公開しているEDAノートブックにコメントや「いいね!」が

元記事を表示

Flaskで作るAI-chatbotアプリケーション🐑💨

## はじめに
こんにちは、駆け出しエンジニアのmokotaです。
今回はAI-chatbotアプリの作成をしてみました。

「pythonを学習してるけど、何も実績がない…。」「AIを活用したアプリを作りたい!」そんな方にアプリを作るきっかけになればとても嬉しいです!コードの詳しい説明はあまり記載していないので、ご自分で調べていただけると幸いです。参考文献は、可能な限り載せています。とりあえず動くものを作るという目的で読んでもらえたらいいと思います。

## 環境
・macbook-pro(Intel)
・VScode
・Python 3.11.5

※今回はmacユーザー向けの記事となります。

## 完成イメージ

まずは、どんなものを作るかゴールを決めないと始まりません。
世の中にAIチャットサービスはたくさんありますが、その中でも
市役所などに導入されているチャット問い合わせサービスを今回の目標としたいと思います。

↓こんな感じのイメージ
![スクリーンショット 2024-09-19 16.12.51.png](https://qiita-image-store.s3

元記事を表示

Poetryを使ってPythonパッケージを作成してみた

# 背景・目的
Poetryを最近触れる機会があったので、あらためて知識の整理と簡単な動作を確認してみます。

# まとめ
下記に特徴をまとめます。

| 特徴 | 説明|
|:–|:–|
|Poetry|Python で依存関係を管理およびパッケージ化するためのツール

プロジェクトが依存するライブラリを宣言でき、ライブラリが管理 (インストール/更新) される

Poetry は、繰り返しインストールを確実にするためのロックファイルを提供し、配布用にプロジェクトを構築できる|
|System requirements|Python 3.8以上が必要|
|Project setup|-|
|プロジェクトを作成する|poetry new <プロジェクト名>により可能|
|Python Version|他のパッケージとは異なり、Poetry は Python インタープリターを自動的にインストールしない

パッケージ内の Python ファイルをスクリプトやアプリケーションのように実行したい場合は、それらを実行するための独自の Python インタ

元記事を表示

custom tkinter × mail  複数のメール作成を簡単に📧 コピー1つでメールが書けるコードを公開

# ちょこっと業務を簡略化したい
 この記事では、ちょこっと効率化させたいことをプログラミングやツールをつかって解決していきます
ちょこっと削減した時間を、もっと人生楽しくなることに使いましょう!

# 💗本日のお題
## 📧 ウィジェット風 複数の定型メール文章のコピー 📧

営業や得意先とのやりとり、社内で業務を依頼する際など、業務中何度も同じような文章を送ることありますでしょうか?
コピーして、貼り付けでも良いですが、以前書いた文章を消して書き直すこと、めんどくさくないですか?
今回は、custom tkinterでウィジェット風に定型メール文章のコピーができる方法を共有します✨

## pythonデスクトップアプリ(custom tkinter)解決してみた
<環境>
🖥 Windows
📩 Outlook
🐍 python 3.12.5
🏆 VSCode

毎回、こんなメールを送っていると仮定します。↓
※他にも複数定期的に送っている文章あり

![スクリーンショット 2024-09-21 8.18.28.png](https://qiita-image-store.

元記事を表示

Open-RMFで複数ロボットとエレベータの連携をシミュレーションできる環境で、オフィスビルにおける簡単な館内配送シミュレーションをしてみた その3 荷物のサイズによるロボットの使い分けの試みと得られた知見

# 1. はじめに
先日、[Open-RMFで複数ロボットとエレベータの連携をシミュレーションできる環境で、オフィスビルにおける簡単な館内配送シミュレーションをしてみた](https://qiita.com/bebebefu/items/6fc0ede2af08248fbfd6)[[1]](#参考文献)と[Open-RMFで複数ロボットとエレベータの連携をシミュレーションできる環境で、オフィスビルにおける簡単な館内配送シミュレーションをしてみた その2 時間帯別荷物搬入個数の配送への反映](https://qiita.com/bebebefu/items/70e50877b7c8fe4c7fb5)[[2]](#参考文献)にて濱野ら[[3]](#参考文献)の論文を参考に、オフィスビルにおける館内配送を対象にシミュレーションをしてみました。

これらの記事で実施してきたシミュレーションでは、エレベータとの連携や荷物の搬入時間について反映してきましたが、荷物のサイズは考慮にいれていませんでした。世の中にある搬送ロボットは、搬送容量が多種多様であり、小さいものを運べるロボットから大きなものまで

元記事を表示

Whisperとdeep-translator:を使用したYouTube動画の高精度文字起こしと翻訳

# WhisperとGoogle ColabでYouTube音声の文字起こしと日本語翻訳を行う方法

今回は、**Whisperモデル**と**Google Colab**を使用して、YouTubeの音声を文字起こしし、日本語に翻訳する方法を解説します。特に、英語と日本語のテキストを見やすく表示する方法に焦点を当てます。

## 目次

1. [はじめに](#はじめに)
2. [環境のセットアップ](#環境のセットアップ)
– [Google ColabでのGPU設定](#google-colabでのgpu設定)
– [必要なライブラリのインストール](#必要なライブラリのインストール)
3. [コードの説明](#コードの説明)
– [ライブラリのインポート](#ライブラリのインポート)
– [YouTubeから音声をダウンロードする関数](#youtubeから音声をダウンロードする関数)
– [テキストを翻訳する関数](#テキストを翻訳する関数)
– [音声を文字起こしし、翻訳する関数](#音声を文字起こしし翻訳する関数)
– [メイン関数]

元記事を表示

【Django】003. フォームでの送信

前回はDjangoのテンプレートについて見ていきました。
[【Django】002. テンプレートの利用](https://qiita.com/ys_dirard/items/6d26f32e0a7cfcaa08ea)

今回はDjangoでのフォームを使ったデータの送信についてみていきます。

今回も以下の本を参考にしています。

https://www.shuwasystem.co.jp/book/9784798062419.html

## フォームの準備

### テンプレート (ここではform.html) を準備する

“`html:index.html
{% load static %}




{{ title }} 学生実験のテーマ割当を自動化するPythonスクリプト

# はじめに

学生実験におけるテーマ割り当ては、学生の希望をなるべく反映させつつ、テーマごとの定員を超えないように行う必要があります。本記事では、70名の学生を6つのテーマに割り振るためのスクリプトを、擬似的な希望リストの作成から実際の割り振りまでの流れを解説します。割り振りの平等性を保つため、ランダム要素を取り入れたアルゴリズムを採用しています。

google colab 上での実行例は下記に掲載しています。

https://colab.research.google.com/drive/1mYVA5XZUmUM279qW97722bOyGeujBnLb?usp=sharing

## 概要
この割り振りプログラムは2つのステップで構成されています。
1. 学生の擬似的な希望リストの作成
2. 学生をテーマに割り振る

各テーマの定員(11〜12名)を設定し、希望順に従って学生をテーマに割り当てますが、全ての希望が満たされない場合にはランダムにテーマが割り当てられる仕組みを導入しています。

## 手順 1: 擬似的な希望リストの作成

まず、学生70名分の擬似的な希望リストを

元記事を表示

テーブルデータの探索的データ分析(EDA)とは?

### はじめに

データ分析の第一歩として欠かせないのが**探索的データ分析**です。特にテーブルデータにおいては、データの性質やパターンを理解することが、その後の分析やモデリングに大きく影響します。この記事では、テーブルデータのEDAで行うべき主要なステップや手法について解説します。

### EDAの目的

EDAの主な目的は、データの理解を深め、潜在的な問題を発見することです。これにより、データのクレンジングや特徴量エンジニアリング、さらにはモデル選定にも役立ちます。

### EDAの主要なステップ

1. **データの読み込みと基本情報の確認**

– データを適切なライブラリ(例: Pandas)を使用して読み込みます。
– 基本的な情報を確認することで、データの構造を理解します。
“`python
import pandas as pd
df = pd.read_csv(‘data.csv’)
print(df.info())
print(df.head())
“`

2. **データの概要統計

元記事を表示

アンケート解析での重回帰分析

### はじめに

皆さん、アンケートを取るときってどんなことを考えますか?回答者が本音を言ってくれるかどうか、どんな質問が効果的か、さらには集めたデータをどう分析するか… そこで登場するのが、**重回帰分析**です!

### 重回帰分析とは?

重回帰分析は、複数の説明変数を使って、1つの目的変数を予測する統計手法です。例えば、アンケートで「満足度」に影響を与える要素(料金、サービス、施設の清潔さなど)を調べるときに使います。この分析を使うことで、各要素が満足度にどれだけ寄与しているのかがわかるのです。

### アンケート解析に重回帰分析が適している理由

1. **多角的な視点**
アンケートには、様々な質問が含まれています。重回帰分析を使うことで、複数の要因を同時に考慮し、どの要因が最も影響を与えているのかを明確にできます。まるで、探偵が様々な手がかりをもとに事件を解決するかのようです。

2. **数値での解釈**
重回帰分析の結果は、各説明変数の影響度を数値で示します。これにより、どの要因を改善すれば効果的なのか、具体的なアクションにつながります。た

元記事を表示

EfficientNetB3: おすすめの効率的な転移学習モデル

### はじめに

EfficientNetB3は、転移学習に適したニューラルネットワークモデルで、特に計算効率と精度のバランスに優れています。この記事では、EfficientNetB3の概要や特徴、実際の利用方法について紹介します。

### EfficientNetB3の概要

EfficientNetB3は、Googleが提案したEfficientNetファミリーの一つで、**少ない計算リソース**で**高精度**を達成するために設計されたモデルです。EfficientNetはB0からB7までの異なるサイズのモデルがあり、B3はその中で中規模のモデルに位置しています。

EfficientNetの設計では、モデルの**幅**(ニューロン数)、**深さ**(レイヤーの数)、および**解像度**(入力画像のサイズ)を適切にスケーリングすることで、パフォーマンスを向上させています。

### 特徴

EfficientNetB3は以下の点で優れています。

– **計算効率が高い**: モデルの計算量を抑えながらも高い精度を保つことができるため、大規模な計算リソースがない環境でも使用可

元記事を表示

全ての本試験合否から進級を予測!ロジスティック回帰で挑戦してみた結果…特異度100%、感度50%!

# はじめに
こんにちは。今回は、去年の本試験の合否データを使って、自分が今年進級できるかどうかを**ロジスティック回帰**で予測してみました。結果は**特異度100%**、**感度50%**。この数字、どういう意味か気になりますよね?ここではその内容と実験の流れを紹介していきます。

## 進級予測ってできるの?
進級がかかっているテストは、まさに人生の一大事ですよね。私たち医学生にとって、再試験の結果がどうなるかは神のみぞ知る…と言いたいところですが、**本試験の結果**を使って進級を予測できないか、ちょっと試してみました。

## データの準備
まず、去年の全ての**本試験の合否**をデータ化しました。
これを説明変数(入力データ)として使います。各試験は**合格: 1**、**不合格: 0**という形でバイナリ化しました。そして、**進級できたかどうか**を目的変数(ターゲット)にしました。進級したら**1**、進級できなければ**0**です。

### データ例

| 試験1 | 試験2 | 試験3 | 進級 |
|——-|——-|——-|—-

元記事を表示

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

SnowflakeにローカルPCのAnaconda環境のjupyter notebookからつないでみました。
トライアルのSnowflake環境です。

Anacondaはインストール済みです。

# 仮想環境作成
まずはAnacondaの仮想環境を作成します。
![スクリーンショット 2024-09-20 212224.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3487310/5cdd60af-56b0-f374-ccf1-a8b02465d081.png)
左メニューの「Environments」を選んで、画面下部の「Create」をクリックします。

![スクリーンショット 2024-09-20 212422.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3487310/746cf191-6061-152e-e1a0-216e13f195b1.png)
するとこんな小画面が出てくるのでNameに今回は「Sno

元記事を表示

初めてのディープラーニング用語解説!〜エポック、イテレーション、損失関数ってなに?〜

# はじめに
ディープラーニングの勉強を始めると、専門用語がたくさん出てきて「これっていったい何?」と戸惑ってしまうことがありますよね。今回は、ディープラーニングの基本用語について、わかりやすく説明していきます。記事を読み終わる頃には、ディープラーニングの言葉がぐっと身近に感じられるようになるはずです!

## 1. エポック(Epoch)って何?
### おさらい:そもそも「学習」ってどうやるの?
ディープラーニングでは、モデル(AI)に「データ」を与えて「学習」させます。モデルがデータを見て、何度もパターンを学んでいくことで、だんだん賢くなるんです。この「何度もデータを見る」という行為に関連するのが「エポック」です。

### エポックは学習の1サイクル!
1エポックは、「すべてのデータを一通り使ってモデルを学習させる1回のサイクル」のことを指します。例えば、1000枚の猫と犬の画像があるとすると、モデルがその1000枚をすべて使って学習するのが1エポックです。

> **例え話**: エポックは「教科書を1回全部読む」ことです。1回読んだだけでは理解できないこともありますが、何

元記事を表示

OTHERカテゴリの最新記事