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

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

ABC335・C – Loong Tracking

# 問題はこちら
https://atcoder.jp/contests/abc335/tasks/abc335_c

# 最初の回答
“`
import copy

nq = list(map(int, input().split()))
n = nq[0]
q = nq[1]

Q = []
for i in range(q):
Q.append(list(input().split()))

N = []
for i in range(n):
N.append([i+1, 0])

#nは龍の位置リスト
def exe_1(n, C):
tmp = copy.deepcopy(n)
n = n[-1:] + n[:-1]
match C:
case “R”:
n[0][0] = tmp[0][0] + 1
n[0][1] = tmp[0][1]
case “L”:
n[0][0] = tmp[0][0] – 1
n[0][1] = tmp[0][1]
case “U”:
n

元記事を表示

M.S.WindowsにPython3を導入する(7つの罠)2024年版

M.S.WindowsにPython3(Anaconda3)を導入する(7つの罠)
https://qiita.com/kaizen_nagoya/items/7bfd7ecdc4e8edcbd679

を2018年に書いた。kaizen_nagoyaが書いた記事で、一番閲覧数(Views)が多い。

M.S.Windows にAnaconda3(python3)を 2019年版
https://qiita.com/kaizen_nagoya/items/c05c0d690fcfd3402534

今回は、第三番。決定版からも。

# 罠1 Python導入
導入すること自体が罠にハマっている場合。
WindowsにPythonを導入する必要がない場合である。

## 1. Play with dockr
Pythonを導入しなくても、WebでPhthonプログラムを走らせることができる。

http://www.play-with-docker.com/

ID登録すれば使える。
たとえば、2024年1月6日現在、Pythonは3.11.6 が最初から入っている。
導入しなくてもよい

元記事を表示

React + Django + CORSを使ったフロントエンド / バックエンドのデータ連携

## 概要

現在再開している個人会厚プロジェクトの一環で、以前実装した環境を一新して再構築しています。
その中で企業レベルのアプリ開発でも使われる機会が多そうな技術スタックを採用し取り入れているので、備忘も兼ねて投稿します。
JSONをデータ連携の手法として使うことを想定し、バックエンドで定義したデータ構成、生成データをフロントエンドで受け取り表示させる流れとしました。

### 実装機能

– Reactを使ったデータ表示
– DjangoでのModel構築
– CORSを使ったフロントエンド / バックエンドのデータ連携

### 参考文献

– React Routerを使ったルーティング

https://qiita.com/jima-r20/items/c7d636262a9ebf0bedbd

– CORSでのデータ連携

https://qiita.com/shun198/items/9ebf19d8fd2c412396dd

https://morioh.com/a/18027196003c/react-json#google_vignette

– VS Cod

元記事を表示

Kaggle learnで学ぶ機械学習の基礎(初級編)

[Kaggleで始める機械学習入門](https://qiita.com/k-ysd/items/9f8edeb6c22e8ec69e0e)でKaggleのアカウントを作成して、一通りの操作ができました。次はKaggle learnの以下の初級講座を使って機械学習の基礎を学習します。

https://www.kaggle.com/learn/intro-to-machine-learning

この初級講座は7回のレッスンで構成されており、各回は解説パート(tutorial)と実践パート(exercise)に分かれています。実践パートでは、コンペと同様のNotebookでコードを動かす形になります。

実際にやってみた感想です。

<良かった点>
・1回1時間程度でサクッとできる
・1回あたりの内容は比較的かんたんで理解しやすい
・解説パートで学んだコードを実践パートで入力し、答え合わせできるので達成感がある

<悪かった点>
・すべて英語…

英語なのは仕方ないですね。DeepLに頼りながら読み進めました。

内容としては、まず決定木を使ってシンプルなモデルを構築します。次にその結

元記事を表示

matplotlibで線グラフの途中で色を変える

## 環境
+ Visual Studio Code: 1.85.1
+ Docker: 24.0.7
+ Python 3.11.6
+ matplotlib: 3.8.1

## 要約
matplotlibで折れ線グラフの途中で線の色を変更したい時には、`matplotlib.pyplot.plot()`を区間の数だけ呼び出してもよいが、実行速度に問題を感じる時は、

+ `None`を使って途切れたグラフを作成し、色の数だけ重ねる。
+ `matplotlib.collections.LineCollection`を用いる。

といった解決法もある。
~~`LineCollection`を用いるのが`matplotlib`の意図に沿っている気がするが公式文書などの確認はしていない。~~

## 動機
matplotlibで折れ線グラフ(で近似した曲線)を描く時に、グラフの途中で線の色を変更したいと思った(たとえば右肩上がりと右肩下がりの区間で色を変えるなど)。しかし`matplotlib.pyplot.plot()`にはグラフの線毎に色を変える機能はあるが、グラフの途中で色を変え

元記事を表示

書籍『Pythonでスラスラわかる ベイズ推論「超」入門』潜在変数モデル補足

## はじめに
書籍『Pythonでスラスラわかる ベイズ推論「超」入門』著者です。
読者からいただいた質問のうち、実装コード付きで示した方がいいものがあったので、この場で解説をしたいと思います。
なお、当記事は、書籍で説明している概念については、すべてわかっている前提で記載しています。わからない部分はすべて書籍内に説明がありますので、関心を持たれた読者は是非、本編の書籍もお買い求めいただけるとありがたいです。
書籍サポートサイトのリンクは下記になります。
https://bit.ly/3uV4i3R

## いただいた質問と直接の回答
いただいた質問は、5.4節 潜在変数モデルの実習コードに対するものです。
以下のコードはサポートサイト上にもアップしておきました。
https://bit.ly/3vjwY6M

潜在変数モデルでは、特別な工夫をしないと「ラベルスイッチ」と呼ばれる事象が発生します。
その対策として、書籍内の実習コードではサンプリング関数呼び出し時に“chains=1“のパラメータを付け、ラベルスイッチが起きない工夫をしています。

“`
with model1:

