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

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

3Dモデルのフォーマット変換(pyvista+meshio)

PyVistaとmeshioを用いて3Dモデルを変換します

# コード
“`python:model_transfar.py
import pyvista as pv
import meshio

in_filename = ‘input.stl’
out_filename = ‘output.vtk’
reader = pv.get_reader(in_filename)
mesh = reader.read()

pv.save_meshio(out_filename,mesh)
“`
1 : pv.get_reader()でフォーマットに合わせた読み込み関数を呼び出し
2 : reader.read()でメッシュを読み込みmeshに格納
3 : pv.save_meshioでmeshioモジュールを介してフォーマットに合わせて書き込み

# 対応拡張子
入力側
‘.obj”.stl”.vtk’など[2]

出力側
meshio対応のファイルフォーマット[4]

# 参考
[1]https://tutorial.pyvista.org/index.html
[2]http

元記事を表示

Excel in Pythonを使ってみた①

### ■Excel in Pythonとは
Excel内でPythonの処理を実行できる機能を指します。

### ■Pythonが使えるエクセルのバージョン

| バージョン | ユーザー |
|:-:|:-:|
| __2407 (ビルド 17830.20128)__ | __Enterprise ユーザー__/__Business ユーザー__|
| __2405 (ビルド 17628.20164)__ | __ファミリー ユーザー__/__個人ユーザー__ |

### ■エクセルのバージョン確認方法
・メニューバーの「ファイル」をクリック
・表示メニュー内の「アカウント」をクリック(1)
・確認(2)

![スクリーンショット 2024-11-08 133703.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/960935/df59acd9-1ce1-3680-227f-aa6e9a67710b.png)

### ■エクセルのバージョンが低い場合
(2)の上の「更新オプション」から「今すぐ

元記事を表示

3Dモデルのフォーマット変換(PyVista)

PyVistaを用いて3Dモデルを変換します

# コード
“`python:model_transfar.py
import pyvista as pv

in_filename = ‘input.stl’
out_filename = ‘output.vtk’
reader = pv.get_reader(in_filename)
mesh = reader.read()
mesh.save(out_filename)
“`
1 : pv.get_reader()でフォーマットに合わせた読み込み関数を呼び出し
2 : reader.read()でメッシュを読み込みmeshに格納
3 : mesh.save()でフォーマットに合わせて書き込み

# 対応拡張子
入力側
‘.obj”.stl”.vtk’など[2]

出力側
‘.vtp”.stl”.vtk’.geo”.obj”.iv’

# 参考
[1]https://tutorial.pyvista.org/index.html
[2]https://tutorial.pyvista.org/tutorial/02_

元記事を表示

PythonでPDFに図形を描く(線、矩形、楕円など)

