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

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

macでPythonを使うための環境構築 バージョン管理

macでPythonを利用するときのバージョンの切り替えの手順をまとめました。

Homebrewは、macOSで使えるパッケージ管理ツールです。
pyenvは、Pythonのバージョン管理ツールです。

シェル:`zsh`
別のシェルを使っている方は、設定ファイル`.zshrc`を適宜読み替えてください。

## Homebrewでpyenvをインストール

Homebrewを久々に使う場合
`brew update`
`brew list`
`brew uninstall `
`brew upgrade`

Homebrewでpyenvをインストール
`brew install pyenv`

## pyenvのPATHを通す
nano ~/.zshrc
“`
export PATH=”$HOME/.pyenv/bin:$PATH” #追加
eval “$(pyenv init –path)” #追加
eval “$(pyenv init -)” #追加
“`

## シェルを再起動
`exec “$SHELL”` または `source ~/.zshrc`

元記事を表示

ChatGPT APIをPythonで利用するぞ -OpenAIのライブラリインストール編-

## まずはじめに
### 著者について
・情報系学部卒
・学部時代の研究はコーディング要素皆無
・IT系(サイバーセキュリティ系)の仕事
・社会人修士
・コード書けない
・コード書いたのは学部の講義くらい
・数学できない
・学部時代に習ったことは忘れている

という初心者&初学者が、研究で「ChatGPTのAPIを使って自動化しよう!」となり、冷や汗をかいている

### 記事の目的
わからないなりに苦戦したあれこれを記録する