元記事を表示

[無料][2024年版] LINE Messaging API v3 + Python(Flask) でボットを作る [その4 – 情報検索理論(後編)]

## レーベンシュタイン距離の追加

[前回](https://qiita.com/nozomiyamada/items/d1bcedcc885c43794ff7)の続き、情報検索理論(後編)になります。やり残しのレーベンシュタイン距離の実装を行います。

検索文字列と曲名の長さの違いによって、レーベンシュタイン距離がうまく機能しないこともあるので、文字列を切り取った substring を用意してその中で最小の距離を求める(最小ハミング距離)というアイデアは既に述べました。逆に検索文字列がの方が長い場合は、そのままレーベンシュタイン距離を使ってしまえばよいです。前回までのアルゴリズムの最後にレーベンシュタイン距離を加えると以下のようになります。

[全曲名を for ループ]
1. もし検索文字列と完全一致した場合、その曲名を返してループ強制終了
2. もし検索文字列と部分一致した場合、部分一致曲名リストに格納しておく
3. 検索文字列が曲名より短い場合、文字列長の窓をシフトしながら、最小のレーベンシュタイン距離を求める。検索文字列の方が長い場合、そのままレーベンシュタイン距離を求め

元記事を表示

Pythonで「辞書に指定したキーの要素が含まれているか確認する」の動作を確認してみた

# 概要

Pythonで「辞書に指定したキーの要素が含まれているか確認する」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/python/dictionary/index7.html

# 実装

以下のファイルを作成しました。
“`sample.py
mydict = {“L”:”Lemon”, “O”:”Orage”, “G”:”Grapes”}
print(“O” in mydict)
print(“P” in mydict)

mydict = {“L”:”Lemon”, “O”:”Orage”, “G”:”Grapes”}
print(“O” not in mydict)
print(“P” not in mydict)
“`

以下のコマンドを実行しました。
“`
$ python3 sample.py
True
False
False
True
“`

# まとめ

何かの役に立てばと。

元記事を表示

Spark RDDについてより深く調べてみた

# 0.初めに

分散処理システムは、利用者はあまり分散処理のアルゴリズムをわかっていないくても、また意識しなくても
うまい具合にデータを処理してくれるので、利用する分には詳しくわかっていないくてもいいかもしれません
が、データの動きというのは分散処理には欠かせない技術なので
これがわかっておくだけでも、コードの記述なども理解しやすいと思います。

今回は、2つの資料を参考にしています。

1つめは、couseraでIBMが公開している講義になります。Sparkを中心として説明しています。
あまりこれにフォーカスした資料が意外とないもので、日本語訳もある程度機能しているので
是非!

https://www.coursera.org/learn/introduction-to-big-data-with-spark-hadoop

2つ目は、NTTデータの土橋さんという方が公開しているSparkの資料になります。
これはとてもわかりやすく、実際の講義ではHands-onでSpark UIで説明していたりしているのでしょうか。参加してみたかった。。

https://www.scsk.j

元記事を表示

repetition_penaltyってなんしよーと?

transformersの`generate`メソッドを使っていて気になったのでメモ。

参考文献1を確認したところ論文を見てねとのことだったので、参考文献2の論文を拝見しました。
すごくわかりやすい論文やんって思いました!

## repetition penaltyを導入する動機
言語生成をする際、はじめに次トークンとしてふさわしいものを予測し、それらを確率分布の形で出力します。つぎにtop-kやtop-pといった確率を利用した操作によって次トークンを決定するわけですが、時として貪欲に最大の尤度のトークンを選択したほうが良い場合が存在します。この論文の例だと首都を当てるクイズが挙げられてますね。こうしたケースに合わせるならば貪欲に最大尤度のトークンを選択するのが良いと思ってしまうのですが、そうしてしまうと同じ文章や言い回しを繰り返し出力することが知られているので、これを回避したいというのが動機です。

## どうやって実現しよーと?
アイディアはシンプルで予測した次トークンの確率分布の確率をいじってやればいいわけですね。形はSoftmax関数ですね。
$$p_i=\frac{\ex

元記事を表示

python×SeleniumでWebブラウザ操作を自動化

# はじめに
今回はpythonでSeleniumを使用してWebブラウザ操作を自動化する方法について、留意点やポイントを纏めました。
日々の業務効率化を試みるきっかけや、参考になれば幸いです。

# 利用シーン
たとえば、
:white_check_mark:ワンクリックで勤怠システムへのログインと出退勤の打刻をする。
:white_check_mark:特定のWebシステムを操作する定常作業を自動化。
:white_check_mark:Webアプリケーションテストでの操作を自動化。
:white_check_mark:動的ページ上でブラウザを操作したデータ収集の自動化。
…主に定常業務の自動化やテスト等のWebスクレイピングに利用される。
他にも、マーケティングに役立つ情報収集を行ったり、検索順位をスクレイピングしてSEO対策を実施する際にも活用できるでしょう。

# 前提事項
:white_check_mark:当記事では動作ブラウザをChromeに設定する。
:point_up:SeleniumではEdgeやFirefoxのWebブラウザ操作も可能。

# この記事で書か

元記事を表示

離乳食のレシピを提案するツール

# 概要
離乳食のレシピを提案してくれるツールを作ったので公開します。タンパク質1種類、野菜をN種類、味付けを1種類をランダムに選択します。

https://github.com/hsmtta/babyrecipe

# 使い方
使いたい野菜の数と、生成するレシピの数を指定して実行するだけです。

“`bash
$ python recipe.py -h
usage: recipe.py [-h] [-v N] [-n N]

options:
-h, –help show this help message and exit
-v N, –vegetable N # of vegetable to use
-n N, –number N # of recipe to generate
“`

# 動作概要
* タンパク質は6種類から1つ選びます。魚を選んだ場合は、魚の種類を10種類から1つ選びます
* 野菜は24種類からN個選びます(自分は2~3種類を使うことが多いです)
* 出汁は鰹か野菜の2種類から選びます(素材の味が出ていれ

元記事を表示

SnowflakeにPDFファイルを読み込む

# はじめに

以前、[ExcelファイルをSnowflakeに取り込む方法](https://qiita.com/fkdfkdfkd/items/71eeded2dfc9894b4680)について記載しました。
今度はそのPDF版です。

同じテーマで[こちら](https://kddi-snowvillage.connpass.com/event/299925/)のイベントで登壇してきたのですが、そのブログ版といった感じです。

PDFといえば、なんらかのレポート、データとかある程度まとまった文書になっていて、分析に使えそうなデータも眠っていそうな感じがしますよね(?)。

Snowflake上でPythonを使えば、PDFからのデータの抜き出し・整形・DBテーブルに格納の一連の流れを楽に実現できます。一度データベースに入ってしまえば用途が広がります。

PDFをデータのサイロかから救う…というと大袈裟かもですが、それを実現するための第一歩的な内容として、ここではPDFからデータを抜き出してSnowflakeに格納する方法をまとめてみます。

## 作ったもの

順を追って書

元記事を表示

ABC335の記録

# はじめに
今年もABCやっていきます。

https://atcoder.jp/contests/abc335

成績:ABC3完(550)

# A
$S$の-2文字目までを出力して末尾に4を足す。
“`python:A
s = input()
print(s[0:-1]+’4′)
“`

# B
3重ループにすれば勝手に辞書順になってくれる。
$N \le 21$なので3重ループでも余裕。
“`python:B
n = int(input())
for i in range(n+1):
for j in range(n+1):
for k in range(n+1):
if i + j + k <= n: print(i, j, k) ``` # C 典型90で見たことある形式で、すべての座標を毎回計算していたらTLEだろうなと直感した。 (ちょっと形式は違うけど……) https://atcoder.jp/contests/typical90/tasks/typical90_ar で、

元記事を表示

破壊力学における2次元の応力場,変位場の可視化

あけましておめでとうございます.九大航空修士2年,ITストラテジストの岩附陽太です.やっと修論の第一稿が終わりましたので,この隙にネタを投下していきたいと思います.

今回は,破壊モード1,モード2における応力場,変位場の可視化を行います.

# 前提条件
・筆者は破壊力学が専門ではありません.間違いがありましたらすいません.修正しますのでご連絡ください.
・以下の資料を参考にします.
 [1]岡部朋永 応用解析からはじめる弾性力学入門 コロナ社
 [2]北海道大学 破壊力学講義資料
 https://www.eng.hokudai.ac.jp/labo/bridge/staff/matsumoto/FractureOfFiberComposite_Chapter3.pdf
 [3]安中特殊硝子製作所 石英ガラス
https://annaka-tg.com/wordpress_5/wp-content/uploads/vitreous.pdf

・使う式に関しては記載し式の導出過程を飛ばします.資料[1]が詳しいです.式も取り扱えますが,大量の数式を書くモチベがありません.需要が

元記事を表示

Leetcode日記 (Day 1)

# 初めに
 今日から解いたLeetCodeの問題を解答含め解説していければと思います.
興味ある人はぜひご覧ください~~.と言っても,プログラミングの問題を解くのは殆ど初めてなので,「なんだこれ?」と思う人も多々いらっしゃると思います.なので,多めに見ていただきたいです~~

# LeetCode (two sum )
問題はこちら
> Given an array of integers nums and an integer target, return indices of the > two numbers such that they add up to target.
> You may assume that each input would have exactly one solution, and you may > > not use the same element twice.
> You can return the answer in any order.

これは要約すると,「整数のリストとターゲットの値を上げるから,ターゲットの値を作る2つの数をリ

元記事を表示

ABC335回答メモ

# 0.はじめに
新年一発目のABC。去年から引き続き緑を維持したいなと思いつつ挑戦。
年末年始にいろいろあり、あまりトレーニングもできませんでしたが
A~Dを解くことができたので、まぁ自分的には及第点でした。

# 1.A – 2023
 しょっぱなのお題として肩慣らし的な問題。
 インプットをリストにすると、いろいろ面倒だったので
 リストに格納して、最後の文字を3から4に上書きし
 リストを結合して出力して終了としました。

 https://atcoder.jp/contests/abc335/submissions/49062788

# 2.B – Tetrahedral Number
 Bもまだ、正月気分な問題。
 回答例をみると、もう答えが出せそうな感じでした。
 制約もゆるいので、単純に3重ループで条件を満たす
 値を表示して終了しました。

 https://atcoder.jp/contests/abc335/submissions/49068230

# 3.C – Loong Tracking
 3問目から、急に難易度が上がりました

元記事を表示

AtCoder初心者振り返りメモ ABC335

# ABC335の回
https://atcoder.jp/contests/abc335

# A-問題
https://atcoder.jp/contests/abc335/tasks/abc335_a

![335A.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547298/af028778-f530-a045-bb83-8a210fdfdab3.png)

最初の発想は、”2023″を”2024″で置換するコーディングでしたが誤りがあり
末尾に ‘4’ を追加する方針に変更しました。

““Python:A.py
# 2024/1/6 本番解答
# 入力
S = input()
T = “”
# 末尾を残して、T へ転記する
for i in range(len(S)-1):
T += S[i]

# 末尾に ‘4’ を追加する
T += ‘4’

print(T)
““

# B-問題
https://atcoder.jp/contests/abc335/tasks/abc

元記事を表示

ABC335をPythonで(A~E)

AtCoder Beginner Contest 335(Sponsored by Mynavi)

https://atcoder.jp/contests/abc335

# A問題
末尾を落として、$4$を付け加える
“`python:A
print(input()[:-1] + “4”)
“`
# B問題
起きうる全通りを試して$N$以下だったら出力する
“`python:B
n = int(input())
for i in range(n + 1):
for j in range(n + 1):
for k in range(n + 1):
if i + j + k <= n: print(i, j, k) ``` # C問題 1の点が$(n, 0)$から$(1,0)$まで移動した後クエリに従って移動したとみなすと、 2番目の点は1手前の1の座標で、3番目の点は2手前の1の座標で...$a$番目の点は$a-1$手前の1の座標だから スタックにその移動を追加していき、答えるときは後ろから$p

元記事を表示

DiffusersライブラリでStable Diffusionの画像生成

# 1. はじめに

Windows 11で確認。
まだ手探り状態。

# 2. CUDAインストール

NVIDIAのDeveloperのIDを無料作成して、CUDA Toolkit 12.3 Update 2 をインストールしたけれども、Stable Diffusion web UI が 12.1をインストールしている?と思うので、そっちが使われているっぽい。

# 3. ライブラリインストール

pip install diffusers transformers accelerate omegaconf pytorch_lightning xformers

使用バージョン:
・Python 3.11.7
・PyTorch 2.1.2+cu121

バージョン確認方法:
python –version
pip list | findstr torch

# 4. Hugging Faceから初回だけモデルをダウンロードして画像生成するコード

DDIMScheduler の steps_offset はデフォルトの0のままだとoutdated(時代遅れ)なので将来のためにとか

元記事を表示

OTHERカテゴリの最新記事