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

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

Python学習5日目~クラス~

## クラス
オブジェクトの構造を定義するための仕組み。
同じクラスを使えば同じ構造をしたオブジェクトをたくさん作りだすことができる。

例えば
~~~Python:example.py
str(123)
str(456)
~~~
~~~:実行結果
‘123’
‘456’
~~~
このようにstrという組み込み型のクラスを使えば、文字列型の123と456というオブジェクトが生成される

### オブジェクト
オブジェクトはデータと処理から構成される。
このデータと処理のことを属性といい、それぞれ**データ属性**、**メソッド**と呼ぶ。

### クラスオブジェクトとインスタンスオブジェクト
クラス自体のオブジェクト:クラスオブジェクト
インスタンスから生成されたオブジェクト:インスタンスオブジェクト

### オブジェクトの生成
~~~Python
class(引数,)
変数 = class(引数,) # オブジェクトを変数に保存する
~~~

### メソッドの呼び出し

~~~Python
オブジェクト.メソッド(引数)

# 例
x = set()
x.add(1)
x.ad

元記事を表示

材料力学「bulk modulus K(体積弾性係数)」を調べた。sympyで。

**パイソニスタの方へ。教えて下さい**
①2次以上の微小項を無視して、
 2次以上の微小項を0
 にする方法を教えて下さい。
②分母の約分のユーザー定義関数を探しています。

# オリジナル
イロイロ見て、どれがオリジナルかわからなくなりました。

>【体積弾性係数 K の導出】

・〜pdf#page=2はできませんでした。

http://www.mech.kagoshima-u.ac.jp/~nakamura/zairiki2/2005-2-4.pdf

> 28頁です。ダウンロード:弾性論初歩テキスト(pdf file)< 2.弾性論初歩の講義ノート 

http://www.mech.kagoshima-u.ac.jp/~nakamura/zairiki2/

・〜pdf#page=28はできませんでした。
https://www.mech.kagoshima-u.ac.jp/~nakamura/zairiki2/elasticity-01.pdf

ありがとうございました。
> 鹿児島大学理工学研究科機械工学専攻 様
http://www.mech.kagoshima-

元記事を表示

Pythonでのツール作成時に困ったこと④

これまでに続き、Pythonのツール作成時に実際に起きた間違いをまとめてみました。

今回は以下についてです。
・dateframeの結合で発生したエラー
・query後のforループでのミス

①dateframeの結合で発生したエラー
二つのdateframeの結合を行うため、以下のように記載したところ、エラーとなり処理が止まりました。
df1 = pd.contact([df1,df2])

以下のように修正したところ動きました。
df3 = pd.contact([df1,df2])

原因を調べましたが具体的な理由は出てこなかったため予想になりますが
代入先に結合するdateframeを指定することはできないようです。

②query後のforループでのミス
query後にforループで特定列を処理しようとするも、該当のindexがなく想定した処理となりませんでした。
df2 = df1.query( ‘抽出条件’ )
chk = ‘NG’
for index, row in df2.iterrows():
if index == 1:
chk = ‘OK’
p

元記事を表示

微分方程式の数値計算 フーボルト法

## フーボルト法概要
 フーボルト法は、航空機の振動解析のためにフーボルトが考案した方法である。本手法は、時刻$(t+Δt)$時点の位置$u(t+Δt)$を、現在位置と過去の位置の多項式近似により求める。下図のように、4点 $u(t+Δt)$、$u(t)$、$u(t-Δt)$、$u(t-2Δt)$ を通るラグランジュ補間関数により、位置$u$を3次の多項式近似として算出する。
位置$u$が3次式となるため、速度$\dot{u}$は2次式、加速度$\ddot{u}$は1次式となり、加速度を1次式として扱う[線形加速度法(ニューマークβ法)][NewMarkBeta]や[ウィルソンθ法][WilsonTheta]と共通した面があるが、多項式近似していることにより連続性が保たれるという点が本手法の特徴である。

[NewMarkBeta]:https://qiita.com/TbsYS/items/764c80491a6df1ba8831
[WilsonTheta]:https://qiita.com/TbsYS/items/0e64d6313bbddc0cfa1f

![図1.png]

元記事を表示

Matplotlib created a temporary cache directory at /tmp/matplotlib-5nsiuvb1 because the default path…の対処法

# 状況
– Ubuntu 20.04のdocker
– pythonでmatplotlibを使用中によくわからんwarningが出る

# 警告
“`Python
from mmpose.apis import MMPoseInferencer
“`

“`terminal
Matplotlib created a temporary cache directory at /tmp/matplotlib-5nsiuvb1 because the default path (/home/【username】/.config/matplotlib) is not a writable directory; it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing.
“`

#

元記事を表示

