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

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

【Python】uvで始めるPythonプロジェクト

## はじめに

**Ryeで始めるPythonプロジェクト**を執筆してから半年近く経ちました。
(よければ、まずRyeの記事から読んでいただけると嬉しいです)

https://qiita.com/kissy24/items/37c881498dcb8a01f3bd

この半年でuvが大きく成長し、Ryeと同等かそれ以上のプロジェクトおよびパッケージ管理ができるようになりました。そのため、今度は**uv**を使って開発を進めたい方向けの記事も上げてみようと思いました。
本稿はRyeの記事同様、ハンズオン形式で誰でも気軽にプロジェクトを作れるようになっています。また、Ryeとの違いについても簡単にですが、言及します。

### ハンズオン環境
– Ubuntu / MacOS
– uv : 0.4.24

## 0. uvとは?

Rustで書かれた非常に高速なPythonパッケージとプロジェクト管理ツールです。

https://docs.astral.sh/uv/

以前に、Ryeの記事を執筆した際には、「パッケージインストーラー(pip等)の代替」ような位置づけでuvを利用して

元記事を表示

Djangoトラブル対処法めも

## CSRF検証に失敗したため、リクエストは中断されました。
– {% csrf_token %}がない
– settings.pyのCSRF_TRUSTED_ORIGINSの値が間違っている

参考URL:https://noauto-nolife.com/post/django-csrf-trusted-origins/

## migration&データベースなどすべてリセット
1.データベースを削除して再作成
2.migrationsフォルダの__init__.py以外のファイルを削除
3.python manage.py makemigrationsを実行
4.python manage.py migrateを実行

## 画像が表示されない
– config/settings.py
“`python
MEDIA_ROOT = BASE_DIR / ‘media’
MEDIA_URL = ‘/media/’
“`
– config/urls.pyに「static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

元記事を表示

PythonでPDFのページをコピーする

PDF文書を操作する際、特定のページをコピーすることで、テキストや図表、データなどの特定の情報を抽出し、他の文書で使用することができます。また、PDFのページをコピーすることで、異なる文書内のページを抽出して新しい統合文書を作成することもできます。
この記事では、Pythonを使って同じ文書内のPDFページをコピーしたり、別のPDF文書にページをコピーしたりする方法を紹介します。

