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

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

何故Windows上でPythonを動かさず、WSL2+Dockerを使うのか

筆者の業務用PCのOSは現在Windows11です。
その中でPython関連のプログラムを動かす際にはWindows+Pythonという形で動かさず、
Windows Subsystem for Linux 2(以下WSL2と表記)内にDocker-CEをインストールし、
Dockerコンテナを建ててその中でPythonを動かしています。

「なぜわざわざ面倒くさそうなこの方法を使うのか?」について説明する機会があったため、整理を兼ねてこの記事を書くことにします。

# 1. Windows VS Linux
基本的にPythonの実行速度はWindowsよりもLinux環境のほうが速いというのが通説です。
(様々なエンジニアの方が検証されていますので、詳細は省きます)

またデファクトスタンダードもLinux環境であることから、インターネット上の情報もLinuxで動かすことを前提としているものが多い印象があります。

基本的に実行環境によってプログラムの書き方が大幅に変わることは無いのですが、
頻繁に行うことの多いファイル操作処理がWindowsとLinuxでは異なるため、共通化す

元記事を表示

Python で PDF の暗号化および復号化

## はじめに
データのセキュリティは、多くの組織や個人にとって非常に重要です。特に機密情報が関わる場合には、さらに重要性が増します。PDFファイルを暗号化することで、認可された人だけがその内容にアクセスできるようにすることができます。本記事では、Pythonを使用してPDFファイルを暗号化および復号化する方法について探ってみます。必要な場合には、Pythonコードを使用してドキュメントを復号化することもできます。以下に詳細な手順をご紹介します。
## ツール
* 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-iceblue.com/Download/

元記事を表示

ChatGPTとPythonで学ぶ Gradio:データ可視化編

おはこんばんちわ。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ gradio:データ可視化編」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

おはようございます、または、お疲れ様です。今日はgradioを使ったデータ可視化についてお話します。

gradioは、機械学習モデルのデモやプロトタイピングを簡単にするためのPythonライブラリです。このライブラリの美点は、機械学習モデルにインターフェースを作成し、簡単に共有できることにあります。

データ可視化の観点から言えば、gradioを使うと、機械学習モデルの出力を視覚的に理解しやすくするために、様々なタイプの出力(テキスト、数値、画像、グラフなど)を簡単に表示できます。

例えば、次のようにして画像分類器の結果を表示することができます。

