- 1. ABC335 勉強メモ
- 2. 第6章 はりのたわみと不静定はり 基本例題6.30 P180「材料力学演習(20221021)」をsympyでやってみたい。
- 3. 私は東海道線のどこでテンションが上がるのだろうか?-電車乗車時の心拍数変化をビジュアライズする-
- 4. Pythonで.movからgifを作成する簡単な方法!
- 5. Blenderで鉄板を作成
- 6. PC画面上の特定の領域の文字を認識して出力
- 7. boto3でAWS Batchジョブ定義の最新リビジョンを取得するときにハマった
- 8. サクっとchaliceでlambdaをデプロイするまで
- 9. Tkinter で作成する超適当な電卓
- 10. 【PyTorch】torch.solveをtorch.linalg.solveに置き換える
- 11. ランダムフォレストを使ってシンプルなワインのグレードを判定器を作成
- 12. Core ML索引
- 13. urllib.requestのレスポンス:正常時とエラー時の違い(初心者向け)
- 14. Pythonで「集合と他の集合との関係を調べる(等しいかどうか、部分集合かどうかなど)」の動作を確認してみた
- 15. python.おかしな時間
- 16. Tkinterでグラフを表示したい!
- 17. Python3 標準モジュールだけで feed 取得
- 18. Python配布パッケージをGitHubリポジトリ経由でインストールする方法(PublicとPrivate両パターン)
- 19. NetworkX入門(4)
- 20. ChatGPTとPythonで学ぶ torchvision:物体検出編
ABC335 勉強メモ
先日開催された、AtCoder Beginner Contest 335の勉強メモです。
問題への言及がありますので、今後解く予定の方はご注意ください。
使用言語はPython・提出はPyPy3です。# 公式解説
https://atcoder.jp/contests/abc335/editorial
# A~C
FAはそれぞれhiroyuk1さん、ayu777proさん、tatyamさんでした。
おめでとうございます。# D Loong and Takahashi
[問題文はこちら](https://atcoder.jp/contests/abc335/tasks/abc335_d)
__解法__
うずまき状に書き込めばいいです。
これはDFS・BFSで突き当たるたびに右折すれば達成できます。うずまき以外の方法もありますが、実装が大変なのでやらなくてよいです。
別解 ジグザグ構築
龍のパーツを降順に並べます。
N = 3,7,11, ・・・ のときはTの真上から始め、それ以外はTの真左から始めます。
左
第6章 はりのたわみと不静定はり 基本例題6.30 P180「材料力学演習(20221021)」をsympyでやってみたい。
# オリジナル
[基本例題6.30 p180](http://zairikiweb.starfree.jp/zai_enshuh/zai_enshuh_ver.3.3.pdf#page=185)<[「材料力学演習(20221021)一括(ver.3.3)」を勉強したい。#sympy](https://qiita.com/mrrclb48z/items/c3274daf5f7a99cfe027#%E4%BD%9C%E6%A5%AD%E4%B8%AD%E7%A7%81%E3%81%AE%E8%A7%A3%E7%AD%94sympy)
???タブレット等で、pdfを開く事ができないかも。???
# sympyで
“`python
# ver0.1
# 基本例題6.30 P180
from sympy import *var(‘l,EIz,a,b,vA,x,z’,real=True)
θA = Symbol(‘θA’)
RA = Symbol(‘RA’)
RB = Symbol(‘RB’)
MA = Symbol(‘MA’)
MB = Symbol(‘MB’)
MC =
私は東海道線のどこでテンションが上がるのだろうか?-電車乗車時の心拍数変化をビジュアライズする-
## 作ったもの
これ↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074602/066e83f0-4b00-9571-9772-cee99d931f24.png)**東海道線に乗っている時に、自分はどの駅でテンションがあがるのだろう?**
そんな疑問に答えるため[^1]、東海道線の名古屋-藤沢間を乗車中に心拍数を測り、それをビジュアライズしてみました。ただそれだけです。こうみると、ところどころ心拍数が上がっている駅がありますね。自分の感情と一致しているところもあれば、なんでここで?と思うところもあります。心拍数変化の考察も後述しています(*もしかして:*[誰も興味ない](https://ja.wikipedia.org/wiki/%E3%82%82%E3%81%97%E3%81%8B%E3%81%97%E3%81%A6))。
身体情報のビジュアライズって意外と面白いかも。
[^1]:答える必要があったのかはよくわかっていない。
## きっかけ・背景
これまで名古屋⇄
Pythonで.movからgifを作成する簡単な方法!
### 0.完成例
![gamen_test1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3660939/7fff7f19-8b58-c039-c1b0-b08860594d39.gif)
#### ※pythonのインストールが必須です### 0.5.Pythonで使う外部ライブラリの「ffmpeg」のインストール!
##### -1.「homebrew」のインストール
外部ライブラリをインストールするためのツールです。
“`ターミナル
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
“`
##### -2.「ffmpeg」のインストール
“`ターミナル
brew install ffmpeg
“`### 1.デスクトップ等に[convertToGif.py]を作成し下記を記述する!
convertToGif.py
“`pyt
Blenderで鉄板を作成
## はじめに
Blender 4.0で、**ジオメトリーノード**を使って**鉄板**(チェッカープレート)を作成してみました。
また、すべての操作をPythonで記述することで、簡単に再現できるようにしています。作成した鉄板とジオメトリーノードは下記になります。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13955/f69cf24d-120e-4283-db90-cce1c1badc66.png)
下記の動画を参考に作成しました[^1]。
[^1]: いつも面白い動画ありがとうございます。
動画では、模様の数が固定でしたが、本記事ではパ
PC画面上の特定の領域の文字を認識して出力
PC画面上の特定の領域の文字や数字を任意のタイミングで連続して記録するため用です。
実行はvscode上のjupyterです。### ● 画面上の領域座標確認コード
pyautogui使用して座標取得します。
pyautoguiはpipで導入できます。
マウスカーソルを確認したい位置にもっていってエンターキーを押したときの座標が表示されます。
目的の位置の左上と右下の二か所の座標確認すれば領域は指定できます。* コード
~~~python
import pyautogui
import keyboard
import timedef get_mouse_position():
# マウスカーソル位置の座標を取得する関数
x, y = pyautogui.position()
return x, ydef main():
print(“enterキーで座標取得、escキーで終了”)
time.sleep(0.1) # プログラム実行する時のenterキー押したときは拾わないようにするためenter_pressed
boto3でAWS Batchジョブ定義の最新リビジョンを取得するときにハマった
# はじめに
Lambda経由でBatchを実行しようとしたら古いリビジョンのジョブ定義が呼ばれてしまった。
困ったのは**同条件でも最新リビジョンが取れてしまうことがあった**という点。
同じコードを実行しているのに挙動が変わるので、原因がコードにあるのか、それとも他にあるのか、という段階から当たりをつけていくことになり、迷走しました。# 目次
1. [原因](#原因)
1. [コード](#コード)
1. [解決方法](#解決方法)
1. [最大100件の制限を忘れない](#最大100件の制限を忘れない)原因はコードにありました。
“`python
client.describe_job_definitions()
“`
このdescribe_job_definitions()は
アカウントの同一リージョンに存在するすべてのジョブ定義から最大 100 件のジョブ定義のみを取得するメソッドでした。
一方アカウントに存在するジョブは200件を超えていました。
同じコードでも最新リビジョンが取れてしまうことがあったのは最大100
サクっとchaliceでlambdaをデプロイするまで
# はじめに
サブシステムの開発などでスピード感をもって **lambda** をリリースしたい時がよくあります。
割と「あれ、どうやって環境構築したっけ?」ってなることが多いので、まとめることにしました。**sam**でもいいですし、何を使ってデプロイするかはその組織や案件によって様々考えられると思いますが、私の場合は **chalice** でデプロイすることが多いので、今回は **chalice** でデプロイするまでの流れを記述します。
# 技術
– python 3.12.1
– chalice 1.30.0# 前提
AWSアカウントを所有していること# 環境構築
1\. direnvインストール
goコンパイラが入っている場合
“`bash
~/ $ git clone https://github.com/direnv/direnv
~/ $ cd direnv
direnv $ sudo make install
“`macの場合
“`zsh
~/ $ brew install direnv
~/ $ brew install openssl r
Tkinter で作成する超適当な電卓
# 初めに
プログラミング言語に関わらず、物事は、一先ずなんか作ったら習得しやすい!
という気がします。
というわけで、Python、TkinterでのGUIアプリケーション、「超適当な電卓」でございます。
なにか、参考になればです。
解説はしません。自分もよく理解してないんで!
私の友に言わせたら、”feeling to code is important!(?)”だそうです。# 見て感じて書いて♪
それでは、コードを記載していきます♪
“`rb
import tkinter as tk # Tkinterをインポートroot = tk.Tk() # アプリケーションウィンドウを作成
# メインクラスを作成
class MyFrame(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
master.title(“超適当な電卓”)# 変数いろいろを作成
self.current = 0
【PyTorch】torch.solveをtorch.linalg.solveに置き換える
数年前に作ったリポジトリの `torch==1.7.0` を `torch==1.13.0` に置き換えていて気付いた `torch.solve` の仕様変更に関するメモ。
Pytorchでは、線型方程式 $\mathbf{A} \mathbf{X} = \mathbf{B}$ を解く(行列$\mathbf{A}$ と 行列orベクトル$\mathbf{B}$ から解 $\mathbf{X}$ を求める)ソルバーが提供されている。
`torch<=1.7` では `torch.solve` が利用可能で、`torch>=1.8` からは `torch.linalg.solve` が新しく利用できる。
ただし、
:::note warn
**`torch.solve` と `torch.linalg.solve` では引数と返り値が異なる**
:::ことに注意する。
“`py: torch==1.7.0
X, LU = torch.solve(B, A)
“`https://pytorch.org/docs/1.7.0/generated/torch.solve.h
ランダムフォレストを使ってシンプルなワインのグレードを判定器を作成
[1.はじめに](#1.-はじめに)
[2.データセットの読み込み](#-2.データセットの読み込み)
[3.ランダムフォレストを使って判定器を作成](#3.-ランダムフォレストを使って判定器を作成)
[4.精度向上を目指す](#4.-精度向上を目指す)
[5.おわりに](#5.-おわりに)# 1.はじめに
今回は機械学習でよく使われるアルゴリズムでアンサンブル学習の一つ「RandomForest」をつかってワインのグレード判定器を作成してみます。
データセットは機械学習用に提供されているワインデータを[UC lvine](https://archive.ics.uci.edu/dataset/186/wine+quality)からダウンロードして作成を進めていきます。![スクリーンショット 2024-01-13 9.01.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124100/ae31c4eb-f18e-8c51-fe73-f2e759055d97.png)
> 画像引
Core ML索引
### Core MLに関する記事のリンク集です
60記事ぐらい。MLBoy まじまだいすけが書いた記事です。
新しい記事が上にきます。
(Core MLはiOS/macOSで使えるAIフレームワークです)**目次**
[**CoreMLについて**](#coremlについて)
[**モデル変換例/使用例**](#モデル変換例使用例)
[**テクニック**](#テクニック)
# CoreMLについて
https://qiita.com/john-rocky/items/f15ac3885e42b52c579b
https://qiita.com/john-rocky/items/caa55453f40f5f444edf
https://qiita.
urllib.requestのレスポンス:正常時とエラー時の違い(初心者向け)
本記事は比較的初心者向けにPythonの標準モジュールであるurllib.requestの使い方について簡単にまとめたものです。
典型的なパターンとして、Pythonで標準モジュールのみを利用し外部APIへのアクセスを実現するケースを想定しています。### 環境
“`
$ python –version
Python 3.11.3
“`## リクエスト
あるURLに対してGETアクセスするとします。
モジュール名は `as` で `request` に短縮しています。“`python
import urllib.request as requestURL = “https://xxxx”
try:
req = request.Request(
URL,
# TODO: 必要に応じてヘッダー情報を追加
headers={},
method=”GET”,
)
with request.urlopen(req) as res:
print(“レスポンスコード:
Pythonで「集合と他の集合との関係を調べる(等しいかどうか、部分集合かどうかなど)」の動作を確認してみた
# 概要
Pythonで「集合と他の集合との関係を調べる(等しいかどうか、部分集合かどうかなど)」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/python/set/index5.html
# 実装
以下のファイルを作成しました。
“`
set1 = {“A”, “B”, “C”}
set2 = {“B”, “C”, “A”}
print(set1 == set2)set1 = {“A”, “B”, “C”}
set2 = frozenset([“B”, “A”, “C”])
print(set1 == set2)set1 = {“A”, “B”}
set2 = {“B”, “D”, “C”, “A”}
set3 = {“B”, “A”}
print(set1 <= set2) print(set2 <= set1) print(set1 <= set3) set1 = {"A", "B"} set2 = {"B", "D", "C", "A"} set3 = {"A", "B"} print(set1
python.おかしな時間
“`python
import math
import datetime
import msvcrt
timer0_timup_bol = bool(0)timer0_interval_in=2000
timer0_interval = 1000
timer0_interval_hafe=1000
if timer0_interval_in>1000:
timer0_interval = timer0_interval_intimer0_interval_hafe = int(math.floor(timer0_interval / 2))
bol_stato_tim = bool(0)
bol_hafe_time0 = bool(0)
count=0
my_over_bol = bool(0)
bol_set_time0 =bool(0)
my_count_tim =0
my_count_tim_sub = 0
while True:now = datetime.datetime.now()
formatted_now = now.strftim
Tkinterでグラフを表示したい!
# はじめに
pyVISAの記事で、「LabVI*Wの代わりになる!」というようなことを書いていました。https://qiita.com/YujiMatsu/items/8e0437b33555647b0fc4
ただ、LabV*EWのいいところって、GUI上にグラフを用意して、測定値データをリアルタイムで確認できたりするところにあるんですよね。。。
そこで、Pythonで利用できる`Tkinter`を使って、測定値のデータをGUI上にリアルタイムで表示するプログラムの書き方を考えてみました。
こんな風に出力されるGUIを書いてみます。
# 環境
– python3.9.7
– MacOS 14.2.1
※ Windowsでも動くとは思います。# 計測値データを作成
計測器が周りに無かったので(泣)、データを
Python3 標準モジュールだけで feed 取得
## 目標
Qiita の Feed から、直近の投稿記事のタイトル、URL、日付を取得する。それを、Python 標準モジュールだけで (つまり pip を使うことなく) 実現する。
URL 例: `https://qiita.com/aKuad/feed`
## 要素技術
### Feed 取得
HTTP GET リクエストして、body を受け取りたいです。そこで `urllib` が使えます。
“`py
from urllib.request import urlopenfeed = urlopen(“https://qiita.com/aKuad/feed”)
feed_text = feed.read().decode(“utf-8”)print(feed_text)
“`:::note warn
ちなみに[公式リファレンスでは](https://docs.python.org/ja/3/library/urllib.request.html#module-urllib.request)、より高水準なインターフェースとして、pip から入れられる
Python配布パッケージをGitHubリポジトリ経由でインストールする方法(PublicとPrivate両パターン)
# 概要
複数ある「作成した配布パッケージを頒布する方法」の簡単な把握と、その中でGitHubリポジトリに配置してそこからpipインストールする方法を取り上げて、解説する。
Publicリポジトリで公開するケースと、Privateリポジトリで公開するケースの2パターンを解説する。
# 目的
PyPIに公開するほどではないが、インターネットを通じある程度広くへ配布パッケージを公開したい場合向けに、GitHubリポジトリを用いて配布とインストールができるようになることを目的とする。
# 想定読者
* Pythonコードの開発において、GitHubリポジトリを利用している方
* pipによる配布パッケージの配布に、これから取り組みたい方
* PyPIリポジトリ利用よりも手軽に、もしくは範囲を限定して配布したい方# 動作環境(検証環境)
* Windows 10
* Python 3.11.5
* GitHub Desktop 3.3.6 (including git 2.17.1.windows.2)
* OpenSSH_for_Win
NetworkX入門(4)
# NetworkX グラフ型
DiGraphのついで、他のグラフ型も見ておく:– Graph
– DiGraph
– MultiGraph
– MultiDiGraph[NetworkX公式](https://networkx.org/documentation/stable/reference/classes/index.html)に親切な説明があるのだけれど、図がない。図があった方がわかりやすいと思う。
## Graph (無向グラフ)
例えば①→②というエッジがあったとして、さらに②→①というエッジを追加すると、②→①は①→②に読み替えられる。
AliceとBobが友人だったとしたら、Alice→BobとBob→Aliceの2個のエッジは不要で、Alice-Bobという1つの無向エッジで十分ということ。![file04_graph.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78475/fe8808f3-ad7a-5324-327e-f1a9edb7c5e6.png)
## D
ChatGPTとPythonで学ぶ torchvision:物体検出編
おはこんばんちわ。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ torchvision:物体検出編」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。
—
### **assistant**:
おはようございます、こんにちは、お晩です。いつでもどこでも対応できるChatGPTです。さて、本日はPyTorchの関連ライブラリであるtorchvisionを使って、物体検出に触れていきたいと思います。
物体検出(Object Detection)は、画像内の物体の位置(Bounding Box)とそのクラスを同時に特定するタスクを指し、コンピュータビジョンの研究分野の一つです。
そこで、torchvisionには事前訓練済みの物体検出モデルがいくつか提供されています。これらのモデルを使うことで、簡単に自分のプロジェクトに物体検出機能を追加することが可能です。それでは具体的にどのようにコードを書くのか見ていきましょう。
まず、最初に必要なパッケージをインポートします:
“`python
impor