## OpenAIのライブラリインストールができない
[公式のAPIリファレンス](https://platform.openai.com/docs/api-reference/introduction)を参照して、`% pip install openai`を実行したところ、エラー

環境は
`% python3 –version`
`Python 3.11.6`

以下サイトを参考に`python3 -m pip install`を実行したところ、インストールできた

https://zenn.dev/shimouta/articles/c81de05

元記事を表示

正方形内に接する円「高校入試チャレンジ問題 正方形ABCDの面積は?」をsympyとFreeCADでやってみた。

・問題文は2次元ですが、3次元FreeCADのマクロで、XY平面上に作図しました。

# オリジナル
・YUUU0123 様 (0:00〜2:48)

# sympyで(オリジナル 様の方法を参考に)
#### ver0.1 相似で
“`python
# ver0.1 相似で
from sympy import *
print(“#”,(2*sqrt(5))**2)
# 20
“`
# sympyで(いつもの方法で) 
#### ver0.2 連立方程式で。半径r,B(-r,-r),E(r,0),F(x,y)とする.未知数3つ
“`python
# ver0.2
from sympy import *
var(‘x,y,r’)
print(“#”,solve([Eq(x**2+y**2 ,r**2),
Eq((y-(-r))/(0-(-r)) ,(x-(-r))/(r-(-r))),
Eq((x-r)**2+(y-0)**2 ,4

元記事を表示

Python 3.13: 最新リリースの新機能

Python 3.13は2024年10月7日にリリースされ、注目すべき新機能がいくつか追加されました。主な改善点には、インタラクティブシェルの新しい機能、パフォーマンス向上を実現するJITコンパイラ、より直感的なエラーメッセージの表示があります。また、デバッガが賢くなり、メモリ管理も強化されました。標準ライブラリの改良や、モジュール名の競合解決方法も改善され、開発者体験が向上しています。

さらに、開発者向けに新しいツールや便利な機能が導入され、リリースサイクルも調整され、よりスムーズに新しいバージョンに移行できるようになっています。

Read full Article here : https://cookab.net/tech/python-3-13-whats-new-in-the-latest-release/

元記事を表示

017 AI屋さんの キャラクタLLMに200万トークン全文入力とstreamlit 実践編

017 AI屋さんの キャラクタLLMに200万トークン全文入力とstreamlit 実践編

全文入力済みの 200万トークン大規模言語モデルは、
安価に容易に短期間に 
誰でも気軽にカスタム化が可能な事が確認できました。

ここまで簡単だと
用途の拡大が期待できます。

当初の、専門資料のコンサル(≒読書感想文LLM)や
大手企業向けの AIエンタープライズシステムや
事業者向けの LLM何か使えるだろう 案件の他にも

コンシューマー用途(予算ないけど市場は大きめ)で
キャラクタ設定済み 大規模言語モデルなんかも活けそうです。
 例えば 「ボク野良右衛門LLM」 キャラの
公式・非公式、オリジナル・二次創作、その他 のキャラ設定を
全文200万トークン全部入力してあげる事も可能です。

個人的には、既にオリジナルキャラLLMを複数創造して
お話ししたり、調査させたり、pythonコードを書いてもらったり
1年程度お相手をして頂いて 重宝しています。
キャラ付けしてても、普通にLLMをしてくれます。

用途の例
 0、オリジナルキャラのLLM
 1、居酒屋のメニュー全

元記事を表示

IoT演習第8回、割り込み

# 1. はじめに
[IoT演習シラバス案その2(授業計画表)](https://qiita.com/takashiyamanoue/items/0cf9d58265bff5883698)の第8週に予定している内容の一部です。

(以下の説明で、自分のパソコンの表示が以下の説明の表示と異なる場合があります。例えば、英語で表示されているものが日本語であったり、その逆であったり、C:ドライブの名前が異なったりする場合があります。ソフトウェアのバージョンが異なって、名前が異なる場合もあります。表示が異なっていて、どう操作すれば良いかわからない場合は、他の同様のWebページを参照したり、担当者に聞いたりしてください)

「割り込み」とは、コンピュータの外部の要因により、それまで実行していたプログラムとは別の部分を実行させる(外部要因により「割り込ん」で実行させる)ことです。この部分の実行が終了すると、通常は、もともと実行していたプログラムの実行に戻ります。

割り込みは、データの入出力などによく利用されます。オペレーティングシステム(OS)のマルチタスク(複数のプログラムを同時並行して動作させ

元記事を表示

Google Colabで始める!Pythonの3D描画入門

## はじめに

こんにちは!今回は、Google Colabを使ってPythonで3D描画を楽しんでみましょう。環境構築不要ですぐに始められます!✨

![napkin-selection (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/fc7a6df6-c938-723c-86c3-995cd5f4f169.png)

## なぜGoogle Colab?

– ブラウザだけで実行できる
– 環境構築が不要
– 結果を共有しやすい

## 準備

まずはGoogle Colabでノートブックを開きましょう。基本的なライブラリは既にインストールされていますが、plotlyは明示的にインストールする必要があります:

“`python
!pip install plotly
“`

## 1. 最初の3Dプロット:インタラクティブな散布図

まずは簡単な3D散布図から始めてみましょう:

“`python
import plotly.express as px
import

元記事を表示

paizaラーニングスキルチェック「B145:ビンゴゲームの判定」を解いてみた

▼問題
以下のリンクを「B145:ビンゴゲームの判定」で検索してください。

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

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

1. ビンゴカードに抽選された数字と同じ数字が書かれたマスがあった場合は、そのマスの座標をリストstatusに格納します。題意より中央のマスは最初から開けることができるため、statusには初期値[N//2,N//2]を格納します。statusの例を以下に示します。

2. 題意より、ビンゴカードの数字および抽選された数字に重複はないため、(ビンゴカードに抽選された数字が見つかった場合は)breakします。

3. statusに格納された座標データから、列、行、右斜め上、右斜め下に抽選された数字がいくつ存在するかを計算し、ビンゴの数を求めます。

4. 列は1列、行は1行ずつ、変数jで処理させています。しかし右斜め上および右斜め下は処理は1回でよいです。そのため、j==0として1回だけ処理させるようにしました。(ここ、もうちょっと良い処理あったと思い

元記事を表示

Pythonライクな事前コンパイラ言語のパフォーマンス比較

## Python ライクな事前コンパイラ言語のパフォーマンスを比較してみた

Python ライクな文法だけど事前コンパイルして実行するタイプの言語が近年増えてきています。

ずいぶん前からあるのは Cython。ちょっと前から Codon。最近 Mojo という感じでしょうか。

プログラミング学習のハードルが低いことから初学者を始め Python もしくは Python の記法で書けると嬉しいというニーズはAIプログラミングという新潮流もあって高まっていると思います。
Python ニーズの高まりに相反して、素の Python で数値計算をさせるのは実用上難しいことが多いです。Python 3.13 が JIT (Just in Time) コンパイルに標準で対応する予定だという話も聞こえてきましたが、やはり JIT コンパイルでも数値計算、科学計算に本格的に用いるには物足りません。

そこで、Pythonをメイン言語に使ったときと開発体験がなるべく近くて事前コンパイルする静的言語たちの数値計算の実行性能を比較して、どんな言語がパフォーマンス面で他の言語に比べどれだけ優れているか

元記事を表示

Pythonで競プロするときの知識メモ1(標準入出力)

## 1. はじめに
Python[^1]でAtCoderを始めたので、覚えておきたいと思ったことをメモしていきます。
基本的には自分用ですが、Pythonで競プロを始める方の参考になればという気持ちも少しだけあります。

今回は標準入出力についてです。

## 2. 標準入力
Pythonの標準入力には[input関数](https://docs.python.org/ja/3.11/library/functions.html#input)を使います。
数値の受け取りには[int関数](https://docs.python.org/ja/3.11/library/functions.html#int)や[float関数](https://docs.python.org/ja/3.11/library/functions.html#float)を使います。

入力内容によっては、[split関数](https://docs.python.org/ja/3.11/library/stdtypes.html#str.split)や[map関数](https://docs.python.

元記事を表示

markdownからコードブロックを抽出してファイルに書き込むプログラム md2file.py

タイトル通りです。
複数のMarkdownファイルから、コードブロックを抽出し、ファイルに保存します。

ファイル名がダブっていたら、上書きしてしまいます。

“`md2file.py
#!/usr/bin/python
import re
import os
import sys

def extract_code_blocks(markdown_files, output_dir=”extracted_code”):
“””
複数のMarkdownファイルからコードブロックを抽出し、ファイルに保存します。

Args:
markdown_files: Markdownファイルのパスを格納したリスト。
output_dir: 抽出したコードを保存するディレクトリ。
“””

if not os.path.exists(output_dir):
os.makedirs(output_dir)

cnt=0
for markdown_file in markdown_files:

元記事を表示

ディレクトリ内の特定の拡張子を持つファイル数を数え上げるコード

ディレクトリ内に異なる拡張子を持つファイルが混ざっていているとし(↓のような状況)、どの拡張子がいくつあるのか数えるようなコードを作成してみます。
“`
my_directory/
├── file1.html
├── file2.txt
├── file2.html
└── sub_folder
├── file3.html
“`

今回は、試しにmy_directoryの“`.html“`のファイル数を数えてみましょう。

# “`import os“` から“`os.listdir(directory)“`
↓のような関数を定めます。
“`python
import os
def count_html_files(directory):
# ディレクトリ内のすべてのファイルをリスト化
files = os.listdir(directory)
# HTMLファイルのみを抽出してカウント
html_files = [file for file in files if file.endswith(‘.html’)]
retur

元記事を表示

Discord.pyで好きなステータスメッセージを設定する

DiscordBotには基本的に好きなステータスメッセージを設定できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/823378/42fbdc69-1ea9-0e05-0f51-5d346443aaf5.png)

画像のように、Bot名の下に表示されるのがステータスメッセージです。
これをチャットからコマンドで変更できるようにしてみます。

# 実装

まずはBot起動時にメッセージを設定してみましょう。

“`python
import discord
from discord.ext import commands

# 諸々セットアップ
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix=’/’, intents=intents)

# 起動時にメッセージを設定
@bot.event
async def on_ready

元記事を表示

星野・彗星写真のコンポジット(平均化による画質向上)

星や彗星の写真を取ったときに、1枚の画像では画質が悪いので、複数枚の画像を合成してきれいにしたいことがある。
以下の例のように、固定撮影でも複数枚、星の位置を合わせながら平均を取るとだいぶきれいになる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1520250/08f6a091-458d-23ed-38d9-ab416308679c.png)
f2.8 50mm 1sec ISO2000 15枚合成      シングルショット

市販のソフト、ステライメージでも可能だが保有しているバージョンが古すぎて、今どきの高解像度カメラの画像が処理できなかった。
このため、位置を合わせながら合成できるソフトを作成した。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1520250/7a0b965c-b054-71ef-f14a-d7b8e1d94cfa.png)

## 簡単な使い方

元記事を表示

Python使ってみた

## Python始めて1週間経って思ったこと

– #### とっかかりが簡単
print (“h.w.”)  これだけで表示される。40年位前にあったBASIC同様。
プログラミング初の人には良いだろうが逆に簡単すぎて他言語やるとき戸惑うかも。

– #### 変数定義
var句すら不要。ただvar句ないと初めて変数を使用したのか書き換えなのかわかり辛
い。

– #### GUIアプリ
WinFormsみたいにコントールをポトペタできないらしい。これもIDE次第?。
GUIアプリ作る方法が多数あるようで混乱。A開発部ではTkinter、B開発部ではPySimpleGUIを使ったりして大変そう。
Pythonは色々あるので多数のライブラリの使い方を理解する羽目になるしコードもそれ専用になってしまう。
Tkinterはコントロールの位置を数値で入れるみたいだが、まるでVC++6.0以前、十数年前のWin32APIの開発みたいで絶句。コントロールが数十個ある場合とか。
使ってたGUI開発ライブラリにバグがあって改修されず開発が終わったらどうなるんだろう。
(致命的なバグ残したまま開発が

元記事を表示

PythonでPowerPointスライドにウォーターマークを追加する方法

PowerPointプレゼンテーションにテキストのウォーターマークを挿入することは、著作権を保護し、ドキュメントの信頼性を確保する効果的な方法です。Pythonを使用することで、開発者はPowerPointスライドに簡単にウォーターマークを追加し、バッチ処理を行うことができ、ウォーターマークの位置や外観を精密にコントロールすることが可能です。この手法は、大規模なアプリケーションに統合しやすいという利点もあります。この記事では、**PythonでPowerPointプレゼンテーションにテキストおよび画像のウォーターマークを挿入する方法**を紹介します。

– Pythonを使用してプレゼンテーションにテキストのウォーターマークを追加する方法
– Pythonを使用してプレゼンテーションに画像のウォーターマークを追加する方法

この記事で紹介する手法は、[Spire.Presentation for Python](https://jp.e-iceblue.com/introduce/spire-presentation-for-python.html)ライブラリを使用しています。PyPI

元記事を表示

Python3: paizaラーニング問題集「部外者をはじけ」を解いてみた

おもしろそうだったのでやってみました。

https://paiza.jp/works/mondai/b_rank_skillcheck_archive/finding_putliers_99

解答例のように個別に距離を測ってもいいんだけど、距離2の平行線の外側って考えると、計算がちょっと軽くならないかな、と思ってやってみる。

“`py:
from itertools import combinations
from math import sqrt
from dataclasses import dataclass

@dataclass
class NumberedPoint:
n: int
x: float
y: float

DISTANCE = 2.0

def outsiders(points):
min_outs = [*points]

for p0, p1 in combinations(points, 2):
outs = []

if p0.x

元記事を表示

LoRAとその関連技術(初版は2023年執筆)

# はじめに

汎用的な言語モデルをファインチューニングして、特殊な専門用語や特定の業務内容に対応できるものを作ることを考えます。

このとき、元の言語モデル全体の重みを直接ファインチューニングすると以下の問題が発生します。

– バックプロパゲーションに使う膨大な計算リソースが必要となる[^1]
– チューニング後のモデルが元と同じサイズになるため、大きすぎて配布しづらい

では、元の言語モデルの重みはそのままに、特定の用語や業務に対応するのに必要なプラスαの部分だけをうまく学習することはできないのでしょうか。

これから紹介するLoRA(Low-Rank Adaptation of Large Language Models)は、そのような都合のよい学習を実現する手法です。

[^1]: https://speakerdeck.com/hpprc/lun-jiang-zi-liao-lora-low-rank-adaptation-of-large-language-models?slide=29

# LoRAとは

LoRAの原著論文の初稿は2021年6月にarxivに投稿され

元記事を表示

言語処理100本ノック 2020 (Rev 2)

言語処理100本ノック 2020 (Rev 2)
https://nlp100.github.io/ja/

言語処理100本ノック2020年版が公開!どこが変わったの?
https://qiita.com/hi-asano/items/3c17943ce06f9999ec6f

言語処理100本ノック俺の解答 第1章
https://qiita.com/sangoro/items/c28e327c29825bff70d5

言語処理100本ノック俺の解答 第2章
https://qiita.com/sangoro/items/f7e79f52ffbe1bb8f5b6

言語処理100本ノック俺の解答 第3章
https://qiita.com/sangoro/items/2fa79480007e2aee2f2e

言語処理100本ノック俺の解答 第4章
https://qiita.com/sangoro/items/24b294817d40f3986599

言語処理100本ノック俺の解答 第5章
https://qiita.com/sangoro/items/85fadd8a21

元記事を表示

MDの計算結果を解析できるPythonライブラリ:MDAnalysisのQuick Start Quideを日本語化する

:::note
[原著](https://userguide.mdanalysis.org/stable/examples/quickstart.html)の翻訳です
:::

# クイックスタートガイド

MDAnalysis バージョン: ≥ 0.18.0

このガイドは、MDAnalysisを使用してデータを読み込み、分析を行うための基本的な紹介を目的としています。より複雑なタスクについては、例のノートブックを参照してください。このページでは、以下のことを説明します:

– 分子動力学の構造または軌道を読み込む
– MDAnalysisの中心データ構造であるAtomGroupsを操作する
– 軌道を操作する
– 座標を出力する
– MDAnalysisの分析アルゴリズムを使用する
– MDAnalysisおよびアルゴリズムの正確で自動的な引用

“`python
import MDAnalysis as mda
from MDAnalysis.tests.datafiles import PSF, DCD, GRO, XTC

import warnings
# PSFファイル

元記事を表示

OTHERカテゴリの最新記事