“`python
import gradio as gr
import tensorflow as tf
import numpy as np

# Load i

元記事を表示

Pythonコードを使って画像をPDFに変換する

画像をPDFファイルに変換することは、画像コンテンツを保存、表示、共有する効率的な方法です。 スキャンした文書でも、撮影した写真でも、デジタル画像のコレクションでも、画像をPDFファイルに変換することで、整理や転送のプロセスが簡素化されます。 同時に、PDF文書は画質を保持し、ファイルサイズを縮小し、画像を表示する順序を最大化します。 この記事では、**Pythonコードを使って画像をPDFに変換する方法**を紹介します。

– **[Pythonで単一の画像をPDF文書に変換](#pythonで単一の画像をpdf文書に変換)**
– **[Pythonでフォルダ内の複数画像をPDFに変換](#pythonでフォルダ内の複数画像をpdfに変換)**

この記事で使用する方法には、[Spire.PDF for Python](https://www.e-iceblue.com/Introduce/pdf-for-python.html)が必要です。これは公式ウェブサイトからダウンロードするか、PyPIを使用してインストールできます: pip install Spire.PDF。

##

元記事を表示

AWS Lambda(Python)からOpenAIのGPT4のAPIを呼び出してみた

[Supership](https://supership.jp/)の名畑です。[スナックバス江](https://snackbasue.com/)は肩の力を抜いて見られるのでいいですね。年齢を重ねる毎にこういう作品が好きになっていきます。

## はじめに

[AWS(Amazon Web Services)](https://aws.amazon.com/jp/)でWebアプリを作ることがあるのですが、その過程で触れてきたものについて、せっかくなので要点だけを抽出して残しておくことにしました。

特に目新しい内容はありませんが、**AWS**や**OpenAI**のアカウント作成も含めて一通りの流れを残すので、いい具合の備忘になればと。

今回は[Lambda](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html)を経由して[OpenAI](https://openai.com/)の**API**を叩くまでをまとめます。

## Lambdaとは

> AWS Lambda は、サーバーをプロビジョニングま

元記事を表示

OpenCVの(BGR)に悩む方へ

## はじめに: OpenCVにおける画像の色情報処理について

OpenCVでは色情報をBGRの順番で扱っています。これは、例えばimg.shape = (1920,1080,3)のようなカラー画像を取り扱う場合に、3チャンネル目がBGR(青、緑、赤)の順番で保存されていることを意味します。したがって、cv2.imread()関数を用いて画像を読み込む際には、色情報は自動的にBGR形式で取得されることになります。

このBGR形式は、他の一般的な画像処理ライブラリやツールがRGB形式を使用することとは対照的です。このため、OpenCVを使用する際は、この色情報の取り扱いに特に注意が必要です。

### 問題になるケース
前述の通り、OpenCVは色情報をBGRの順で処理しますが、Pillow、Matplotlib、Tkinterなどの他の一般的な画像処理ライブラリやツールはRGB順で色情報を扱います。この違いが問題となる主なケースは、OpenCVとこれらの他のライブラリを併用する場合です。特に、画像の表示や変換を行う際に色の不整合が生じやすくなります。

例えば、OpenCVで画像を

元記事を表示

Pythonを使ったWEBサイトの自動評価

# はじめに
WEBサイトの機能改善後に定期的に行うリグレッションテストをPythonを用いて自動化する方法を検討しました。
読んでいただいた方が少しでも参考になれば幸いです。

# こんな人に読んでほしい
* Pythonを使用して作業効率を向上させたい方
* WEBサイトを運営している方

# 前提条件
* PC上にPythonの実行環境が事前に構築されていること

# 自動化したいこと
* WEBサイトの自動表示
* スナップショット取得
* スナップショットをExcelに貼付け

その後、Excelを目視で確認します。
今回は、YahooのTopおよび知恵袋のページを開いてスナップショットを取得してみます。

なお、Pythonおよびライブラリは下記バージョンを使用しています。
* Python 3.11.5
* selenium 4.12.0・・・PythonからWebブラウザを操作するためのライブラリ
* openpyxl 3.1.2・・・PythonからExcelを操作するためのライブラリ

# Pythonコード
~~~php:main.py
import os
imp

元記事を表示

大規模言語モデルLLMを活用したアプリ開発に挑戦!

# はじめに
web開発の学習のアウトプットとして大規模言語モデルを活用したwebアプリを作成しました。
備忘録を兼ねて開発の詳細について記していこうと思います!

### 目次
[1. アプリの概要](#1アプリの概要)
[2. アプリを作ったきっかけ](#2アプリを作ったきっかけ)
[3. アプリの機能](#3アプリの機能)
[4. 使用技術](#4使用技術)
[5. こだわったところ](#5こだわったところ)
[6. 大変だったところ・詰まったところ](#6大変だったところ・詰まったところ)
[7. 追加したい機能・改善点](#7追加したい機能・改善点)
[8. 学んだこと](#8学んだこと)

# 1.アプリの概要
一言で言うと、チャットアプリです。
研究室の学生に向けて作成したもので、研究関連の資料に特化したチャットボットを作成し、その内容について質問することができるアプリです。

開発期間は1ヶ月程度でした。

### GitHubレポジトリ

https://github.com/kizataka/chatbot_lab

### イメージ

アプリは3画面構成になってい

元記事を表示

ARC170回答メモ

# 0.はじめに
 前回は見逃していたため、久々のARC。1問は解きたいと思っていましたが
 なんとかAだけクリアできました。
 Bもあがいてみましたが、思い描く仕様を実装するにはスキルが足りず
 その仕様も後に解説と見比べると今一だったので、まだまだ修行が足りなそうです。
 とはいえ、去年からの緑はキープし、初のレート900台(901ですが・・・)に達しました。

# 1.A – Yet Another AB Problem
 単純な解き方だと穴が発生してその穴に気づかないと嵌る問題(個人の感想)。
 【考え方】
  〇基本ケースのカウント
  ・S[i]がB&T[i]の時をBA、S[i]がA、T[i]がBの時をABとする。
   ・SとTを先頭から一文字ずつ比較し、BAの個数とABの個数をカウントしていく
  →BAが1以上かつABの時、一緒に変換可能なので、別途変数PCにカウントを追加し
  BAのカウントを1減らす(ABにも加算しない)
  〇一致させることが可能かのチェック
  ・例えば以下のような場合問題の条件(i

元記事を表示

python.Fileから複数行を読込むreadlineを使わず。

一番簡単なFile読込。

“`python
import os
import sys
import re
# ファイル名
data_file_name = ‘my_test.txt’
f = open(data_file_name, ‘r’)#ファイル読み込み
str = f.read()
f.close()
my_list_in2=str.split(“\n”)

