Python関連のことを調べてみた2022年05月26日

Python関連のことを調べてみた2022年05月26日

discord.py(2.0.0) 備忘録

discord.pyであれこれしたい時のためのものと自分が探すのが時間かかったものとか。
今後も何かあったら更新します。
# 2.0.0での新機能
## スラッシュコマンドを作る
“`py
import discord
from discord import app_commands
from discord.ext import tasks
guild=discord.Object(#サーバーid)
client=discord.Client(intents=discord.Intents.default())#intentsは確か必須になりました。
tree=app_commands.CommandTree(client)
@tasks.loop(seconds=10)
async def loop():
await tree.sync(guild=guild)
@client.event
async def on_ready():
await tree.sync(guild=guild)
loop.start()
@tree.command(guild=guild)

元記事を表示

Linuxにてファイルの中にある日付データ置換(python)

# 概要
今回はテキストファイルの中に指定されている日付を一括で置換するコードを紹介いたします。

# ファイルのディレクトリ情報
テキストファイルが格納されているディレクトリは以下の通りです。
※ファイル名の形式が「ファイル名年月日.json」に指定されています。
~~~
/
|
—–month=01
|
—-DAY=01
|
—-XX20250101.json
—-DAY=02
—-.
—-.
—-DAY=31
—–month=02
—–month=03
—–.
—–.
—–.
—–month=12
~~~

# ファイルの内容
次のファイルのように登録日時項目に指定されているデータから日付のみ変更になります。

~~~
#################
cur20200101.json
#################
{“name”:”田中”,”age”:”46″,”gender”:”1″,”reg_date”:

元記事を表示

RubyでPythonのようにfor i in range(n)する

# 普通のコード
rubyの普通のrangeオブジェクトだとこうです
“`ruby
(0…n).each do |i|
puts i
end
“`
for文で書き直すと以下。
“`ruby
for i in 0…n
puts i
end
“`
# range関数
しかし、私はPythonのようにrangeを書きたいと思いました。
そこで、以下の関数を定義します。
“`ruby
def range(l, r=nil, s=nil)
return 0…l unless r
return l…r unless s
(l…r).step(s)
end
“`
`range(l)`のとき、`0…l`を返す。
`range(l, r)`のとき、`l…r`を返す。
`range(l, r, s)`のとき、`(l…r).step(s)`を返す。

使い方は以下です。※コロンは不必要、endは必要です。
“`ruby
for i in range(10, 20, 2)
puts i
end
#=> 10
#=> 12
#=> 14
#=

元記事を表示

【初心者】Pythonでのフーリエ変換(FFT)の方法と注意点

# はじめに
Pythonには高速フーリエ変換が簡単にできる「FFT」というパッケージが存在します。
とても簡便な反面、初めて扱う際にはいくつか**分かりにくい点**や**注意が必要な点**がありました。

ということで、私がつまづいた箇所などを踏まえて、FFTの使い方を**できるだけ分かりやすく**本記事にまとめておこうと思います。(クドいほど強調した箇所もあるので、必要がなければ読み飛ばしてもらって構いません。)

# 用語
## FFTとは
FFTとは、**高速フーリエ変換**のことです。
しかし、Pythonの FFT を扱うにあたって、**高速フーリエ変換**の中身**を学ぶ必要はありません**。

実装レベルでは、「離散時間フーリエ変換」「離散フーリエ変換」までの知識があれば素晴らしいですが、そこまで必要ではないと思います。**「フーリエ級数展開」「フーリエ変換」はもちろん押さえておいてください**。
ちなみに高速フーリエ変換として知っておくべきことは、次のことです。

