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

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

ABC356(Atcoder Beginner Contest)のA~D(A,B,C,D)問題をPythonで解説(復習)

# ABC356(Atcoder Beginner Contest)のA~D(A,B,C,D)問題をPythonで解説(復習)

# A問題

– ここ2週間それなりに忙しいので,省略します.ごめんなさい.
– コメントを見て下さい.
“`A.py
“””
<方針>
– ここ2週間それなりに忙しいので,省略します.ごめんなさい.
– コメントを見て下さい.
“””

# 標準入力を受け取る.
N, L, R = map(int, input().split())

# 1〜Nまでの数字のリストを作成する.
ans = list(range(1, N+1))

# L〜Rまでを反転する.0-indexedに注意する.
ans[L-1:R] = list(reversed(ans[L-1:R]))

# 空白くぎりでリストを出力する.
print(*ans)
“`

# B問題

– ここ2週間それなりに忙しいので,省略します.ごめんなさい.
– コメントを見て下さい.
“`B.py
“””
<方針>
– ここ2週間それなりに忙しいので,省略します.ごめんなさい.
– コメントを見て

元記事を表示

【図解】タスク空間におけるロボットアームの動作計画【pythonコード付】

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2030125/91c87404-90e5-512a-5086-00fed831df54.png)

:::note
こちらの記事は,[ロボティクスの辞書的な記事(にしたい記事)](https://qiita.com/akinami/items/eb0741b0d9c322e5d5ec)のコンテンツです.
:::

– 事前に必要な知識(見ておいた方がいい記事)
– [【図解】逆運動学(解析的解法)【pythonコード付き】](https://qiita.com/akinami/items/1bda436ec73953dfd6a7)
– [【図解】ヤコビ行列を用いた数値解法による逆運動学【pythonコード付】](https://qiita.com/akinami/items/3bee4adfe5c1eada9e4b)

お疲れ様です。秋並です。

今回は、ロボットアームの動作計画の中でも

– タスク空間にお

元記事を表示

ローカルLLMの生成文字をWebSocket経由で順次出力させる

## はじめに

最近ローカルLLMをAPI経由で飛ばすアプリケーションを開発しているのですが、APIを叩いた際に、出力文字が一括で出力されるからか、待ち時間が長くストレスになっていました。
ChatGPTはもちろんですが、FastChatなどローカルLLMでも同じように文字が順次出力されており、同じことができないかと調査したところ、transformersの場合streamerというストリームミングを実現するオプションの存在を知りました。
この記事はstreamerとWebSocketでLLMの出力を順次出力させる内容になります。

この記事のコードは以下リポジトリに置いてあります。
[WSLLMComm](https://github.com/yamichi77/WSLLMComm/tree/v1.0?tab=readme-ov-file)

## 動作確認環境
OS:Windows 11(WSL+Docker)
GPU:RTX 2070 Super(VRAM:8GB)
バックエンド言語:Python
Webフレームワーク:FastAPI
フロントエンド:Vite+React+Ty

元記事を表示

書籍「グラフ深層学習」を参考にGNNのグラフ埋め込みをやってみた_part2

# 本記事の概要
– 前回の記事に引き続き、GNNの**グラフ埋め込み**をpythonでの実装も含めてやってみたよ
– 今回は **グラフの大域情報** を反映する手法を扱ったよ
– GNN のライブラリは使わずにやったよ
– 書籍「グラフ深層学習」の4章を参考にしているよ
– 簡単な理論とコードを載せているよ
– 僕と同じくGNNビギナーの方の参考になればうれしいよ

# モチベーション
前回、グラフ埋め込みの基本的な手法である DeepWalk について、簡単な理論とpythonコードによる解説を行いました。

https://qiita.com/Ken_Sa/items/1a56c4913a4098e084f6

:::note info
参考書籍は引き続き「グラフ深層学習(2023, ヤオ マー &ジリアン タン)」です。

:::

DeepWalkは、グラフの近傍情報(接続)をもとにノードの特徴を取得し、埋め込み空間へと移す手法です。

一方で、接続していなくてもグラフ全体で見る

元記事を表示

Raspberry Pi 5 で好きなボイスのスマートスピーカーを作ってみた

Raspberry Pi 5を触ってみたかったので、ラズパイでスマートスピーカー自作にプラスαを加えて、ローカルTTSモデルを介して好きな声で返してくれるものを作ってみました。

実際のプロダクトを開発した経験はないので、処理の細かい部分は拙いところが多いと思いますが、個人の思い出としてまとめようとおもいます。

## 構成

音声入力から出力までのフローは以下のようになっています。
各フローの説明は後述します。

“`mermaid
sequenceDiagram
actor U as User
participant S as Raspberry Pi 5
participant T as TTS Model Server
U->>+S: 実行
S->>+U: 音声入力受付
U->>S: 音声入力
S->>S: 音声wav生成
S->>S: Whisper-1 API でSpeech to Text
S->>S: GPT-4o API で返事を生成
S->>+T: API Request
T->>T: TTSモデルへ返事のテキストを充