print(my_list_in2)#各行は配列に収められている。
“`
with を使わないのが特徴です。
my_list_in2=[‘1′,”,’3′,”]の様な物も読み込めます。

最後に改行を入れず書けます。
if my_list_in2[3]==”
my_list_in2[3]=’4’

“`python
strw = “\n”.join(my_list_in2)
print(‘myjyoin’,strw)
f = open(“mytest2.txt”, ‘w’)#ファイル書込み
f.write(strw)
f.close()
“`

元記事を表示

pipのCERTIFICATE_VERIFY_FAILEDを回避する

信頼済みホストを追加して、pipコマンドを実行する

“`bash
pip –trusted-host pypi.python.org –trusted-host files.pythonhosted.org –trusted-host pypi.org install hoge-library
“`

元記事を表示

Qiita Advent Calendar の記事別いいね数やストック数等の情報をまとめてスクレイピングする

# はじめに

2024 年、皆様いかがお過ごしでしょうか。
最近めっぽう寒くなりマフラーが手放せない季節になってきたなという印象ですが、そう感じるのは昨年の 12 月は例年より暖かかったからかなとも思ってます。

そんな 2023 年 12 月は、年末ということもありアドベントカレンダーの季節でした。
私は会社でアドベントカレンダーの運営を行っており、今年の成果について社内で共有することがありました。
そこで、皆さんの書いてくれた記事はどの程度いいねをもらっているのか?どんなタグの記事が多いのか?を CSV に出力してみたくなったので、今回はそこで作成したスクレイピングのコードを紹介します。

今回のソースコードは以下に公開しています。

https://github.com/m2-sakai/qiita-adcl-info-aggregator

# 実行環境

今回の実装で使用した環境は以下となります。

| 環境 | バージョン |
| —— | ————– |
| OS | Windows 10 Pro |
| Python |

元記事を表示

スプレッドシートで考えるプログラム

## ITスキルをつけるためには?
1.普段からプログラム目線で見るためにメモはスプレッドシートを使う
2.手を動かすため、書き溜めた計算を使えるようにPython変換してみる
という手順を4つの動画にまとめました。

## Googleスプレッドシートをメモとして使おう
スプレッドシートをメモとして使うことの意義について、トイレットペーパーの単価計算をもとに考えてみる

## Googleスプレッドシートをインストール
Googleスプレッドシートをインストールして簡単な計算を入力してみます。

## スプレッドシートにトイレットペーパーの単価計算を入れる
スプレッドシートにトイレットペーパーの単価計算を入れて計算部分をpythonに置き換えてみる

## 比較できるようにするには?
具体的にスプレッドシート表をPythonプログラムに置き換えてみる

https://youtu.be/xXjWQmmGK_

元記事を表示

リスト内包

Pリスト内包表記を使って2次元配列の要素数を取得するプログラムを実装しました。

“`python3
array1 = [[1,2,3,4,5,6],[8,1,3,3,1,8]]
print(sum(len(i) for i in array1))
“`

元記事を表示

ロジスティック回帰のすゝめ

# はじめに
こんにちは!
僕は研究を行いながら、長期インターンでデータサイエンティストとして働く大学院生です!

学部時代から長期インターンを始め、現在4社経験してきました。
この経験から、プログラミングの学習を始めたばかりの人や、長期インターンを行う勇気が出ない人に、学習サポートやデータ分析の実績作り支援などを行わせてもらっています!

僕自身、プログラミングの習得や長期インターン探しに苦労したので、その経験をお伝えすることで、より多くの人が挫折せずデータサイエンティストになるまで成長して欲しいです!

以下でサポートを行なっているのでご興味ある方はご連絡ください!学生・社会人問わず専攻も問わずサポートいたします!

### X(Twitter)

今回は、データサイエンスを学ぶ上で欠かせない分類モデルロジスティック回帰手法について解説します👍

# ロジスティック回帰とは
ロジスティック回帰は、特定のカテゴリ(例えば、0か1)に属する確率を予測するための統計モデルです。このモデルは、特にバイナリ分類問題に適して

元記事を表示

Python3ではじめるシステムトレード:時系列データ入門

0:50
# 時系列データ入門

時系列データの分析は、日々変化する世界を理解し、将来の動向を予測するために不可欠なツールです。私たちの周りには、時間の経過と共に変化する多くの現象が存在します。これらの現象を数値化した時系列データを分析することによって、これらの変化の背後にあるパターンや原因を理解し、より賢明な意思決定を行うための洞察を得ます。

時系列データ分析の基本から応用までを段階的に学んでいきます。時系列データの分析に必要な基礎概念から始めて、確率過程と確定的過程の理解、さらには時系列データの実際の解析方法について詳しく掘り下げていきます。これらの基本的な概念をしっかりと理解することで、より複雑な時系列モデルや予測手法へとスムーズに進むことができるようにします。

「1.確率過程入門」では、時系列データのランダム性とその統計的特性を扱います。「2.確定的過程入門」では、時間に依存する確定的な要素(例えばトレンドや季節性)に焦点を当てます。そして、「3.時系列解析」では、これらの概念を実際のデータに応用し、時系列データの分析方法を詳しく学びます。

本セミナーの内容はStatsm

元記事を表示

pandas df の基本操作

### サンプルデータの作成
“`python
import pandas as pd