:::note info
**FFT**(*

元記事を表示

アルゴリズムのモヤモヤをPythonで解消(1): バブルソート

## はじめに

アルゴリズムと言えば、どうしても堅苦しいイメージが。
`Pythonでアルゴリズムを楽しむ`、が本連載の趣旨です。

`正解を見つける`、がゴールでなく、

– 3つ以上の解き方を見つける
– そこからベスト解を選ぶことで

`考える力を身につける`、をゴールとしたいです。

## 改めて、アルゴリズムとは

### アルゴリズムの定義

`JIS X 0001:1994`による定義

– 問題を解くためのもので
– 明確に定義され
– 順序付けられた有限個の規則からなる集合

### アルゴリズム良し悪しの評価基準

– 機能性
– 目的に対する適合性、正確さ
– 使用性
– 理解しやすさ、目的/意図のわかりやすさ
– 効率性
– 実行性能、時間効率/資源効率
– 保守性
– 仕様変更と追加など保守のしやすさ
– 移植性
– 別環境への移植のしやすさ

### アルゴリズムの分類

– ソート
– 文字列
– 探索
– マージ
– 数値
– グラフ
– 計算幾何
– 組合せ
– 機械学習
– 暗号化
– データ圧縮
– 構文解

元記事を表示

Q-learningで迷路を解く!(強化学習)

# 1. 初めに
迷路を強化学習(Q-learning)で解きます.
コードはpythonで書きます.

# 2. 迷路を定義
0 : スタート
16 : ゴール
ー : 壁
他のマスは適当に番号を付けた(後で使う使うため)
|-|-|-|-|-|-|-|
|-|:-:|:-:|:-:|:-:|:-:|-|
|-|0
スタート|-|6|11|12|-|
|-|1|-|7|-|13|-|
|-|2|5|8|-|14|-|
|-|3|-|9|-|15|-|
|-|4|-|10|-|16
ゴール|-|
|-|-|-|-|-|-|-|

# 3. 行動価値関数(Q値)の初期値を定義
行動価値関数のテーブルを作る.

“`
#up right down left
meiro_env = pd.read_csv(“meiro_env.csv”)
meiro_env = meiro_env.replace(0, np.nan)
meiro_env
“`
![_C__Users_s1261_Documents_qlearning.html.png](https://qiita-ima

元記事を表示

CORSハンズオン

# CORSハンズオン

CORSを理解するためのハンズオンを書きました。

![無題の図形描画 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480312/e224b16e-dce5-40d5-7e73-de8a70763f64.png)

https://github.com/zeek0x/cors-handson

サーバ側のコードもいじりながら学べるようになっています。
CORSについて概要は知っているけれど、きちんと理解をしていない人向けになっています。
(調べた限りでは)インターネット上に同様の資料(サーバ側もいじりながらCORSを学習する資料)がなかったのが書いた理由です。
数十分で終わると思うので気軽にやってみてください。

元記事を表示

【機械学習】ADFIのランニングコストを1/4に大幅削減する裏ワザ【外観検査AI】

[異常検知AI作成プラットフォーム「ADFI」](https://adfi.jp/ja/)で構築した外観検査AIのランニングコストを、劇的に(1検査あたりの費用を約1.3円まで)下げることができる裏ワザを紹介します!

この方法は、[PAO1070 様からいただいたコメント](https://qiita.com/umapyoi/items/ddd45a47aa79ccbde28b#comment-c9655f5ef1eeb99d59c1)から着想を得た方法になります。

ADFIの詳細については、[こちらの過去記事](https://qiita.com/umapyoi/items/ddd45a47aa79ccbde28b)をご参照ください。

https://qiita.com/umapyoi/items/ddd45a47aa79ccbde28b

![画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/79ea8883-17a6-c322-5301-807dfe862851.png)

元記事を表示

AtCoder ABC252 D – Distinct Trioを三種類の方法で解く: (組み合わせ/累積和の利用/DP)

この問題を3つのアプローチで解き、また、類似する問題の考察を考えます。

– 解法1: 組み合わせだけで考える(包除原理)
– 解法2: 小さい方から見て作れる組み合わせ数を数える(累積和)
– 解法3: DP

定義: 以下、$cnt_x$を配列$a$内に$x$の個数とします。

# 解法1: 組み合わせだけで考える(包除原理)
まず、異なるi, j, kを選ぶ組み合わせ全体を考えます。この組み合わせは、
– パターン1:同じ値が含まれないもの
– パターン2:同じ値が2個ちょうどであるもの
– パターン3:同じ値が3個であるもの
全てが包含されたものとなります。(同じ値が1つであるもの、というのは存在しません)
今回は選択する数が3つであるため、これらは排他的です。(同時に複数のパターンを含むものはありません)

$ b > a$の時、$aCb = 0$です。

– パターン2:各$x$に対して、$cnt_{x} C2 \times (n – cnt_{x}) $です。ある数$x$に注目した時、$x$から2つ選ぶ組み合わせは$cnt_{x}C2 $で、その中で$x$以外の数を選

元記事を表示

scikits.audiolabのインストール

ハマったので自分用にメモ.

## scikits.audiolab

MATLAB ライクな記法で wav の読み書きが可能な Python モジュール.
[scikits.audiolab · PyPI](https://pypi.org/project/scikits.audiolab)

## 環境

– OS: macOS Mojave 10.14.6
– Python: 2.7.17

以下は先にインストールしておく.

– Homebrew
– pip

## 手順

1. libsndfile と PySoundFile のインストール

scikits.audiolab は libsndfile のラッパーになっているので, libsndfile がないとインストールできません.

“`Terminal
$ brew install libsndfile
$ pip install PySoundFile
“`

1. scikits.audiolab のインストール

“`
$ pip install scikits.audiolab
“`

以上です

元記事を表示

GCPで、Cloud StorageにCSVファイルがアップロードされたらCloud SQLにインポートするCloud Functionsを作成したときに苦戦した箇所のメモ

# 概要
Google Cloud PlatformでCloud StorageにCSVファイルがアップロードされたらCloud SQL上のテーブルにインポートされるようにしたいと思い、Cloud Functionsで関数を作成してみました。
その際に個人的に苦戦した箇所のメモです。

なお、今回 Cloud SQL は MySQL8.0, Cloud Functions は Python3.7を使用しました。

# ソース
~~~python:main.py
def importDs(self, request):
from pprint import pprint
import googleapiclient.discovery
from oauth2client.client import GoogleCredentials

credentials = GoogleCredentials.get_application_default()
service = googleapiclient.discovery.build(‘sqladmi

元記事を表示

PythonでMinecraftサーバーの独自コマンドを作る

## PythonでMinecraftのサーバーを……?
Minecraftのサーバーに自分で独自機能を実装したい!
そんな時は皆さんJavaでプラグインを書いたりするでしょう。
しかしJavaができない人はどうすれば……?
Javaを勉強して書けるようになれ!というのは至極まっとうでぐうの音も出ない正論です。
ですが手段はまだ残されています。Pythonを使うのです!

## MCRconというライブラリ
PythonにはMCRconというライブラリがあります。(https://pypi.org/project/mcrcon/)
その名の通りMinecraftサーバーに実装されているRconという機能を手軽に利用できるようにするライブラリです。

## MCRconを使う
MCRconを使えばサーバーの外からマインクラフトのサーバーにコマンドを簡単に送り込むことができます。
“`
with MCRcon(‘サーバーのアドレス’,’Rconのパスワード’,ポート) as mcr:
mcr.command(‘tellraw @a “hello world”‘)

元記事を表示

Pythonで歌詞を集めて軽く分析してみた話#4

前回
https://qiita.com/kuroge/items/2b805426a93b8a99737c

今回は…

全曲集めるのもいいけど…アーティストごとに曲を収集したいなぁ
わざわざ配列で指定するのもめんどくさいし…

…そや!アーティストごと集められるように改造しよう!

コード(コードが汚いのは実験中だからです。すみません…)
“`python:改造コード
import requests
from bs4 import BeautifulSoup
import os

dic = “other”
url = [“134”]
for i in url:
uta_url = “”
memory = “”
load_url = f”https://www.uta-net.com/artist/{i}/”
html = requests.get(load_url)
soup = BeautifulSoup(html.content ,”html.parser”)
uta_count = int(str(soup.selec

元記事を表示

Python基礎文法まとめ

## はじめに
本記事は学内の勉強会用に作成した資料をそのまま貼り付けたものとなります。
口頭での説明を前提として作成しているため、
一部内容が不十分であったり、正確ではない表現が含まれているものがあります。

また、モジュールや例外処理など今後追加予定のものも多くあり、
現時点で内容を網羅しているわけではないことをご了承ください。

## 目次 ##
1. 行構造
1. 式
1. 文
1. 節
1. コメント
2. 入出力
1. print関数
1. エスケープシーケンス
1. input関数
3. 算術演算
1. リテラル
1. 算術演算子
1. 文字列演算
4. 変数
1. 変数
1. 命名規則
1. 予約語
1. 代入演算子
1. 変数の演算
1. 複合演算子
5. オブジェクト
1. オブジェクト
1. ID
1. 型
6. 数値型
1. int
1. float
1. complex
7. シーケンス

元記事を表示

M1MacのGPUで PyTorch動くぞ!

みなさんこんにちは。げそんです。
なにやらPyTorchがM1macのGPUに対応したらしいので使ってみました。

https://pytorch.org/blog/introducing-accelerated-pytorch-training-on-mac/

### 環境
MacBook Pro 16inch M1Max
macOS 12.3.1
python==3.9
torch==1.13.0.dev20220524

### インストール方法
pipでpytorch-nightlyを入れれば普通に使えるようです。
“`sh
pip3 install –pre torch torchvision torchaudio –extra-index-url https://download.pytorch.org/whl/nightly/cpu
“`

### GPUの使い方
どうやらdevice名は`mps` (Metal Performance Shader)になるようです
“`py
import torch
mat = torch.randn(5,5,devi

元記事を表示

【Django】カラム追加とか色々やったあとにテーブル(モデル)を作り直してマイグレーションファイルをきれいにする手順

初期開発してて、とりあえず思いつきでモデル作成して、その後に「このカラムも必要」、「あれも必要」ってしたとき、マイグレーションファイルが増えちゃってきれいにしたいときの処方箋です。

“`
$ python manage.py showmigrations app_name
app_name
[X] 0001_initial
“`

[X] がついているのはマイグレーション実行済みってことですね。

これで現在のマイグレーション状況を確認できます。これは別に叩かなくてもいいです。
app_nameを省略するとすべてのアプリケーションが対象になります。

## 今までのマイグレーションをなかったことにする。
“`
python manage.py migrate zero
“`

zeroにします。

これを叩くと、app_nameに関連するマイグレーションがなかったことになります。
具体何が起こるかというと、
– app_nameに関連するテーブルがデータベースから消えます(DROP)
– django_migrationsっていうマイグレーションを

元記事を表示

Python RQ を利用している場合のワーカー更新手順

# はじめに

Python でキューを利用したバックグラウンド処理を実現可能なライブラリの1つとして rq がある。

https://python-rq.org/

メッセージキューとして Redis を利用したライブラリであり、任意の数のワーカープロセスを立ち上げることでバックグラウンド処理が実行できるようになる。 Rabbit MQ や Kafka などのメッセージキューイング用の特別なミドルウェアを用いなくても、小規模なバックグラウンド処理用のシステムを構築できる。

これを本番で使ってみて、安全な更新を行うにはどうすればよいのかを調査した結果、一癖あったのでその調査結果と手順を書き記す。

# 問題点

アプリケーション(ワーカー)を更新する場合、全てのワーカーが動作していない状態で更新しないと、ジョブが処理途中のままになってしまう。 そのため、更新時には先だってフラグを立て、各ワーカーがこれ以上新しいジョブを実行しないようにしておき、全てのタスクが完了した状態で更新を行いたい。

この問題を解消するために suspend モードがある。 rq で提供されているcliで、`

元記事を表示

Kaggle初心者に読んでほしい 超オススメ書籍 & 学習方法

## 概要
以下のような人を __対象読者__ としてKaggle初心者がコンペに参加するまでの学習方法とオススメの書籍を紹介する。
* 「Deep Learningを勉強してみたい」「Kaggleに参加に参加してみたい」けど何から手を付ければよいかわからない
* Kaggleを始めてみたけど、機械学習の全体像や次に何を勉強すればいいかが分からない

## はじめに
2019年くらいにDeep Learningについてちょっと興味を持って[「ゼロから作るDeep LearningーーPythonで学ぶディープラーニングの理論と実装」](https://www.oreilly.co.jp/books/9784873117584/)で初歩理論を理解したは良いけど、「実際どう使えばええんや?」ってなって学習進捗が滞ってました。
が、最近(2022年)本屋にいったら自分にぴったりのKaggleとDeep Learningの全体像がわかる本に出会い、めちゃめちゃ学習が捗りました!!
結論としては下記の2冊が超オススメの書籍で、特に[Kaggleスタートブック](https://www.kspub

元記事を表示

自己同形数(Automorphic number)生成のアルゴリズム

### 【問題 1】10進数における100桁の自己同形数すべての数字和の合計を求めよ

いきなり問題ですが意味が分かりずらいので順番に説明します。

### 自己同形数(Automorphic number)とは

あまりなじみのない言葉ですが[自己同形数(Wikipedia)](https://ja.wikipedia.org/wiki/%E8%87%AA%E5%B7%B1%E5%90%8C%E5%BD%A2%E6%95%B0)とは、

> 平方したとき、下桁の数が自分自身と同じになる数の事である。 例えば $5^2 = 25, 6^2 = 36, 76^2 = 5776,$ そして $890625^2 = 793212890625$, それゆえ 5, 6, 76 , 890625はすべて自己同形数である。

### 自己同形数(Automorphic number)の生成

英語版の[Automorphic number](https://en.wikipedia.org/wiki/Automorphic_number)により詳しい説明と以下のSample Programがありま

元記事を表示

Pythonにおける配列(リスト)の初期化に関して

## はじめに
4月からIT業界に飛び込み、研修期間真っ最中の初心者エンジニアです。
Pythonの勉強をしている際に、お恥ずかしい話ですが、初歩中の初歩の部分で少しつまずいた経緯があり、ここに自分なりに残しておこうという次第です。

## 対象者
この記事は下記のような人を対象にしています。

– 駆け出しエンジニア
– プログラミング初学者

## 目次

1. [配列(リスト)とは](#Chapter1)
1. [リストの初期化について](#Chapter2)
1. [まとめ](#Chapter3)
1. [参考文献](#reference)



## 配列(リスト)とは
同じ型の要素を一列に並べたデータ型のものです。
Pythonにおける配列型のデータは、辞書、リスト、集合、タプルがあります。

※配列という単語を多く使っていますが、Pythonにおいて配列という言葉はなく、リストと呼ぶそうです。

配列を使うと、文字や数値のデータをひとまとまりに扱うことがで

元記事を表示

OTHERカテゴリの最新記事