元記事を表示

ABC356回答メモ

# 0.はじめに
 茶色落ち目前のがけっぷちで参加。
A~Cもややこしくすんなりいきませんでしたが何とかAC。
D以降はさらに難易度が上がり1時間かけてもDは解けませんでした。
レートは-8で802とぎりぎり緑に残りましたが、もう誤差の範囲ですね。

# 1.A – Subsegment Reverse
 A問題からなかなか面倒な問題。
1~Nのリストを作って
1~L-1のリスト+L~Rを逆にしたリスト+R+1~のリストを
結合したリストを作り出力
スライス指定の微調整に時間がかかりましたが無事ACでした。

 https://atcoder.jp/contests/abc356/submissions/54087286

# 2.B – Nutrients
 素直に計算するだけの問題。
【考え方】
 各食品ごとの栄養素リストを読み
 Aの栄養素リストから引いていく。
 最後にAの栄養素リストを先頭から見て
 0より大きいものが残っていればNo
 残ってなければYesを出力して終了

 https://atcoder.jp/contest

元記事を表示

SAR Handbook[Chp3-2]を写経し、難しい単語を使わず意訳してみた

# はじめに
本記事シリーズではSERVIRが以下のサイトで公開している「SAR Handbook」を写経し、理解を深めることを目的としています。
https://servirglobal.net/resources/sar-handbook
もともとのサイトや資料は英語にて記載されているので、翻訳しつつコード理解をしていきます。

以下の記事の続きで、本記事ではChapter3のPart2について記載します。
https://qiita.com/oz_oz/items/81ebf76aea2d930dee49

# CHAPTER3
## Using SAR Data for Mapping Deforestation and Forest Degradation
Chp3の説明資料は以下にあります。
https://gis1.servirglobal.net/TrainingMaterials/SAR/Ch3-Content.pdf
Chp3では主にSARによる森林監視について触れており、Sentinel-1などのSARミッションの登場により、適切な前処理と変化検出手法を用いること

元記事を表示

類似度検索実装の記事をただただまとめる。

# 目的

文章の類似度を検索して、多数派意見は何人中何人いるのかというのを調べたいなあと。。。。そのために参考になる記事を個人的にまとめました~
目的としては自分が見返すためですが、この記事を見た方にも参考になればと思います。

# 記事一覧
・そもそもembeddingってなんだよって振り返ってみたくなったとき用の記事
https://zenn.dev/peishim/articles/c696ff85a539bd

・embedding を使用した類似度検索の手法を紹介した記事
https://qiita.com/takiatsushi/items/fe8ddbed315d81d5327e

・SentenceTransformer の精度を比較した記事
stsb-xlm-r-multilingualがよさそう!?
https://zenn.dev/welmo/articles/a79b8b45573383

・text-embedding-3
text-embedding-3-smallが少ない文章量の検索には最適なかんじ。
これがよさそー
https://weel.co.jp

元記事を表示

映画レビュー・評価値のスクレイピング2

# 概要

