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

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

【Pythonでデータ分析】scikit-learnのサンプルデータセットをグラフで可視化

## Pythonグラフの物足りなさ
:::note info
Pythonでデータを扱っていて「**Matplotlibを使えば一応グラフは描けて、データを可視化できるけれど、なんだか少し物足りないな**」と感じたことはありませんか?
:::
2024年リリースの最新バージョンでPythonとの親和性が大幅に高まった統計ソフト[**「JMP(ジャンプ)」**](https://www.jmp.com/ja_jp/home.html)は、データを深掘りするのに最適です。そこで今回は、scikit-learnのサンプルデータセットを例に、ドリルダウンできるグラフを作成してみます。

## Pythonスクリプトの起動・実行
1.JMPを起動し、「ファイル」>「新規作成」>「Pythonスクリプト」で起動します。
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417820/cdf8a259-7af

元記事を表示

PythonのコードをRustから使う その4 Pythonのディクショナリとserde_json::Valueを変換

## 前回の記事
https://qiita.com/ysuga/items/cb65a30d55630330054d

## 概要
Pythonからディクショナリを受け取るようになるとコードが整理されて便利。ちょうどserde_jsonと合わせるのが便利なのでメモしとく。

やはりwith_gilの中でPyDict型をserde_json::Valueに変換するのだけど、型を確認しながら呼び出すコードを書いたのでシェアする。未対応のタイプがあるので注意してね。あと、エラー処理省略してるので注意。

## Cargo.toml
“`toml
[package]
name = “pyo3_test”
version = “0.1.0”
edition = “2021”

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
serde = {version = “1.0.193”, features = [“der

元記事を表示

Python 自分用のライブラリが欲しい

# Library
Atcoder用pythonライブラリ関数版
まだ未完成
code : コードなし
code△ : コードはあるけどソースなし
code〇 : コードとソースあり

## 最短経路
## ダイクストラ

code△

“`python
import heapq
def dijkstra(S,N,edge):
# 始点,頂点数,辺集合(edge[u] = [v,w])を入力として
# 各頂点の最小コストのリストを返す
hq = [(0, S)]
heapq.heapify(hq)
cost = [float(‘inf’)] * N
cost[S] = 0
while hq:
c, v = heapq.heappop(hq)
if c > cost[v]:continue
for u, w in edge[v]:
tmp = w + cost[v]
if tm

元記事を表示

PythonのコードをRustから使う その3 引数を与える

## 前回の記事
https://qiita.com/ysuga/items/c5dacb0406db4e7dfebd

## 概要
前回の記事で、関数の返り値を受け取る基本をやったので、今度は引数を与えてみる

## src/main.rs
“`rust
use pyo3::{prelude::*, types::PyTuple}; // 主要なモジュール

fn main() {
let mut rust_value: i64 = 0; // 結果を受け取るための変数

let arg0 = 1;
let arg1 = 2;

// Python::with_gilでPython環境呼び出す
let pyresult = Python::with_gil(|py| -> PyResult> {
// ここでコードをモジュールとしてロード。ロードした時にグローバルに置いたprintの行が実行される
let module = PyModule::from_code_bound(py

元記事を表示

PythonのコードをRustから使う その2 (返り値を受け取る)

この記事の続きです。

https://qiita.com/ysuga/items/500b7d19ea422ee1b739

## 概要
関数の返却値を受け取ります。
Python::with_gilの中の値を外に出すのではなく、キャプチャしたmutableな変数に代入してやる方が安全のようです。

## src/main.rsを変更してみます。

“`rust
use pyo3::prelude::*; // 主要なモジュール

fn main() {
let mut rust_value: i64 = 0; // 結果を受け取るための変数

// Python::with_gilでPython環境呼び出す
let pyresult = Python::with_gil(|py| -> PyResult> {
// ここでコードをモジュールとしてロード。ロードした時にグローバルに置いたprintの行が実行される
let module = PyModule::from_code_bound(py

元記事を表示

PythonのコードをRustから使う

## 概要
Rustを使ってロボット用ミドルウェアを作っています。Pythonも色々と便利なモジュールがあるので、RustからPythonで作ったモジュールを呼び出す機能を実装したのでメモを取ります。

Rustからはpyo3というクレートを使って呼び出すことにしました。

## 使用方法

### 環境
MacOS + rustc (1.77.2)

### Cargo newする
“`terminal
$ cargo new pyo3_test
“`
### Cargo tomlを編集
“`toml
pyo3 = {version = “*”, features=[“auto-initialize”]}
“`

### src/main.rsを編集
“`rust
use pyo3::prelude::*; // 主要なモジュール

fn main() {
// Python::with_gilでPython環境呼び出す
let pyresult = Python::with_gil(|py| -> PyResult> {

元記事を表示

PythonでExcelのデータを並べ替える

エクセルでデータを並べ替えると、分析や解釈がしやすいように情報を整理することができます。Excelでは、データを昇順または降順に並べ替えることができ、値、セルの色、フォントの色などで並べ替えるかどうかを指定することもできます。この記事では、[**Spire.XLS for Python**](https://www.e-iceblue.com/Introduce/xls-for-python.html) ライブラリを使ってPythonでExcelの行や列をソートする方法を紹介します。

**4つの例を取り上げます:**
1. PythonでExcelの行をソートする
2. PythonでExcelの列を並べ替える
(1) セルの値でデータを並べ替える
(2) セルの色による並べ替え
(3) フォントの色による並べ替え

## Python Excelライブラリのインストール
コードに入る前に、以下のpipコマンドを使用して[Spire.XLS for Python](https://www.e-iceblue.com/Introduce/xls-for-python.html)ライ

元記事を表示

BirdCLEF2024:鳥コンペ振り返り

## はじめに
この度KaggleのBirdCLEF2024に参加しました。コンペの結果としては、Publicスコアで0.70(18位)からPrivateスコアで0.64(256位)と大幅に順位が下がるという残念な結果となりました。

多くの方が使用された公開コードのPrivateスコアが高かったため、32位から245位までが同率になってしまい、私を含め多くの銀~銅圏内の参加者がメダル圏外まで落ちる結果となりました。ある程度の順位変動は覚悟していましたが、公開コードを使わずにメダル圏内に残るには、975人の参加者のうち上位31位に入る必要があった、という厳しいコンペでした。

結果だけみると残念でしたが、コンペを通じて得られた知見も多く、振り返りと反省を込めてこの記事にまとめたいと思います。記憶を遡りつつ執筆しており、またコンペ経験が浅く誤りもあるかもしれませんが、ご容赦ください!

## この記事で書くこと
– 自己紹介
– 鳥コンペ(BirdCLEF2024)の概要
– コンペにどう取り組んだか

## 自己紹介
私は普段、センシング技術の研究開発を行っています。ハードウェアからソ

元記事を表示

Pythonの基本文法ー後半戦ー【初心者向け】

:::note info
**この記事で分かること**

– Pythonの基本文法 
:::

## 目次
– [はじめに](#はじめに)
 ・[用意する環境](#用意する環境)
– [Pythonの基本文法](#pythonの基本文法)
 ・[9⃣ タプル](#9⃣タプル)
 ・[1⃣0⃣ もう一つの繰り返し](#1⃣0⃣もう一つの繰り返し)
   [1 range関数](#1range関数)
 ・[1⃣1⃣ 辞書](#1⃣1⃣辞書)
   [1 要素の追加](#1要素の追加)
   [2 要素の削除](#2要素の削除)
   [3 len関数](#3len関数)
   [4 キーの有無を確認](#4キーの有無を確認)
   [5 dict.keysメソッド](#5dictkeysメソッド)
   [6 dict.valuesメソッド](#6dictvaluesメソッド)
 ・[1⃣2⃣ モジュール](#1⃣2⃣モジュール)
– [おわりに](#おわりに)
– [参考文献](#参考文献)

## はじめに
大学生のnicomputerと申します🍃

今回も引き続き、Pythonの基

元記事を表示

WandB で作成済みの Run の情報を後から更新したい

[Weight & Biases (wandb)](https://www.wandb.jp/) は MLOps のためのプラットフォームであり,機械学習実験の管理や学習ログの可視化機能を提供しています

W&B を使う中で,過去の実験 (**Run**) を整理するために後からタグをつけたりグループ化したい場面があるかと思います.
W&B では GUI から過去の Run の情報を更新できない (?) みたいなので,
今回は Python で API を叩いて更新する方法を記事にします

## Python から Wandb API を叩く
まず,クライアントライブラリをインストールします
“`bash
pip install wandb
“`

CLIで `wandb login` するか 環境変数`WANDB_API_KEY`にAPIキーを設定して認証を済ませておきます (ここまでは設定済みかと思います)

認証が終わったら API にアクセスするためのインスタンスを作成します
“`python
from wandb import Api

# W&

元記事を表示

x≧0,y≧0,x3-xy+y3=1を満たすx+yの最大値,最小値「1998 学習院大学」をChatGPTとWolframAlphaとsympyでやってみたい。

・私は、3年前あきらめていた問題でした。
 今回再チャレンジしましたが、あきらめました。
・WolframAlphaで3Dプロットがでます

# オリジナル
MathLABO 様 (0:00〜10:29)

大学入試数学問題集成>未登録

# ChatGPT-3.5先生へ(1回目)できませんでした。

“`
x>=0,y>=0,x3-xy+y3=1を満たすx+yの最大値,最小値を求めよ.
“`

??? 3年前
>…SciPyのminimize関数を使用して…

今回
??? x+y の最大値は 1、最小値は 2/2**(1/3) です。

# ChatGPT-3.5先生へ(2回目)できませんでした。
“`
x>=0,y>=0,x3-xy+y3=1を満たすx+yの最大値,最小値をsympyを使って求めよ.
“`
???したがって、与えられた条件のもとで、x+y の最大値と最小値はどちらも 2 です。
“`
本当ですか
“`
途中突然英語になりました。
“`
日本語で
“`

x+y=2 が最大値お

元記事を表示

Lama-CleanerをSD A1111に統合してインストールする方法について

Lama-Cleanerは、Adobe Fireflyにほぼ近い機能を持つ画像修正用のオープンソースAIで、今ではStable Diffusionによる画像生成と組み合わせて使用することが一つの定番といってもいいAIと言えます。

実際、SD A1111用の拡張機能(https://github.com/aka7774/sd_lama_cleaner
)も公開されており、この拡張機能を使用すればA1111に統合した形で、Lama-Cleanerをインストールすることも可能です。

しかし、この拡張機能にはいくつか弱点もあります。

Lama-CleanerもまたSDと同様にPythoehを使用して動作するAIである為、当然CUDAを使用した方が高速に動作しますが、A1111用のLama-Cleanerはデフォルト設定ではCUDAを使用しないcpuモードで起動します。
(但し、拡張機能そのものの設定を弄ればCUDAモードで起動させることは可能です)

更に、これが大きいのですが、拡張機能を介してLama-Cleanerを使用する場合には「A1111を起動させてからLama-Cleaner

元記事を表示

YOLOv9を使って3分でやる物体検出

# はじめに
今回はYOLOv9を用いた物体検出をやっていきます. YOLOは手軽に使えるとても強力なモデルです. 複雑な環境構築なしですぐに物体検出を行えるので,ぜひ試してみてください!

https://github.com/WongKinYiu/yolov9

# 実行環境
OS:macOS Sonoma
Python:3.12.3

# YOLOv9とは
YOLOは「You Only Look Once」の略で,その名の通り画像を一度だけ見て処理を行う機械学習ベースのアルゴリズムです.YOLOの特徴は,**一定水準の精度を保ちながら高速かつ軽量に動作すること**です.
YOLOv9は2024年2月に公開されたモデルで,効率性,精度,適応性でこれまでのモデルよりも高い水準を誇っています.

深層学習の「深い層

元記事を表示

Python Ruff

PythonのFormatterとLinterとしてRuffを使用する。

“`bash.sh
pip install ruff ipykernel
“`

“`.pyproject.toml
[tool.ruff]
extend-include = [“*.ipynb”]
line-length = 88

“`

“`.vscode/extensions.json
{
“recommendations”: [
“charliermarsh.ruff”,
“ms-python.python”
],
}
“`

“`.vscode/settings.json
{
“notebook.formatOnSave.enabled”: true,
“notebook.codeActionsOnSave”: {
“notebook.source.fixAll”: “explicit”,
“notebook.source.organizeImports”: “explicit”
}

元記事を表示

Google Search Consoleデータの可視化とクラスタリング分析

# 1. はじめに

この記事では、Google Search Console(GSC)のデータをGoogle BigQueryを使用して集計し、その結果をGoogle Colabで可視化する方法を解説します。前回、毎日のサイトのインプレッション数とクリック数を折れ線グラフに表示しました。今回は、毎日のサイトのインプレッション数とクリック数を詳細に見ていきます。具体的にはクラスタリングをして、それによる可視化を行います。また、適切にクラスタリングするためのエンベディングについても説明します。本記事では結果や概要を記載しますが、具体的な手順については今後別の記事で詳しく説明する予定ですので、気長にお待ちいただくか、他の記事を参考にしてください。

この記事は一意見ですので、間違いや修正、ご意見等ありましたらご教示いただけると幸いです。

# 2. 結果

以下は、各クラスタの毎日のインプレッション数とクリック数を表示した折れ線グラフの例です。

## 2-1. クラスタリング結果の分析
![t-SNE visualization of clustered queries](https:/

元記事を表示

インストールできてない奴

ドラッグ&ドロップ出来んが?

https://robertjoosten.github.io/maya-module-manager/

https://unpyside.com/blog/2020/08/20/module-workflow/

Maya Module Manager – Mayaのモジュール管理のための無料ツール!

モジュール形式でも出来んが?pipでインストールってこと?

インストール

元記事を表示

Pythonで数値計算を効率化する Part3

前回の記事に続いて、今回はさらに実用的なNumPyの使い方を紹介します。
データ解析でよく使用される応用的な操作について詳しく説明します。

#### 応用的なNumPyの操作

##### 1. 配列の結合と分割

データを扱う際には、複数の配列を結合したり、一つの配列を分割したりすることがよくあります。

“`python
import numpy as np

# 配列の結合
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
combined = np.concatenate((a, b))
print(f”結合された配列: {combined}”) # 結合された配列: [1 2 3 4 5 6]

# 2次元配列の結合
c = np.array([[1, 2], [3, 4]])
d = np.array([[5, 6], [7, 8]])
combined_2d = np.vstack((c, d))
print(f”結合された2次元配列:\n{combined_2d}”)
# 結合された2次元配列:
# [[1 2]
#

元記事を表示

Pythonの基本文法ー前半戦ー【初心者向け】

:::note info
**この記事で分かること**

– Pythonの基本文法 
:::

## 目次
– [はじめに](#はじめに)
 ・[用意する環境](#用意する環境)
– [Pythonの基本文法](#pythonの基本文法)
 ・[0⃣ コメント](#0⃣コメント)
 ・[1⃣ 出力・入力](#1⃣出力入力)
   [1 print関数](#1print関数)
   [2 str.formatメソッド](#2strformatメソッド)
   [3 input関数](#3input関数)
 ・[2⃣ データ型](#2⃣データ型)
   [1 int型とfloat型](#1int型とfloat型)
   [2 str型](#2str型)
   [3 組み合わせた場合](#3組み合わせた場合)
   [4 type関数](#4type関数)
 ・[3⃣ 変数](#3⃣変数)
 ・[4⃣ 条件分岐](#4⃣条件分岐)
   [1 比較](#1比較)
   [2 演算子の優先順位](#2演算子の優先順位)
   [3 if文](#3if文)
 ・[5⃣ 繰り返し](#5⃣繰り返

元記事を表示

PythonにおけるDocker Containerと仮想環境venvの違い

この記事はPythonにおけるDocker Container(コンテナ)と仮想環境の違いから各種のメリットデメリットについて記述する.

# なんでコンテナや仮想環境を使うの?
仮想環境やコンテナを使用する主な理由は,アプリケーションの依存関係を管理し,開発・テスト・本番環境間での一貫性を確保するためである.

## 1.依存関係の管理
**仮想環境**
プロジェクト固有のPythonパッケージとそのバージョンを分離して管理することで、プロジェクト間の依存関係の競合を避けることができる.

**コンテナ**
アプリケーションとその依存関係をパッケージ化することで,異なる環境間で一貫した実行環境を提供できる.

## 2.環境の一貫性
**仮想環境**
異なる開発者間や,開発・テスト・本番環境間で同じPython環境を共有できる.

**コンテナ**
コンテナ化されたアプリケーションは,異なるシステム上で一貫して動作する.これにより,「開発環境では動作するが、本番環境では動作しない」といった問題を避けることができる.

## 3.複数プロジェクトの管理
**仮想環境**
プロジェクトご

元記事を表示

多重共線性への対処4選

説明変数間で相関が見られると多重共線性が発生する事があります。
多重共線性は
>重回帰分析やロジスティック回帰分析などの多変量解析を行ったときに,互いに関連性の高い説明変数(独立変数)が存在すると解析上の計算が不安定となり,回帰式の精度がきょくたんに悪くなったり,回帰係数やオッズ比などが異常な値をとったりする場合があります.このように解析結果が不安定な状態となる現象を多重共線性(またはマルチコ現象)といいます. 出典:『多重共線性 multicollinearity – 一般社団法人 日本理学療法学会連合』

ということです。
で、多重共線性への対処は自分の知っている限りで3つ言われています。
今回はその3つをやってみようと思います。
# ライブラリからデータの読み込み
“`Python3
from sklearn.decomposition import PCA
from statsmodels.api import OLS
import statsmodels.api as sm
import pandas as pd
import numpy as np

df = pd.re

元記事を表示

OTHERカテゴリの最新記事