* [Pythonで同じPDF内のページをコピーする](#pythonで同じpdf内のページをコピーする)
* [Pythonでページを別のPDFにコピー](#pythonでページを別のpdfにコピー)

>**必要なPythonライブラリ** – [**Spire.PDF for Python**](https://www.e-iceblue.com/Introduce/pdf-for-python.html)。以下のpipコマンドで直接インストールできます:
> `pip install Spire.Pdf`

## Pythonで同じPDF内のページをコピーする
Spire.PDF for Pyt

元記事を表示

screen コマンドまとめ

## はじめに
深層学習モデルの学習や,データの前処理などでコマンドを実行して,長時間放置するような機会が増えたためターミナルやセッションの管理,バックグランドでの実行をしたいと思うようになりました.
`nohup`,`screen`,`tmux`など様々なコマンドがあるなかで,とりあえず1つマスターしようと思い`screen`コマンドから入りました.

参考:

https://qiita.com/umigamek/items/fa42f0f194bd5a13d5e3

本記事では原理や用語解説などは行わず,自信がよく使うもののみを紹介します.

## screen コマンドの使い方
“`
sudo apt install screen
“`
### 新しいセッションを作る
“`shell
screen
“`
### 名前付きで新しいセッションを作る
“`
screen -S name
“`

### セッションの一覧を確認する
“`
screen -ls
“`

### デタッチする
“`
+
d
“`

### 再アタッチする
“`

元記事を表示

スイカゲーム

## python入門を終えて、スイカゲームでアウトプットしてみよう!

## はじめに
ドットインストールのpython入門を活用して、勉強しました。
基本的な内容を終えて、学んだことをアウトプットして血肉にしたい思います。

## スイカゲームを作ってみよう
「Python japan」サイトの演習問題にある、
「スイカ割りゲームを作ってみよう」に取り組みます。
課題の詳しい内容は、[「Python japan」サイト](https://www.python.jp/train/exercise/index.html)を参照してみてください。

ゲームを簡単に説明すると、
下図の様なマス目のフィールドがあり、その何処かのマスにスイカがあります。
プレイヤー(自分)も位置を移動して、スイカと同じマス目に入りスイカを割ります。

![Welcome to FigJam.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3895655/baf0bccc-1ccb-f0bc-618d-317d6d662

元記事を表示

jupyter notebookでhuggingfaceのload_datasetが終わらない

# 概要
huggingfaceからのdatasets.load_datasetが終わらなかったときのメモです。

# 環境
– jupyter notebook(Cursor上で実行)
– macOS M1
– uvで作成した仮想環境
– python 3.11.2
– datasets 3.0.2
– ipykernel 6.29.5
# 課題

以下のコードをjupyter notebook上で実行しました。

“`
from datasets import load_dataset

# livedoor-news-corpus データセットをロード
dataset = load_dataset(“shunk031/livedoor-news-corpus”, split=’train’)
“`

以下のwarningが出た以降20分待ってもセルの実行が完了しませんでした。

“`
/***/.venv/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found.

元記事を表示

pythonで配列を使うときは`deepcopy`を使うよりスライスを使った方が速い備忘メモ

pythonで配列を使うときは`deepcopy`を使うよりスライスを使った方が速い

– deepcopyを使う(遅い)

“`python
array2 = copy.deepcopy(array)
“`

– スライスを使った方が速い

“`python
array2 = array[:]
“`

# 参照

https://qiita.com/shoji9x9/items/e7d19bd6f54e960f46be#list%E3%81%AE%E3%82%B3%E3%83%94%E3%83%BC%E3%81%ABcopydeepcopy%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E3%82%B9%E3%83%A9%E3%82%A4%E3%82%B9%E3%82%92%E4%BD%BF%E3%81%86

元記事を表示

osmnxとfoliumを活用したGISデータの効果的な可視化手法

## はじめに

はじめまして!データサイエンティストの高桑です。株式会社GEOTRA([@GEOTRA](https://qiita.com/GEOTRA) )にてGIS(Geographic Information System:地理情報システム)データを用いた分析、機械学習モデルの構築等を行っています。

## 背景

都市計画や地理情報システム(GIS)を扱う際、土地利用データの取得と可視化は非常に重要です。OpenStreetMap(OSM)を利用することで、無料で豊富な地理情報を取得できますが、これを効果的に可視化するには適切なツールが必要です。`osmnx`はOSMデータの取得に優れたライブラリで、`folium`はインタラクティブな地図を簡単に作成できます。本記事では、`osmnx`を使って土地利用データを取得し、`folium`でカテゴリ別に色分けをして可視化する方法を紹介します。

## やること

1. `osmnx`で土地利用データを取得する。
2. 土地利用データをカテゴリに分類する。
3. `folium`でカテゴリ別に色分けして地図上に可視化する。

元記事を表示

[初心者向け]Pythonのプロジェクト管理ツールを使う理由とツールの種類

## 対象読者

– Python初学者
– 環境構築とか、仮想環境とかよく分からない人

## なぜプロジェクト管理ツールを使うのか

プログラミングの勉強をしているときは、Pythonプロジェクト管理ツール(ここではPythonのバージョン管理と仮想環境管理をするツールを示します)のことを全く気にしていませんでした。他の人と共同開発するわけではないし、開発期間も短いのでバージョンの変更で苦しむこともありません。
しかし実際に仕事をしたり、仕事を依頼する際にはプロジェクト管理をしっかりしていないと、全く仕事が進まなくなってしまいます。この段階にきて、プロジェクト管理ツールの大切さを理解して手をつけましたがあくまでなんとなくでした。

今まではwindows環境でcondaを、Mac環境でpyenv+poetry でプロジェクト管理を行っていました。
condaは統計や科学系の計算に強く、Rなどの私が以前使用していた言語も使えたので使用していました。condaはPythonバージョン管理とライブラリ管理が一元的に行えて便利でしたが、一部使えないライブラリがあったりして使いづらい部分があ

元記事を表示

PlantCVで植物の分析作業をやってみる

10月も終わりに近付いているというのに、最高気温はまだ25度を越える日があります。秋をとばして冬になるのでしょうか。植物も大変ですね。

# 植物を画像で解析する
植物の品種改良(育種)において、外観から葉の長さや形などを測定する機会がありました。画像であれば、Python で OpenCV でゴニョゴニョすればいろいろできるだろうなと思っていたところ、その名もずばり PlantCV を見つけたので、どのようなものか確認しました。

https://plantcv.org/

PlantCV はオープンソースで植物向けに特化して開発されているようです。リポジトリを見ると開発は続いているようです。チュートリアルを見ると、なんとなく便利そうな機能が紹介されています。
基本的に jupyter notebook で作業しますが、もうひとつ大きなポイントは jupyter notebookでまとめた作業手順を plantcv-run-workflow のしくみでバッチのように多くの画像に当てることができることでしょうか。
品種改良となると、何千何万という苗を選抜するようなので便利な機能だろうと

元記事を表示

VerticaのデータをPandasで処理し、Google スプレッドシートに自動で貼り付ける

### 前提
vertica-python, pandas, gspread, oauth2clientをインストールしておくこと。
Verticaの接続情報を正しく設定すること。
Google APIのサービスアカウントを作成し、JSONキーを取得すること。
スプレッドシートの名前を正しく設定し、サービスアカウントに編集権限を付与すること。

### Vertica とは

オンプレミス、クラウド、Hadoopのあらゆる環境で広く際立つパフォーマンス。

https://qiita.com/Siro_Labo_3099/items/f930557b958d22dbb0f7

Vertica on Amazon Web Services

### 1.Verticaからデータを取得:
Pythonでvertica-pythonパッケージを使い、Verticaのデータベースからデータを取得する。

###2.Pandasでデータを処理:
取得したデータをPandas DataFrameに読み込み、必要な処理を行う。

### 3.Google APIの設定:
Google Developers Consoleでプロジ

元記事を表示

【Python 入門】import 文の書き方 総まとめ

Pythonでプログラムを書く際、避けては通れないimport文。
本記事では、基本的な使い方から実践的なテクニックまで、分かりやすく解説します。

## import 文とは

Pythonでは import 文を使用することで、他のファイル内に記載されている module にアクセスできるようになります。
より詳しい説明は[公式ドキュメント](https://docs.python.org/ja/3/tutorial/modules.html)を参照してください。
この記述にいくつかパターンがあり、理解しておくことが大切です。

## VSCodeで簡単に書く方法

元も子もない説明になりますが、Visual Studio Code を使用している場合は、拡張機能の Python を入れて、import が書けていない参照の波線にマウスを合わせて「クイックフィックス」で追記しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3769407/68954d8a-8b12-8e0

元記事を表示

paizaラーニング問題集「【計算 2】疑似乱数」を解いてみた

https://paiza.jp/works/mondai/b_rank_new_level_up_problems/b_rank_new_level_up_problems__similar_randamize

▼考え方

題意の通りコーディングしました。

▼コード
“`py
########## 処理0(準備) インプット,変数定義 ###########

X,M,N = map(int,input().split())

# X_total: 疑似乱数の計算式のうちXの数列部分を格納する変数
X_total = 0

########## 処理1 疑似乱数の計算と出力 ###########

for i in range(1,N+1):
X_total += X**i
print(X_total%M)
“`

元記事を表示

paizaラーニング問題集「【計算 1】マンハッタン距離」を解いてみた

https://paiza.jp/works/mondai/b_rank_new_level_up_problems/b_rank_new_level_up_problems__taxi_distance

▼考え方

題意の通りコーディングしました。

▼コード
“`py
########## 処理0(準備) モジュールインポート,インプット,リスト定義 ###########

import math

P_x,P_y = map(int,input().split())

N = int(input())

d: ユークリッド距離,マンハッタン距離,地点の番号を格納するリスト
d = []

########## 処理1 ユークリッド距離,マンハッタン距離の計算 ###########

for i in range(N):

x,y = map(int,input().split())

d.append([math.sqrt((x – P_x)**2 + (y – P_y)**2),abs(x – P_x) + abs(y – P_y),i+

元記事を表示

Django ログイン・ログアウト機能を設定してみる

# 問題の発生
Djangoにログイン・ログアウト機能をつけたい!
まとめてみることにした。

# 参考
https://www.techpit.jp/courses/27/curriculums/28/sections/241/parts/835

# 必要な設定
・ルーティング
・テンプレートの作成
・ログアウト機能の追加

## ルーティング
・既にあるアプリのurls.pyにログインとログアウトのURLを設定
“`python:urls.py
from django.contrib.auth import views as auth_views

urlpatterns = [
path(”,views.TopViews.as_view(), name = ‘top’),
path(‘login/’, auth_views.LoginView.as_view(), name=’login’),
path(‘logout/’, auth_views.LogoutView.as_view(), name=’logout’),
]
“`

::: no

元記事を表示

ブラウザ上で実行できる、おしゃれでスタイリッシュな Pythonコード開発環境 。のゲーム。

#### ショートストーリー 限られた計算リソースで一体何ができるんだ?
東京の夜、主人公であるプログラマーのケンジは、限られたリソースで最大限の力を発揮しようと考えていた。彼のデスクにあるのはブラウザとメモ帳アプリだけ。PCにPythonがインストールされていないため、プログラムを書いて動作を確かめるには制限があった。

「この限られた計算リソースで一体何ができるんだ?」と彼は心の中で問いかけた。与えられたものだけで何とか突破口を見出さなければならない。それが主人公に与えられたミッションであった。

ケンジは考え抜いた末に、JavaScriptの力を借りることを思いついた。彼はJavaScriptのライブラリを調べ、Pythonコードをブラウザ上で実行できる仕組みを模索し始める。そして、ついにその瞬間が訪れた。いくつもの試行錯誤の末、彼はJavaScript上でPythonコードを実行できる仕組みを完成させたのだ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/e2

元記事を表示

Python+VScode 環境変数PYTHONPATHで自作ライブラリにパスを通したい!

## はじめに
自作ライブラリをimportする方法として,以下の方法はよく知られています.

“`Python
lib_path = os.path.join(os.path.dirname(__file__), ‘..’, ‘hoge’)
sys.path.append(lib_path)
“`

しかし,この方法ではすべてのスクリプトファイルに上記のプログラムを記述する必要があり,美しくありません.
本記事では別の方法として環境変数にライブラリのパスを保存させておくことで,上記のプログラムを**二度と**書かなくて済むことを目指します.

## 環境
* Visual Studio Code
* Python 3.12 (Anaconda ではない生Python)
* Windows 11

## 初期状態の挙動の確認

### ディレクトリ構造

現在のディレクトリ構造を以下のものとします.
“`
myproject
├───lib
│ lib1.py

├───notebook
│ ├───experiment1
│ noteboo

元記事を表示

タイタニックのデータを使ったPythonデータ分析マスター講座:statsmodels、NumPy、pandas、seaborn、matplotlibを使いこなす

## はじめに

データ分析の世界では、適切なツールを使いこなすことが成功への鍵となります。Pythonは、その豊富なライブラリエコシステムにより、データサイエンスの分野で圧倒的な人気を誇っています。本講座では、Pythonのデータ分析における5つの主要ライブラリ – statsmodels、NumPy、pandas、seaborn、matplotlib – に焦点を当てます。

これらのライブラリは、データの操作から高度な統計分析、そして美しい可視化まで、データ分析の全プロセスをカバーします。初心者の方にもわかりやすく、かつ経験者の方にも新たな知見を提供できるよう、基礎から応用まで段階的に解説していきます。

実際のデータセット(タイタニック号の乗客データ)を用いた実践的な例を通じて、各ライブラリの特徴と使い方を学んでいきましょう。この講座を終えれば、あなたもPythonを使ったデータ分析のエキスパートへの道を歩み始めることができるはずです。

さあ、Pythonによるデータ分析の奥深い世界への旅に出発しましょう!

## 第1章: データ分析ライブラリの概要

データ分析において

元記事を表示

【Python基礎】変数について

## 目次
[1.はじめに](#1-はじめに)
[2.変数の定義方法](#2-変数の定義方法)
[3.変数のネーミングルール](#3-変数のネーミングルール)
[4.おわりに](#4-おわりに)

## 1. はじめに
この記事では、Pythonの変数定義や変数のネーミングルールについて紹介します。

これまで、Pythonを少し書いていたことはありますが、きちんと理解して書いていたわけではなく、なんとなく書いて、とりあえず動けば良しとしてやってきました。

しかし、やはり胸を張って「Python書けます!」と言えるようになりたいと思い、基礎の基礎から勉強し直す覚悟を決めました。

そしてせっかくなら、その過程で学んだことを書いてみよう!
…ということで、今回は「変数」について学んだことをまとめてみました。

## 2. 変数の定義方法
Pythonでは、C言語などのように変数の型を明示的に指定する必要はなく、代入したい値を「=」の後ろに書くだけで型が決まります。
“`python:sample.py
# 変数の定義
# [変数名] = [代入したい値]
example_1 =

元記事を表示

【Python】 k-hop Clusteringの詳説:ネットワークグラフにおけるクラスタリング手法の実装と解説

# k-hop Clustering手法の要点

## 🎯 概要

k-hop Clusteringは、ネットワークグラフのクラスタリング手法で、指定した距離(k)内のノードをまとめてクラスタ化します。

## 🔑 主な特徴

### 基本概念

– **1-hop**: 直接つながるノードをグループ化
例)A → B, C, D
– **2-hop**: 2段階までのつながりを含む

### 処理ステップ

1. クラスタ抽出
2. 不要クラスタの除去
3. 重複の排除

## 💻 実装のエッセンス

### コアとなる処理

“`python
subgraph = nx.ego_graph(G, query, radius = radius_value)

“`

NetworkXライブラリを使用した効率的な実装

### データ管理の工夫

– 段階的なクラスタ抽出
– 重複の自動検出・除去
– 一時ファイルの効率的管理

## 📊 メリットと課題

### メリット

– 自然なクラスタリング
– 遠距離の関係性も検出
– 簡単な制御

### 課題

– 類似クラスタの判

元記事を表示

OTHERカテゴリの最新記事