PDFに図形を描くことで、文書の視覚効果を高めることができます。実線、破線、長方形、円など、さまざまな種類の図形を追加することで、文書をより鮮明にして読者の注意を引くことができます。これは特に、レポートやプレゼンテーション、教材を作成する際に便利です。この記事では、PythonでPDFにさまざまな図形を描く方法を、以下の3つの例で紹介します。
* [PythonでPDFに実線・破線を描画する](#pythonでpdfに実線破線を描画する)
* [PythonでPDFに矩形を描画する](#pythonでpdfに矩形を描画する)
* [PythonでPDFに楕円を描く](#pythonでpdfに楕円を描く)

## Python PDF API
PDFに様々な図形を追加するには、[**Spire.PDF for Python**](https://www.e-iceblue.com/Introduce/pdf-for-python.html)ライブラリが必要です。以下のpipコマンドで直接インストールできます:
> **pip install Spire.Pdf**

## Pytho

元記事を表示

2クラス分類問題を解くときに出力層のノードを増やしてみたお話

# 2値分類問題の概要
2値分類問題(バイナリ分類問題)は, あるデータを2つの異なるカテゴリに分類する問題である. 具体的な応用例としては, 以下のようなケースが挙げられる.
* スパムメールかどうかの判定(スパム/非スパム)
* 患者が病気かどうかの診断(病気/健康)
* 顧客が商品を購入するかしないかの予測(購入/非購入)

今回は, AとBに分ける必要があるものとする.

# 分類モデルの実装
今回, pytorchを用いて分類モデルを作成した. なお, データに欠損値は無く, すでにクレンジングを終えたものを使用している.
“`python
# ライブラリのインストール
from sklearn.model_selection import train_test_split
import torch
from torch import nn
import pandas as pd

# データの読み込み
df = pd.read_csv(“train.csv”) # 訓練用のcsvファイル

# 学習モデルに使用するデータの整理
features = [] # 説明変数とな

元記事を表示

dateutil.parser で日付順にソートする

### **user**:

ChatGPT先生、次のようにして日付の新しい順にソートしたいんですが、文字列に基づいたソートになってしまっています。正しく日付順にソートできるように改変してください。

“`python
for doc in sorted(data, key=lambda s: s[“date”], reverse=True):
“`

### **assistant**:

んー、あんた、「date」の値が文字列やからって感じなん?そりゃ困るわな、ソートしきれんしな。

エエとね、それをどうにかするにあたり、dateの型を変換しとくんが大事なんですわ。dateutilというモジュールを使い、あんたがもしてる「date」を日付型に変換するとよかと思うんやけど、どうや?

だからこんな感じに変更してみてや。

“`python
from dateutil.parser import parse

for doc in sorted(data, key=lambda s: parse(s[“date”]), reverse=True):
“`

このよ

元記事を表示

Turtle graphics をブラウザ上で使えるようにしてみた

## はじめに
はじめまして、Latte72 です。
普段は Python や C/C++、JavaScript などを使って開発をしています。最近は自作OSや自作コンパイラ、Deep Learning に興味があり、色々と挑戦中です。

以前に JavaScript で Turtle graphics を実装し、ブラウザ上で利用できるようにしたので、ソースコードとともに実装の解説をしていきます。

## 完成品(完全版)
– デモページ:https://latte72r.github.io/TurtleGraphics/demo.html
– ソースコード:https://github.com/latte72r/TurtleGraphics/

![demo.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448138/655ae14f-2b09-8a83-ec98-40c32f5c3cea.gif)

:::note info
作成した完全版のプログラムは機能が多いので、この記事では機能を削減し

元記事を表示

2024 年度のヨーヨーイベント、都道府県ごとの開催数を日本地図で可視化する

## この記事は?

先日

– [持っているヨーヨーの直径・幅を Matplotlib の散布図で可視化する #Python – Qiita](https://qiita.com/QUANON/items/ecd776f012a9cb000297)

という記事を書きました。今回もヨーヨー & Matplotlib 関連の記事です 🪀

ヨーヨー界隈では、練習会や競技大会などのオフラインイベントが日本各地で開催されています。そして[一般社団法人日本ヨーヨー連盟 (JYYF)](https://www.jyyf.org/) という団体が以下のページでヨーヨーイベントの Google カレンダーを公開しています。

– [イベントカレンダー – 一般社団法人日本ヨーヨー連盟 (JYYF)](https://www.jyyf.org/event-list)

例えば 2024/11 のカレンダーはこんな感じです。

![イベントカレンダーの例](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6697/d3d65ffb

元記事を表示

中間コード方式について簡単に

## 概要
– コンパイラ方式とインタープリタ方式の中間的な方法
– 言語特有の環境用機械語にコンパイルし、実行時に逐次実行か機械語に翻訳後実行される
– Java、Pythonで採用

## この方式の特徴と利点
– コンパイラ方式には及ばないが、インタープリタ方式よりは早い
– 一度中間コードにコンパイルするとwindowsでもmacでも動く

## なぜ同じ方式のJavaとPythonで実行速度に差があるのか
– Javaは静的型付け、Pythonは動的型付けであるので型チェックの時間で差が生まれる
– JavaはJITコンパイラでネイティブコードに変換されるがPythonは逐次解釈するから

元記事を表示

paizaラーニングスキルチェック「B155:スタンプアート」を解いてみた

以下のリンクを「B155:スタンプアート」で検索してください。

https://paiza.jp/challenges/ranks/b/info

▼考え方

この問題を解くために私が考えた内容1.~2.を以下に示します。

1. 2次元(H×W)のスタンプデータN個はリストAに格納します。H=2,W=3,N=2の時の例を以下に示します。

2. R×Cの計画を1行ずつ読み込みます。ある1行が以下であった場合のスタンプデータの出力イメージは以下の通りです。

“`
A = [[‘abc’, ‘def’], [‘ghi’, ‘jkl’]]

R×Cの計画の1行:
1 2 1

スタンプデータの出力イメージ:
A[0(1-1)][0] A[1(2-1)][0] A[0(1-1)][0] <改行>
A[0(1-1)][1] A[1(2-1)][1] A[0(1-1)][1] <改行>
“`

▼コード
“`py
########## 処理0(準備) インプット、全体で使う変数やリストの定義 ###########

H,W,N = map(int,input().split())

元記事を表示

個人開発でDjangoのO/Rマッパーを使わなかったせいで余計な苦労をしたので懺悔する

# TL;DR
自作の方法で技術的負債を生むより、Djangoの正しい方法に従いましょう。
具体的には、フレームワークではmigrateしてmodelを使いましょう。

# 経緯
普段はインフラエンジニアをしていますが、プログラミングも好きで、コロナ禍の時間を活用してPythonを始めました。
最初はTwitterのボットを作成していましたが、PythonでのWeb開発に興味を持ち、Djangoに触れました。

[チュートリアル](https://tutorial.djangogirls.org/ja/)をやった時に思ったのですが…
`python manage.py migrate`←これが本当に不気味でした。

“`bash
$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial… OK

元記事を表示

【備忘】よくつかうコードスニペット: Python標準ライブラリ系

## 目的
鳥頭のため、ちょっと書いてないだけで基礎的な記法も忘れる始末。

## 一覧

### json

#### JSONデータのシリアライズ(PythonオブジェクトをJSON文字列に変換)

“`
import json

data = {
“name”: “Example Item”,
“price”: 19.99,
“in_stock”: True
}

# JSON文字列に変換
json_data = json.dumps(data)
print(json_data) # {“name”: “Example Item”, “price”: 19.99, “in_stock”: true}

“`

#### JSONデータのデシリアライズ(JSON文字列をPythonオブジェクトに変換)

“`
# JSON文字列
json_data = ‘{“name”: “Example Item”, “price”: 19.99, “in_stock”: true}’

# Pythonオブジェクトに変換
data = json.loads(

元記事を表示

【備忘】よくつかうコードスニペット: Python外部ライブラリ系

## 目的

コードを書く機会はそれなりに多いが、日ごろから持ち前の鳥頭が存分に活かされすぎているため書き方を一瞬で忘れる。
そのため、仕事用端末からもプライベートの端末からも閲覧できる形でスニペットとして残しておきたい
今のところ、1から書くと多すぎる上に他の記事などでうまくまとまってる可能性の高いもの(Pandasとか)はそちらを参照することにする。

## 一覧

### FastAPI(v0.103.1)、Flask(v2.3.3)

#### 基本的なAPIエンドポイント

FastAPI
“`
from fastapi import FastAPI

app = FastAPI()

@app.get(“/data”)
async def get_data():
return {“message”: “データを取得しました”}
“`

Flask
“`
from flask import Flask, jsonify

app = Flask(__name__)

@app.route(“/data”, methods=[“GET”])
def get_dat

元記事を表示

【Django】API画面で特定のフィールドを非表示にしたい!

現在大学4回生の情報学科の学生です.

研究室での取り組みとしてWebアプリを作成しており,登録した複数のユーザ情報を表示する処理を書く際に,ユーザのパスワードだけは非表示にしたいと感じました.
フロント側の表示処理の部分で上手く解決しても良かったのですが,ハッシュ化されているとはいえ不必要なものをフロント側に送りたくなかったので,Django側で処理を完結させる方法を考えました.

# 本記事の概要
DjangoのAPI画面に表示させるフィールドの一部を非表示にするかつ,オブジェクト作成時にはそのフィールドに値を代入できる方法の説明しています.
要はパスワードなど一度登録したものをそのままブラウザで表示しないようにする方法です.

# to_representationをオーバーライドする
“`BaseSerializer“`クラスに定義されているメソッドである“`to_representation“`を再定義することで今回の問題は解決できます.

https://github.com/encode/django-rest-framework/blob/master/res

元記事を表示

Chrome for Testingを使ったSelenium on Dockerの環境構築

## 背景

PythonとSeleniumでChromeブラウザを操作する実行環境をDockerで作成する場合、コンテナ内にPython、Chrome、ChromeDriverをそれぞれインストールするのが一般的かと思います。
とはいえお試しで使ってみたい、簡単なWebスクレイピングだけやりたいといった場合は1つのコンテナで済むような簡単な構成にしたいところです、また、ChromeとChromeDriverの互換性問題についても面倒なので気にせず構築できると嬉しいです。

## 本記事の目的

以上を踏まえて環境構築が簡単でなるべく軽量なDockerコンテナを作成してみました。
定型作業の自動化やWebスクレイピングの範囲であれば、この構成で事足りるかと思います。

## Dockerfileによる環境構築

ブラウザやライブラリのバージョンは以下の通りです。

||バージョン|
|:-:|:-:|
|Python|3.12|
|Selenium(Pythonライブラリ)|4.25|
|Chrome for Testing(ブラウザ+WebDriver)| 130.0.6723.91

元記事を表示

投球の力学の基礎(1) -ボールに作用する力とボールの挙動-

# はじめに

### スポーツバイオメカニクスの世界
このシリーズでは,投球における力学のメカニズム,たとえばなぜいつもバックスピンとなるのか?球種による回転のかけ方の違い.リリースのタイミングや制球などのメカニズム,ノビの力学などについて述べていく.

ただし,しばらくの間はそのことをを理解するための基本的な力学についての事項についてまとめる.

いわゆるスポーツバイオメカニクスの世界だが,バイオメカニクスの分野では,量的な関係を述べているだけで,メカニズムに深く切り込んだ研究は少ない.何かと何かが関係していそうだぐらいで,それは「たまたまそう見えているだけ」ということもある.間に複雑な解析を利用しても,「力学は使って分析はしているが」,どちらかというと量と量との関係性の強弱を述べる統計の世界だ.特徴がわかることはとても重要だが,それがボールの挙動を定めている「理(ことわり)」を理解することがはるかに重要だ.そのような運動が起こっている「理」とは,物理であり,力学である.

神経科学は,脳の中で何を行っているかをうかがい知るために,統計や量的な解析に頼るしかないだろう.しかし,身体

元記事を表示

【試行錯誤】OpenAI Whisperを活用した日本語歌詞のforced-alignment その8:torchaudioのforced_align用ハイレベルAPIを試す

# はじめに
日本語JPOPの音声と歌詞のアライメントを試行錯誤しています([シリーズ一覧](https://qiita.com/shimajiroxyz/items/c91c5074fd24608ea5b1))。

[その1](https://qiita.com/shimajiroxyz/items/c019cfd60ba2953eb463)では、2022年10月時点のtorchaudioのチュートリアルに従い、wav2vec2を用いたforced-alignmentを行いました。しかし、2024年11月現在、forced-align用のより簡単なハイレベルAPIが提供されていることに気づきました。そこで、最近のtorchaudioを使って再度forced-alignmentを試してみます。

forced-align用のハイレベルAPIには、torchaudio.pipelines.Wav2Vec2FABundleとtorchaudio.functional.forced_align()の2種類があります。本記事では、前者のチュートリアルを実行してみます。

– [Forced a

元記事を表示

Xserverでminiconda3を使用してDjango ウェブアプリをデプロイ

## 投稿理由
そのファイルがどこに配置すべきなのか 等で
四苦八苦したので、備忘録として残しておく。

## 事前準備
* XServerの契約
* [SSH接続](https://www.xserver.ne.jp/manual/man_server_ssh.php)
* サーバーパネルのファイルマネージャを使用できる
* デプロイするDjangoウェブアプリ (**collectstatic**を忘れずに)
* ファイルをXServerへ送信する何らかの方法 ([FTP](https://www.xserver.ne.jp/support/faq/faq_service_ftp_setting.php) 等)

今回は、**django-admin**で作成したてのデバッグモードがONの状態の時の
「The install worked successfully! Congratulations!」のページが表示されるだけのウェブアプリをデプロイします。

## 作業

### miniconda3 & Djangoをインストール
1. SSHでXServerに接続

2. 最新

元記事を表示

Python プロジェクト管理したくて uv に触れてみたメモ

# これは何
2024の春先だっただろうか、pythonを使った開発を新しく始めようと思ったとき、環境管理何がいいのかなー?と調べていたところ、2024のトレンドは rye だ!という情報を沢山見ていたが、最近改めて調べ直してみると uv がトレンドだという話題を見て触ったことないなと思ったので python素人の自分が uv を触ってみたメモ

# uv について
https://github.com/astral-sh/uv

自分はPython界隈の事情に一切詳しくないので、正しく解釈できていないかもしれないが、ざっと調べた限りでは uv は rye の後継ツールで、rye は終わり、uv へ移行している過渡期のようだった。なら、これから始めるなら rye より uv の使い方を覚えるのが良さそうと感じた

# uv をインストールしてみる
手元の環境(win11+wsl2+ubuntu) には brewを導入済みなので `brew install uv` でよかった。
他にも色々インストール方法はありそうだった https://github.com/astral-sh/uv

元記事を表示

【Python】Homebrew+Pyenvの環境構築が最強な話(+コマンドラインの備忘録)

## はじめに
 この記事はmacユーザー向けです。それ以外の方でも読めるようにしているつもりですが、トラブルシューティングは自力でお願いします。

 私のPython環境について。
・macOS Sequoia(M1)
・pyenv 2.4.13 (brewでインストール)
・Python 3.12.2 (pyenvでインストール)

IDE(総合開発環境):VScode or Python IDLE

## 長い記事の要約
 通常よりもPythonが便利に使える導入方法を紹介するよ!
 でもちょっと時間がかかるかもしれないよ!
 急ぎの方、導入に時間をかけたくない方は公式から導入しようね!

https://www.python.org/downloads/

## Homebrewとは?
 mac,Linux向けのパッケージマネージャー。とても便利。
 パッケージマネージャーとはなんぞやと言われると……答えに窮する。まあ、色々なソフトとかツールのインストール・アップデートを一括管理してくれる感じのやつです。
 この記事はbrewそのものをメインにしてないのであまり詳しくは語り

元記事を表示

OTHERカテゴリの最新記事