Python初心者の備忘録 #09 ~DSに使われるライブラリ編04~

# はじめに
今回私は最近はやりのchatGPTに興味を持ち、深層学習について学んでみたいと思い立ちました!
深層学習といえばPythonということなので、最終的にはPythonを使って深層学習ができるとこまでコツコツと学習していくことにしました。
ただ、勉強するだけではなく少しでもアウトプットをしようということで、備忘録として学習した内容をまとめていこうと思います。
この記事が少しでも誰かの糧になることを願っております!
**※投稿主の環境はWindowsなのでMacの方は多少違う部分が出てくると思いますが、ご了承ください。**
最初の記事:[Python初心者の備忘録 #01](https://qiita.com/Yushin-Tati/items/961dc47d6163f944f7e9)
前の記事:[Python初心者の備忘録 #08 ~DSに使われるライブラリ編03~](https://qiita.com/Yushin-Tati/items/f58bcaa9562fc2596439)
次の記事:まだ

今回は**Seaborn**についてまとめております。
##

元記事を表示

カーネル密度推定(KDE)の高速化

# 処理速度が遅い・・・
以前の記事にした密度を色で表す散布図において、処理速度が遅いという問題があった。原因はカーネル密度推定の演算に時間がかかること。Rで行う場合は`densCols`関数を用いるが、これがPythonでやるよりも圧倒的に速い(しかも標準搭載だから手軽)。

https://qiita.com/kujira_0120/items/c00a7bb22144ad6c565c

Pythonでも高速でプロットする方法を調べた。
### Pythonでの実装方法
* [`kern_smooth`を用いる](1-kern_smoothを用いる)
* [`fastkde`を用いる](2-fastkdeを用いる)
* [各手法の比較](#比較)
* [コードのみ](#実装コード)

# カーネル密度推定の高速化方法

### 仕組み

高速化のカギは「ビン化」、「2D高速フーリエ変換」らしい。
>**ビン化概算**
2Dカーネル密度の正確な推定値の近似により密度計算を高速化します。最初の2Dビン化が(x、y)ポイントで実行され、ビンカウントの行列を取得します。 次

元記事を表示

ローカルで気軽にRAGを使って会話することが簡単すぎてビビった。

今日は、ローカルにてRAG(Retrieval-Augmented Generation)を使って、あるPFDについて質問するチャットを作ろうと思う。
OpenAIを使うので、無料ではないので注意されたい。

今回のソースは
[LangChain 完全入門](https://amzn.asia/d/cKlBsXd)
という本を参考にしていて、とても勉強になるので購入をお勧めする。

# 行いたいこと

ローカルでPDFを読み込ませて、内容を質問したり、要約させること。

# 大きな流れ

1. 環境準備
1. チャットアプリの土台の作成
1. プロンプトを定義
1. アップロードされたPDFファイルを分割
1. 内容をベクトル化し保存
1. 入力された質問とPDFから抽出した適した文をOpenAIに送信
1. 回答を得る。

# 詳細

## 環境準備

### 環境構築

– Python : 3.11.6
– pip ライブラリ
– chainlit==1.0.101
– チャット画面を簡単に作るライブラリ
– chromadb==0.4.22

元記事を表示

データサイエンス(データ分析、モデル構築)で使える高速化処理に関する参考書

# データ分析、モデル構築で使える高速化処理に関する参考書をまとめました(更新途中)

### ハイパフォーマンスPython

### Cython ―Cとの融合によるPythonの高速化
https://www.oreilly.co.jp/books/9784873117270/

### 並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ
https://www.oreilly.co.jp/books/9784873119595/

### 入門 PySpark ―PythonとJupyterで活用するSpark 2エコシステム
https://www.amazon.co.jp/PySpark-―PythonとJupyterで活用するSpark-2エコシステム-Toma

元記事を表示

【強化学習】DreamerV3を解説・実装

この記事は自作している[強化学習フレームワーク](https://qiita.com/pocokhc/items/a2f1ba993c79fdbd4b4d)の解説記事です。

https://github.com/pocokhc/simple_distributed_rl

前:[Dreamer2](https://qiita.com/pocokhc/items/31050a83539665bfc799)

# DreamerV3の概要

DreamerV3は、極めて難しいタスクとして知られる Minecraft のダイヤモンド収集タスクを初めてゼロから解いたアルゴリズムとして話題になりました。

論文での内容としては大きく以下となります。

+ 出来るだけパラメータを固定し幅広い環境で好成績を収めた
+ Minecraftのダイヤモンド収集タスクが実行可能な初めてのアルゴリズム
+ モデルが大きいほど性能が良くなる事実を発見した

参考
・[Mastering Diverse Domains through World Models(論文)](https://browse.arxi

元記事を表示

IPPONグランプリのプロフィール画像を作りたい(わけではなかったのです).

# きっかけ
2023年6月,北海道立近代美術館の特別展トリック×イリュージョン!を訪れた際にある作品を見て,作りたいアートのイメージが急に湧いてきた.それはソースコードの文字列で人の顔を表現するもので,すぐにその場で作成可能か調べてみた.画像から人物だけを切り抜き,2値化して黒い部分だけに上からソースコードを貼り付けてみようかと思っていると,[IPPONグランプリの公式サイト](https://www.fujitv.co.jp/ippon/profstudio.html)でそれっぽいものができることを発見した.しかし,この[IPPON PROFILE STUDIO](https://www.fujitv.co.jp/ippon/profstudio.html)をそのまま用いる場合,`名前を入力しないと生成できない点`と`背景の色の変化が小さくないとうまくいかない点`が壁として立ちはだかる.そもそもアートのために手軽に使いたかったわけであり,これらを解決するプログラムを自分で組むことにした.

:::note
直近では2024年2月3日(土)にIPPONグランプリが放送されます.
::

元記事を表示

Pytorchで自分で作ったデータセットを使いたい

~~~
from torch.utils.data import DataLoader

train_dataloader = DataLoader(training_data, batch_size=64, shuffle=True)
test_dataloader = DataLoader(test_data, batch_size=64, shuffle=True)
~~~
のtrain_data変数はにしたのクラスにアノテーションファイルとイメージディレクトリを引数として渡してインスタンス化したものを渡せばいい。
~~~
import os
import pandas as pd
from torchvision.io import read_image

class CustomImageDataset(Dataset):
def __init__(self, annotations_file, img_dir, transform=None, target_transform=None)

元記事を表示

ろうとるがPythonを扱う、、(その19:Scapy Bridgeで遅延やパケットDrop)

# Scapy Bridgeで遅延やパケットDrop
Scapyで実現できることとして、パケット遅延およびパケットDropが簡単であったので、記録しておく。小ネタレベル。大昔の記事「[tcコマンドによるパケットロスおよび遅延](https://qiita.com/infinite1oop/items/3c479b775cc138c7bb46)」と内容的には同様である。

## 環境
「[こちら](https://qiita.com/infinite1oop/items/0498c7b89001c634f473)」の稿のブリッジと同じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/19e7f2ae-a78c-2ad0-9781-701dfcaf50a7.png)
VirtualBoxの3つのVMを利用。中央のVM(Lubuntu)がネットワークブリッジ、両端は同一ネットワークセグメントに属する。

## ソースコード
“`python
from scapy.all imp

元記事を表示

Python:浮動小数点数と呼ぶ理由について

 本日は 「浮動小数点数と呼ぶ理由」 について書いてみます (o'(ェ)’)🍙

## 【浮動小数点数と固定小数点数について】

 Python 初学者な方において 「**小数**」 のことを, わざわざ 「浮動小数点数」 と呼んでいるのは 「なぜ」 だろう・・・と思われている方が, 多いと感じております。

 コンピュータにおける 「小数の表現方法」 には 「**浮動小数点数****固定小数点数**」 の 「2つの表現方法」 があります。このうち Python においては 「浮動小数点数」 を使用する仕組みに成っていますので, 単に 「小数」 とは言わずに, 厳密に 「浮動小数点数」 と, 呼んでおります。

## 【浮動小数点数について】

 浮動小数点数は, 英語で **Floating Point Numbers** と言います。その

元記事を表示

【第2回】初心者のためのDiscordBot制作への道 ~Pythonプログラミングの基本~

# はじめに
本記事は『初心者のためのDiscordBot制作解説』第2回です!
[前回](https://qiita.com/NaruNeko/items/9465486b9c8ac5e1e375)はPythonの開発環境構築までを解説しました。
これで環境は整ったので、早速プログラミングをしていきましょう。

# 環境
今回使用した開発環境です。完全初心者の方は読み飛ばして頂いてOKです。
– Windows10
– python 3.10.11
– Visual Studio Code

# さっそくプログラミングしてみよう!

さて、プログラミングをするための環境が整ったところで実際にコードを打って実行してみましょう!

## 1 Pythonファイルの作成と保存

左上の『ファイル』をクリック
→『新しいファイル』をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842664/38012cdc-c4bd-9b39-3026-7b24cb7f81d2.png)

画面中

元記事を表示

【第1回】初心者のためのDiscordBot制作への道 ~環境構築編~

# はじめに
本記事では、DiscordBotを通してプログラミングを学びたいという友人へのハンドアウトも兼ねて、プログラミング初心者の方向けに順番に基礎を解説しながら、Pythonを使ったDiscordBotの制作を目指して行きたいと思います。
**『プログラミングにチャレンジしたいけど、環境構築とか色々ややこしいし取っ掛かりが難しくて手が出せない』** という方でも理解できるよう、できるだけ分かりやすく、そして詳しく解説していこうと思います。
第1回の本記事では、ひとまず環境構築について解説していきます。

# 環境
今回使用した開発環境です。完全初心者の方は読み飛ばして頂いてOKです。
– Windows10
– python 3.10.11
– Visual Studio Code

# 開発環境の用意
### ※既にPythonを実行可能な開発環境が整っている方は読み飛ばして第2回へ。
プログラミングをするためには、まず最初に開発のための環境を整える必要があります。
どんなものを開発したいかによって、使用するプログラミング言語やその他ソフトウェア等を選ぶ必要があり、その後それ

元記事を表示

DCGANに挑戦

# 目次
[1.はじめに](#1-はじめに)
[2.DCGANについて](#2-DCGANについて)
[3.ライブラリのインポート](#3-ライブラリのインポート)
[4.データローダーの作成・学習に使用するデバイスの選択](#4-データローダーの作成・学習に使用するデバイスの選択)
[5.生成器Gと識別器Dのクラスを定義](#5-生成器Gと識別器Dのクラスを定義)
[6.ニューラルネットワークの重みを初期化〜識別器Dにて画像が本物か生成かを判別](#6-ニューラルネットワークの重みを初期化〜識別器Dにて画像が本物か生成かを判別)
[7.学習](#7-学習)
[8.確認画像の生成とモデルの保存](#8-確認画像の生成とモデルの保存)
[9.本実装](#9-本実装)
[10.結果](#10-結果)
[11.おわりに](#11-おわりに)

# 1. はじめに
生成AIの学習を初めて、GANは学習したかった項目の一つで実際サンプルコードを使いながら自分でも実装できましたので共有していこうと思います。ここからは数式などの理解がまだ追いついていないため、あらかじめご了承ください。

元記事を表示

PythonによるPDFとSVGの相互変換の実装

PDFドキュメントは最も一般的なドキュメント形式の一つであり、異なるプラットフォームやデバイスで閲覧することができ、さらに異なるデバイスでの表示効果を保証することができます。SVGはベクターグラフィックス形式であり、HTMLでのサポートも良好です。PDFドキュメントをSVGファイルに変換することで、ドキュメントをHTMLに簡単に埋め込み、ウェブページ上で直接表示することができます。逆に、SVGをPDFファイルに変換することで、より多くのデバイスやプラットフォームでドキュメントをサポートし、ドキュメントの印刷や安全性の設定を容易にすることができます。本文では、Pythonコードを使用して**PDFドキュメントをSVGファイルに変換する方法**と**SVGファイルをPDFドキュメントに変換する方法**について説明します。

– **[PythonによるPDFとSVGの変換の概要](#pythonによるpdfとsvgの変換の概要)**
– **[Pythonを使用してPDFをSVGに変換する方法](#pythonを使用してpdfをsvgに変換する方法)**
– **[Pythonを使用してP

元記事を表示

モグライダー「さそり座の女」

M-1で実装できそうなネタを教えてもらったので書きました

https://note.com/exo513/n/n793a3d56bde1

3人とも可愛い
https://x.com/mgrd33/status/1481212541582049286?s=20

“`python
zodiac_list = [“牡羊座”, “牡牛座”, “双子座”, “蟹座”, “獅子座”, “乙女座”, “天秤座”, “蠍座”, “射手座”, “山羊座”, “水瓶座”, “魚座”]
gender_list = [“女”,”男”,”その他”,”『回答しない』”]

def mikawa(z, g):
for zodiac in zodiac_list:
if zodiac == “さそり座”:
print(f”モグライダー「{zodiac}ですか?」美川さん「コクリ」”)
for gender in gender_list:
if gender == “女”:

元記事を表示

langchainでAzure OpenAIのAPIを叩くときの仕様が若干変わってたのでメモ

## 背景
langchainを久々に触ったら今後若干仕様が変わるとのwarningが出たのでメモ。

## 使い方
環境変数は以下のように設定(API versionはこれを使ってね!っていうお触れ書きがOpenAI側からあったような気もするが、忘れたので後で追記する)

“`
OPENAI_API_TYPE=”azure”
OPENAI_API_VERSION=”2023-09-01-preview”
OPENAI_API_KEY=”*********************”
AZURE_OPENAI_ENDPOINT=”https://xxx.openai.azure.com/
“`

新たに`langchain-openai`をインストール。
`langchain.chat_models`から叩いていたが、langchain v0.2.0から変更になるらしい。

“`bash
pip install langchain-openai
“`
コード上では以下のように使う。

“`python
from langchain-openai import AzureCha

元記事を表示

OTHERカテゴリの最新記事