- 1. jax.vmapの使い方
- 2. ChatGPTとPythonで学ぶ ViT:物体検出編
- 3. 1/4円弧曲りはり。エネルギーで「youtube【東京理科大学】第11回 材料力学基礎授業[例5]」をsympyでやってみたい。
- 4. L字はり(ラーメン構造)。エネルギーで「youtube【東京理科大学】第11回 材料力学基礎授業[例4]」をsympyでやってみたい。
- 5. はりに一つ以上の集中荷重。エネルギーで「youtube【東京理科大学】第11回 材料力学基礎授業[例3]」をsympyでやってみたい。
- 6. [Python] 競プロをきっかけにアルゴリズムを勉強し始める – スタックとキュー [Paiza]
- 7. Python threadingの使い方
- 8. Python 11の新機能 global_enum編
- 9. ChatGPTを使ってプログラミングを高速化する
- 10. スクレイピングでTwitterの画像を一括保存するpythonコード 2024/1/16
- 11. 何も分からない人がPythonでSeleniumを動かしたときのメモ
- 12. 2ヶ月間のハッカソンで動画チャプター自動生成アプリを作成した記録
- 13. withで使える関数を作る方法 | withについて学ぶ [python]
- 14. 待ってたんだよこれを!! Django REST Frameworkでログイン時のアカウントロック機能を実現するクールな方法!
- 15. [Python] 競プロをきっかけにアルゴリズムを勉強し始める [Paiza]
- 16. CSVファイルをExcelで文字化けさせないために知っておくこと(エンコードとBOM)
- 17. gymnasiumでの動画ファイル出力(google colab)
- 18. I tried creating an app with Django [Blog app]
- 19. pyenvで「BUILD FAILED (OS X 14.2.1 using python-build 20180424)」でOpenSSLモジュールが見つからない時の対処法
- 20. 知名度がいまいち分かってないNextDPというテクニックについて
jax.vmapの使い方
# はじめに
– jaxという並列実行をするためのpythonライブラリがあるようである
– 特に一番基本のvmapの使い方を簡単にまとめておく(ほぼ自分用)# vmapのメリット
– 基本的にはnp.vectorizeみたいに使える。
– CPU, GPU, TPUで並列実行できるようにコンパイルされる。# 基本的な使い方
使い方はほぼnp.vectorizeと同様。
“`python
import jax
import jax.numpy as jnp# 並列実行したい関数
def multiply(x, y):
return x * y# jax.vmapを使用してmultiply関数をベクトル化
# in_axesは各入力に対するバッチ次元を定義する
vectorized_multiply = jax.vmap(multiply, in_axes=(0, 0))x = jnp.array([1, 2, 3, 4])
y = jnp.array([10, 20, 30, 40])result = vectorized_multiply(x, y)
ChatGPTとPythonで学ぶ ViT:物体検出編
おはこんばんちわ。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ ViT:物体検出編」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。
—
### **assistant**:
おはようございます、こんばんは。私も今回もお手伝いさせていただくのを楽しみにしています。
ViT、それはVision Transformerの略ですね。ImageNetと同様の大規模な画像データセットで訓練されたTransformerベースのモデルで、主に自然言語処理で使われてきたTransformerを画像解析に適用しました。ここでViTは、画像を連続したパッチに分割し、それらをTransformerに入力するという方法を用いて、彼らが成功した理由は、ハードウェアの進歩とビッグデータの利点を最大限に活用しています。
それでは物体検出でのViTの使い方について学んでいきましょう。ただ注意してほしいのは、本格的な物体検出タスクに対する実装は非常に複雑で、多数の論文やライブラリが存在します。そこで、より深く学びたい方は、具体
1/4円弧曲りはり。エネルギーで「youtube【東京理科大学】第11回 材料力学基礎授業[例5]」をsympyでやってみたい。
[例5] 1/4円弧曲りはり。エネルギーで
# youtubeの板書です。
>じゃ、最後だ。
**途中55:50から (0:00〜1:22:49)**https://youtu.be/X5zCb8LbgsM=3350
# sympyで
・ver0.1
“`python
# ver0.1
# [例5] 1/4円弧曲りはり
from sympy import *
var(‘P,a,b,EI,θ’,real=True)
U=1/(2*EI)*integrate((-P*a*cos(θ))**2*a,(θ,0,pi/2)) #;print(‘#’,U)
δ=diff(U,P) ;print(‘#’,δ)
# pi*P*a**3/(4*EI)
“`
# (勉強中) Mathematicaで# (勉強中) MATLAB 追加のオプションSymbolic Math Toolbox で
# いつもの?
L字はり(ラーメン構造)。エネルギーで「youtube【東京理科大学】第11回 材料力学基礎授業[例4]」をsympyでやってみたい。
[例4]L字はり(ラーメン構造)
# youtubeの板書です。
**途中37:00から (0:00〜1:22:49)**https://youtu.be/X5zCb8LbgsM=2220
# sympyで
・ver0.1
“`python
# ver0.1
# [例4] L字はり(ラーメン構造)
from sympy import *
var(‘P,l,R,a,b,x,EA,EI’,real=True)
U1=1/(2*EA)*integrate( P **2,(x,0,a))+1/(2*EI)*integrate((P*b)**2,(x,0,a)) #;print(‘#’,U1)
U2=1/(2*EI)*integrate((-P*(b-x))**2,(x,0,b)) #;print(‘#’,U2)
U1U2=U1+U2 #;pr
はりに一つ以上の集中荷重。エネルギーで「youtube【東京理科大学】第11回 材料力学基礎授業[例3]」をsympyでやってみたい。
[例3]はりに一つ以上の集中荷重。エネルギーで
# youtubeの板書です。
**途中24:00から (0:00〜1:22:49)**https://youtu.be/X5zCb8LbgsM=1440
# sympyで
・ver0.1
“`python
# ver0.1
# [例3]
from sympy import *
var(‘P,l,R,a,x,EI’,real=True)
M1=-P*(a-x)+R*(l-x) #;print(‘#’,M1)
M2= R*(l-x) #;print(‘#’,M2)
U =1/(2*EI)*integrate(M1**2,(x,0,a))+1/(2*EI)*integrate(M2**2,(x,a,l)) #;print(‘#’,U )
δB=diff(U,R)
[Python] 競プロをきっかけにアルゴリズムを勉強し始める – スタックとキュー [Paiza]
:::note warn
この記事は第2回目です。[こちらの記事](https://qiita.com/nozomiyamada/items/4dcdd9d9aaeed07895ca)に、私がこの記事を書くことになった経緯がありますので、よければそちらのイントロからお読み下さい。
内容は Python 100% です。
:::# スタックとキューとは
今回は、まず基本のデータ構造と言える **スタック stack** と **キュー queue** について解説しようと思います。お恥ずかしながら、私もこうやってアルゴリズムの勉強を真面目に始めるまでは「知っているけど使ったことないな」というレベルでした。私の専門である自然言語処理でも、文章のパーシング(構文解析)などではスタックを使うらしいのですが、自分で実装はしたことがありません。
説明に関しては、私が書くよりもこちらの記事を読んで頂いた方がわかりやすいかと思います(他力本願)。非常に良くまとまっていて勉強になりますので、まず読んで下さい。この中に載っている、「ヒストグラム中の最大面積」に似た問題を解いた時、私はまんまと $O
Python threadingの使い方
Python threadingの使い方の備忘録です。
ビギナー向けの説明としてよく見かけるコード:
“`py
t1 = threading.Thread(target=<関数名>)
t1.start()
“`このthreading.Threadはクラスにも適用できます。
以下はMyTestThreadクラスのthread1とthread2がメッセージを交互に出力するサンプルです。
“`py
import threading
import timeclass MyTestThread(threading.Thread):
def __init__(self, threadMessage) :
super().__init__() # おまじない
self.myMessage = threadMessagedef run(self):
while True:
print(self.myMessage)
time.sleep(1)if _
Python 11の新機能 global_enum編
# Enumの基本的な使い方
Enumの基本的な使い方について復習しておきます。enum(列挙型)を定義するにはEnumをimportする必要があります。
次にクラスにEnumを継承するのが基本的な流れです。“`python
from enum import Enum# enumの定義
class ErrorCodes(Enum):
SUCCESS = 0
ERROR = 1if __name__ == “__main__”:
code = ErrorCodes.SUCCESS
print(f”type: {type(code)}”)
print(f”code: {code}”)if code == ErrorCodes.SUCCESS:
print(“Success”)
else:
print(“Error”)
“`
実行結果“`
type:
code: ErrorCodes.SUCCESS
Success
“``cod
ChatGPTを使ってプログラミングを高速化する
# ChatGPTをうまく使おう
### 1、コードを書いてもらう
>(質問)
Pythonを用いて画像内で人間の顔を検出するコードを書いてください。![スクリーンショット 2024-01-17 10.14.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/f39821c5-ae02-19b9-da4e-604eb9bdc904.png)
“`:chatgptの回答
Python と OpenCV を使用して、画像内の人間の顔を正常に検出しました。
“`![スクリーンショット 2024-01-17 10.19.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/4c836cec-7a7f-89ca-4987-c81741794d68.png)
“`python:ChatGPTの書いたコード
from PIL import Image
import cv2
import
スクレイピングでTwitterの画像を一括保存するpythonコード 2024/1/16
# はじめに
Twitterのいいね欄、メディア、ブックマークなどの画像を一括でダウンロードするPythonコードです。スクレイピングなので使用は自己責任でお願いします。
# 概要
Twitterのいいねやメディア欄のURLを入力すると、そのページの画像が自動的にダウンロードされます。これは他人のいいね欄やメディア欄も含めてダウンロードが可能です。ブックマークは自分のものだけ対象です。
任意のダウンロード数を指定しないと、タイムラインの画像が無限にダウンロードされる可能性があります。このツールを使用するには、ログイン用のTwitterアカウントが必要ですが、入力されたURLの画像をDLしに行くのでどのアカウントでも構いません。(アカウントのみの画像限定ではありません)
実行時に必要なもの:
ログイン用アカウントのユーザー名とパスワード# 実行環境
・言語 Python 3.11.7・ライブラリ
requests 2.31.0
selenium 3.141.0・実行ブラウザ chrome 120.0.6099.217 (Official Build) (6
何も分からない人がPythonでSeleniumを動かしたときのメモ
# 著者のスペック
– 開発経験なし
– テストをしています# 経緯
– 大量のテストデータをテスト環境に追加したい
– 開発メンバーに打診→「すまんが手動じゃないと無理」
– この量を!?手動!?狂っちゃうよ!?
– 調べる
– Seleniumを使えば無料で出来そう!自動化や!頑張るぞ〜☆(イマココ)# 前提
– windows10
– chromeブラウザをseleniumで操作したい# 事前準備
「Python Selenium」でググると出てくるものを全部入れる
– Python
– Selenium
– chrome driver# さあ動かそう
1. PythonのIDLEを立ち上げる
1. サンプルコードを調べる
1. Googleを立ち上げる→閉じるだけなら簡単そう!
1. サンプルコードをコピペしてRUN
1. Python「ModuleNotFoundError: No module named ‘selenium’ 」
1. なぜNotFound…!?seleniumはPCに入ってるはずだが……!?
1. 調べました# Seleniumのイ
2ヶ月間のハッカソンで動画チャプター自動生成アプリを作成した記録
# はじめに
私はオンラインITスクールに所属しており、そのスクール内で開催されるハッカソンに参加して動画チャプター自動生成アプリ「ちゃぷたん」を作成しました。
この記事ではアプリの開発記録を書きたいと思いますhttps://github.com/hackathon-autumn-c/chaptan
※ハッカソン終了後に追加実装を行いチャプター&要約自動生成のできる動画共有アプリ「video-learn」を作成しました。現在公開中です。
https://video-learn.site# ハッカソンの概要
スクール受講生の中から参加希望者を4~6名のチームに分け、各チームでWebアプリケーションの開発を行います。
初級コース(お題は決まっている/サンプルコードあり)と上級コース(お題・使用技術自由)があり、私は初級コースに2回参加経験があっため今回は上級コースに挑戦しました。– 期間は2ヶ月間
– メンバーは6人
– 全員社会人で実務の開発経験はなし(ハッカソンの参加経験は全員あり)
– お題、使用技術は自由
– 要件定義〜デプロイまですべて自分たちで実施# アプリ
withで使える関数を作る方法 | withについて学ぶ [python]
# withとは
最初にwithの具体的な例を挙げる
たとえば、ファイルを開けたら責任をもって`close`しないといけない。withを使わない場合の例
“`python
f = open(“example.txt”, “r”)print(f.read())
# 自分で閉じないといけない
f.close()
“`withを使う場合の例
“`python
# withを使うとブロックを抜けたときに閉じてくれる
with open(“example.txt”, “r”) as f:
print(f.read())
“`では、このようにブロックに入るとき、出るときに特定の処理をさせる方法を解説します。
ちなみにopen関数は組み込み関数で、C言語で書かれているため以下で紹介するのとは厳密には違うと思いますが、例として出すにはわかりやすそうだったので出しました。
# 実際に作ってみる
公式ドキュメントを参考にしています。
https://docs.python.org/ja/3.11/library/contextlib.html?highlight
待ってたんだよこれを!! Django REST Frameworkでログイン時のアカウントロック機能を実現するクールな方法!
## 概要
Django REST Frameworkとdjango-axesを使用して、ログイン試行に失敗した場合のアカウントロック(アカウント凍結)機能を実装する方法を説明します!## 使用技術
“`pyproject.toml
python = “^3.11.2”
Django = “^4.2.7”
djangorestframework = “^3.14.0”
pydantic = “^1.10.7”
gunicorn = “^21.2.0”
django-axes = “^6.1.1”
“`## 説明する前の前提
:::note warn
コードの細部やDjango REST Framework自体の説明はあまりしません
また、インポートもとのコードが不要な場合は明記していません
ご了承ください🙇
:::## django-axesとは
:::note info
Djangoフレームワーク内でログイン試行の監視やアカウントロック、IPアドレスのブラックリスト等の機能を提供してくれる多機能なライブラリです
:::https://django-axes.
[Python] 競プロをきっかけにアルゴリズムを勉強し始める [Paiza]
# はじめに
競プロ(競技プログラミング)ってありますよね。[AtCoder](https://atcoder.jp/) とか、[Paiza](https://paiza.jp/challenges) とか、[LeetCode](https://leetcode.com/) とか。今まで、そういうの全然興味なかったんです。機械学習やらデータサイエンスやら何年もやってきたので、コーディング技術にはそれなりに自信があり、「今さらそんなものやらなくても…」と舐めていたというのもあるかもしれません。
ですが、つい最近知人の勧めで LeetCode をやってみて、これは意外と役に立つなと気づきました。というのは、競プロの問題は様々な範囲に及んでいるので知識の総復習に役立つだけでなく、何より「効率性」が必要となってくるからです。
競プロでそこそこ難しい問題をやったことがある方はわかると思いますが、単に「動作するプログラム」を書くだけではパスしないことも多々あります。めちゃめちゃ時間がかかるプログラムや、めちゃめちゃメモリを食うプログラムは効率が悪いのです。LeetCode では問題を提出
CSVファイルをExcelで文字化けさせないために知っておくこと(エンコードとBOM)
あるデータを処理し、CSVファイルを出力する自作ツールを開発したときの話です。
ExcelでCSVを開いたときの文字化け対策で、SJISを使用してファイルを出力していましたが
最近、BOM付きのUTF-8に変更しました。エンコードとBOMについて調べた自分なりの理解を簡単にまとめてみました。
## encodeとは?
ファイルに書き込まれている文字コードの種類のこと。
自然言語でいう「何語か?」のようなもので、エンコードに基づいて文字データをどのようにバイトデータに変換するかを決定するものです## BOM(Byte Order Mark)とは?
BOMは、ファイルがどのエンコードで書かれているかを表すマーカーのこと。
システム環境によってはエラーの原因になる事もあり、通常BOM無しで保存される事が多いです## Excelにおける選択:SJIS vs BOM付きUTF-8
Excelでcsvファイルを保存する際には、デフォルトでSJISでエンコーディングされます。
SJISは日本語特有のエンコーディングのため、主に日本国内でしか使用されず。
一方、UTF-8は国際標準のUn
gymnasiumでの動画ファイル出力(google colab)
# 概要
:::note warn
警告
初めての投稿なので読みにくい記事かもしれませんがご容赦ください。
:::本記事ではcolab上でgymnasiumを使って動画ファイルを出力する方法を簡単にまとめています。正直gymnasiumの公式ドキュメントを探せば見つかるのですが、不備もあったりするので、一応差別化は出来ているかなと思います。
~~英文読みたくない人もいるだろうし…~~
ある程度勉強している人を読者の対象として考えているので、基本的なことの解説は省略したいと思います(gymとは何かみたいな)。# 環境
・google colab
・Python 3.10.12# 本題
早速コードを見ていきましょう。まずは“`gymnasium“`のインストール
“`
!pip install gymnasium
“`
次に今回“`LunarLander-v2“`を環境として使うため“`gymnasium[box2d]“`をインストールするのですが、それだけではエラーが出るので下記のサイトを参考に`swig`を追加https://stackoverflo
I tried creating an app with Django [Blog app]
## What is Django?
– pythonプログラミング言語で書かれたオープンソースのWebアプリケーションフレームワーク
– Webアプリケーションを開発するための様々な機能を提供## Advantages of Django
– 豊富な機能を提供、Webアプリケーションの開発が容易
– データベースの操作が簡単で、ORMによりAQLの知識がなくてもDatabaseの操作ができる
– セキュリティ対策が施されており、Webアプリケーションのセキュリティが確保## How to create a project
## How to create an app
## How to set the URL
## How to create a VIEW
## How to operate the Database
## Reference site
[概要| python Djangoとは?](https://www.youtube.com/watch?v=DoX61loznSg)
pyenvで「BUILD FAILED (OS X 14.2.1 using python-build 20180424)」でOpenSSLモジュールが見つからない時の対処法
## 環境
OS:macOS 14.2.1
pyenv 2.3.35
shell: zsh## 起こっていた問題
pyenvで python 3.11.4をインストールしようとしたら下記のようなエラーが発生
“`
❯ pyenv install 3.11.4 ─╯
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.11.4.tar.xz…
-> https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tar.xz
Installing Python-3.11.4…
python-build: use tcl-tk from homebre
知名度がいまいち分かってないNextDPというテクニックについて
# はじめに
コード上では変数名として`NDP`であったり`NextDP`と名付けられやすいものです。
正式な名称はよく分かっていないですし、解説されたことがあるのかすら分かっていないテクニックなのですが、どの層でも役に立つもので、使い方やメリットを整理しておこうと思いました。
説明はPythonで行います。ChatGPT-4を使用してC++やRustに置き換えてもらっても動作したので、基本的には別の言語でも使用できるテクニックのはずです。# 使い方について
まずは基本的なナップサック問題とそのコードを記載します。
実行速度の差をみたいため制約はすこし大きめです。## 問題
$N$ 個の品物があります。それぞれ重さが $w_i$, 価値が $v_i$ です。
重さの総和が $W$ を超えないように選んだ時の価値の総和の最大値を求めなさい。### 制約
– $1 \le N \le 10000$
– $1 \le W \le 10000$
– $1 \le w_i \le 10000$
– $1 \le v_i \le 10^9$
– 入力は全て整数## 一般的なコード