data = {
“Name”: [“user1”, “user2”, “user3”, “user1”, “user2”, “user1”],
“Reserve_Data”: [“1/1/2024”, “2/1/2024”, “3/1/2024”, “4/1/2024”, “5/1/2024”, “6/1/2024”],
“Money”: [“1000”, “12000”, “36000”,”400″, “26”,”403330″],
}

df = pd.DataFrame(data, columns=[“Name”, “Reserve_Data”, “Money”])
df
Name Reserve_Data Money
0 user1 1/1/2024 1000
1 user2 2/1/2024 12000
2 user3 3/1/2024 36000
3 user1 4/1/2024 40

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その47 評価値を利用するアルゴリズム

# 目次と前回の記事

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

https://qiita.com/ysgeso/items/e08c41f93109496fb9f9

## これまでに作成したモジュール

以下のリンクから、これまでに作成したモジュールを見ることができます。

https://github.com/ysgeso/marubatsu/blob/master/047/marubatsu.py

https://github.com/ysgeso/marubatsu/blob/master/047/ai.py

## これまでに作成した AI

これまでに作成した AI の アルゴリズム は以下の通りです。

| 関数名 | アルゴリズム |
|:-:|:–|
| __[`ai1`](https://qiita.com/ysgeso/items/bdbcd4c1ab1d8731df58#ai1-%E3%81%AE%E5%AE%9A%E7%BE%A9)__ | __左上から順__ に __空いているマス__

元記事を表示

Pythonの文字列比較

# はじめに
業務で数値比較をするべき場所が、文字列の比較を行っていました。その結果バグの原因になっていました。文字列の比較はどのような処理を行っているのか詳しく調べてみました。言語はPythonです。
# 数値比較と数値文字列比較の挙動の違い
“`py
print(100 > 2) # True
print(“100” > “2”) # False
“`
数値の比較と数値文字列の比較では異なる結果が出力されました。
# 理由
リファレンスには下記のように記されていました。
>文字列 (str のインスタンス) の比較は、文字の Unicode のコードポイントの数としての値 (組み込み関数 ord() の返り値) を使った辞書式順序で行われます。
>https://docs.python.org/ja/3/reference/expressions.html#id12

>概して、シーケンスオブジェクトは、同じシーケンス型の他のオブジェクトと比較できます。比較には 辞書的な (lexicographical) 順序が用いられます。まず、最初の二つの要素を比較し、

元記事を表示

社内ルールを基にChatGPTに回答させよう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76072/ab58266b-ee5f-f2a9-d93d-f769ebe75572.png)

# 目次
[1.はじめに](#1-はじめに)
[2.方針](#2-方針)
[3.留意点](#3-留意点)
[4.コードの紹介](#4-コードの紹介)
[5.おわりに](#5-おわりに)

# 1. はじめに
大きな会社になると、**社内ルールは複雑**です。
周りの人に聞きたいけど、忙しそうにしているので、聞きにくいなんて感じたりもします。
そんな時を想定して、**ChatGPTに社内ルールを読み込ませて、問い合わせに回答させたい**です。

今回は、そんな悩みを**解決**するプログラムです。

架空の休暇申請手続きに関するガイドラインに基づき、休暇申請に係る問い合わせにChatGPTに答えてもらうことにしました。

# 2. 方針
## 2-1.LangChain
ChatGPTを使いますが、ChatGPTを有効活用するため、LangChai

元記事を表示

OTHERカテゴリの最新記事