[前回の記事](https://qiita.com/AzukiImo/items/3356af25fe3e7d496e75
)では単一の[映画.com](https://eiga.com/)から選んだ映画のレビューや評価値を取得する方法を紹介しました.スクレイピングの解説をという意見があったので,解説を多めにしました.

https://qiita.com/AzukiImo/items/3356af25fe3e7d496e75

今回は,映画のレビューを入手できるURLの一覧を取得する方法を紹介します[^1].闇雲に映画のリストを取得するのも大変ですので,[映画.com](https://eiga.com/)の**alltime-best**からタイトルのURLリストを抽出したいと思います.

最終的に次のような形のレビューや評価値などの詳細データを入手できるURLのCSVファイルを取得することを目標とします.

~~~
review_url
0 https://eiga.com/movie/41841/re

元記事を表示

ツリー構造をもつコメント・リプライ機能の実装

## はじめに

Django REST FrameworkでTwitterもどきを個人開発しています。

この記事では、`django-treebeard`というツリー構造に特化した、ライブラリを使用して、ツリー構造をもつコメント・リプライ機能を実装します。
また`django-treebeard`を理解するうえで調べた、階層構造の表現方法についても記載しています。

## django-treebeardについて

以下は公式の`django-treebeard`についての[説明](https://github.com/django-treebeard/django-treebeard/tree/master)を翻訳したものです。

django-treebeardは以下の特徴を持ちます:

– **柔軟性**: 同じAPIで3つの異なるツリー実装を含みます:
1. 隣接リスト (Adjacency List)
2. 経路列挙 (Materialized Path)
3. 入れ子集合 (Nested Sets)
– **高速性**: 最適化された非ナイーブ

元記事を表示

OpenMMとpdbfixerをcondaを用いずに手動インストールする

[OpenMM](https://github.com/openmm/openmm)と[pdbfixer](https://github.com/openmm/pdbfixer)は公式ページでもcondaを使ったインストールがおすすめされているが、サードパーティのcondaは邪道と思う方のために、python3公式のvenvを使った方法で管理したい場合は以下のようにする。

## 仮想環境の作成

Python 3.12で仮想環境venvを起動した状態にする。3.12でなくても良いが、この記事を書いている時点では3.9以上が望ましいだろう。

“`bash
python3.12 -m venv .venv
source .venv/bin/activate # Python仮想環境の起動を確認する。
“`

`which python3.12`としてみて、`/path/to/your/.venv/bin/python3.12`が表示されれば仮想環境が起動している状態である(`/path/to/your`の部分は自身のディレクトリに読み替えてください)。

## OpenMMのインス

元記事を表示

ニュートン補間法によるチェビシェフ補間のPython実装

## 参考文献
数値計算の基礎と応用[新訂版]
数値解析学への入門
杉浦 洋(南山大学教授) 著
発行日 2009/12/10

書誌検索

## 参考ページ

https://www.shokabo.co.jp/author/onodera/App_Math/Chebyshev.html

https://ja.wikipedia.org/wiki/チェビシェフ多項式

https://mathlog.info/articles/1211

http://www.allisone.co.jp/html/Notes/Mathematics/Function/Chebyshev-polynomials/Chebyshev-polynomials.html

## 準備
オンラインコンパイラを使用します。

https://www.mycompil

元記事を表示

機械学習を応用して画像のポスタリゼーション

K-means法は教師なし学習の中でクラスタリングを行いますが、そのアルゴリズムの中でクラスタの重心を求めます。
ところで画像は配列にするとRGBが縦×横になっているわけですが、そのRGBのデータを取り出すことでデータセットにしてクラスタの数を8個にして各色の重心の色を使います。

※今回はGoogle Colabを使っているのでインデントが少し変ですがおおめに見てください。

# ライブラリのインポート
“`Python3
from sklearn.cluster import KMeans
import cv2
import matplotlib.pyplot as plt
import numpy as np
“`

# 画像の読み込み
“`Python3
img = cv2.imread(“/content/drive/MyDrive/lena_square.png”)
plt.imshow(img)
plt.show()
“`
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

ABC356をPythonで(A~D)

AtCoder Beginner Contest 356の解答等をまとめました

https://atcoder.jp/contests/abc356

# A問題
https://atcoder.jp/contests/abc356/tasks/abc356_a

言われたとおりにする
“`python:A
n, l, r = map(int, input().split())

ans = [i for i in range(1, l)] + [i for i in range(r, l – 1, -1)] + [i for i in range(r + 1, n + 1)]

print(*ans)
“`
# B問題
https://atcoder.jp/contests/abc356/tasks/abc356_b

forループで計算する
“`python:B
n, m = map(int, input().split())

a = list(map(int, input().split()))

for _ in range(n):
b = list(map(

元記事を表示

ChunkLlamaによる追加学習なしのLLMコンテキスト拡張を試す

# 概要
LLMのコンテキスト長は、基本的にモデル学習時の系列長の長さに制限されます。これに対し、モデルの元々のコンテキスト長よりも大きなコンテキスト長を実現する技術がいわゆるコンテキスト拡張です。
多くのコンテキスト拡張の手法では長い系列長のデータを使った追加の学習が必要となります。必要な学習量の大小には差がありますが、そもそも学習のための機器の準備や設定、データセットの用意など一般ユーザにとってはハードルが高いものになります。
これに対し、[ChunkLlama](https://github.com/HKUNLP/ChunkLlama)という手法では追加の学習を必要とせずコンテキスト拡張を実現します。この手法をMistral-7bベースのモデルに対して適用し、推論や様々なテストを試しました。

# 目次
1. [ChunkLlamaについて](#chunkllamaについて)
2. [Mistralベースのモデルで試す](#mistralベースのモデルで試す)
– [ChunkLlama(ChunkMistral)の適用方法](#chunkllamachunkmistral

元記事を表示

週報3 今週の備忘録

今週はプライベートで細々した開発を色々やったので、コーディング時間がたくさん取れたのと、興味の幅が広がった。

# 読んだ記事
– [「技術の価値は常に栄枯盛衰」 変化し続ける時代に求められるエンジニアになるためには – ログミーTech](https://logmi.jp/tech/articles/330589)
– [バグ報告が来た時にデキるエンジニアの動き方](https://zenn.dev/mixi/articles/d5a558a0b0870d)
– [状況報告、報告を受ける側が知りたいのは尽きるところ「ヤバいか、ヤバくないか」「それで次に行動するのはオレかお前か」というところです – Magnolia Tech](https://blog.magnolia.tech/entry/2024/05/19/202740)
– [コード品質はやはりビジネスに影響を与える – mtx2s’s blog](https://mtx2s.hatenablog.com/entry/2023/04/26/230917)
– [レビューの仕方 – Speaker Deck](https://

元記事を表示

【スマートウォッチで自律神経が見たい!】Polar Vantage V3を使って その2 お酒と心拍数の関係!

# はじめに
この記事は、[前回の記事:Polar Vantage V3を使って_その1](https://qiita.com/toshikinagahama/items/0ea5f16546794e4b1ab10)の続きの記事になります。

# 前回のおさらい
前回は、Polar Vantage V3の脈拍数の精度の高さと、生データの抽出方法および簡単な解析方法について述べました。

# 今回の記事について
心拍数(脈拍数)が健康とどうかかわるのか、意外にご存じない方もいると思います。今回は2023年11月から2024年5月まで計測した私の心拍数のデータ(計193日)から、「お酒と疲労」の関係をテーマに考察していきたいと思います。

# お酒と心拍数
疲労が蓄積すると、体が回復を促すために心拍数が増加する、というのは皆さん聞いたことがあるかと思います。

実はお酒を飲むことでも、心拍数が増加します。これは、アルコール分解のために脳が全身に血液を流そうとすることで生じます。なので、アルコール摂取量が多いほど心拍数が増加そして増加している期間も長くなります。

# 解析用データベースの作

元記事を表示

ランダムフォレストでワインの品質判定してみた【ワインの品質判定②】

#### はじめに
ランダムフォレストでワインの品質判定をやってみたので、紹介します。

#### プログラム
基本的には[前回記事](https://qiita.com/yamo1116/items/85b2d9d3f169d63789ca)と同じです。
ワインの特徴量と品質が記されたデータセットをURLから持ってきて、
特徴量からワインの品質を求めるようなプログラムになってます。
ランダムフォレストという機械学習の手法を使っております。

“`Python
# 必要なライブラリのインポート
import numpy as np # 数値計算を効率的に行うためのライブラリ
import pandas as pd # データ分析を容易にするためのライブラリ
from sklearn.ensemble import RandomForestClassifier # ランダムフォレストモデルを使用するためのライブラリ
from sklearn.model_selection import train_test_split # データを訓練用とテスト用に分割するためのライブラリ

元記事を表示

ニューラルネットワークでワインの品質判定してみた【ワインの品質判定①】

#### はじめに
ニューラルネットワークでワインの品質判定をやってみたので、紹介します。

#### プログラム
ワインの特徴量と品質が記されたデータセットをURLから持ってきて、
特徴量からワインの品質を求めるようなプログラムになってます。

“`Python
# 必要なライブラリのインポート
import numpy as np # 数値計算を効率的に行うためのライブラリ
import pandas as pd # データフレームを扱うためのライブラリ
from tensorflow import keras # ニューラルネットワークを構築・訓練するためのライブラリ
from tensorflow.keras import layers # ニューラルネットワークの層を作成するためのモジュール
from sklearn.model_selection import train_test_split # データを訓練用とテスト用に分割するための関数
from sklearn.preprocessing import StandardScaler # データを標準化

元記事を表示

Blenderのパーティクルシステム、ダイナミックペイント、ジオメトリノードの連携手法の検討 「Python API編」

# はじめに

本記事は前回の記事(https://qiita.com/Kai0731200/items/fac62eea3ee78ad6ace8) の続きです。
今回は自作アドオン「Particle Tracker」を用いて、Blenderのパーティクルシステム、ダイナミックペイント、ジオメトリノードを連携する方法について解説します。
基本的にはBlender Python APIの話です。

アドオンのURL(https://github.com/Kai0731200/Particle-Tracker)

# 目次

1. [おさらい](#おさらい)
1. [目標](#目標)
1. [解説](#解説)
1. [パーティクルの位置情報の取得](#パーティクルの位置情報の取得)
1. [handlerによる追跡](#handlerによる追跡)
1. [雨のシーンで使ってみる](#雨のシーンで使ってみる)
1. [まとめと考察](#まとめと考察)

# おさらい

Blen

元記事を表示

OTHERカテゴリの最新記事