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

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

超初心者のための『勢いで学ぶPython』

# 超初心者のための『勢いで学ぶPython』
Google ColabでPythonの教材を作成しています。
もう少し内容を充実させて行きたいのですが、一旦放出します〜
今後の展望としては、データサイエンス系の応用編を作ろうか、セキュリティ系の内容にしようかで迷っています☺
(というかちゃんとcolabの共有できてんのかな)

## 座学編
https://colab.research.google.com/drive/1T0ShC1owgOFLxV0QbkbIPdrFYkEg-x5f?usp=sharing

## 演習編
https://colab.research.google.com/drive/1oIxrU5DK4IAfAyHtKKfoTgbiXjm3qIoa?usp=sharing

元記事を表示

PythonとJavaScriptとPerlのif文の比較

# Pythonのif文

https://qiita.com/Morio/items/1e06e7ac768758af5ffe

# JavaScriptのif文

https://qiita.com/taiju_suzuki/items/e2bf11fcf1645623235f

# Perlのif文

“`
# if文
if ($condition1) {
# …
}
elsif ($condition2) {

}
else {

}

# unless文
unless ($condition) {

}
“`

(他のプログラミング言語の編集リクエストも受け付けています。どんなプログラミング言語でもOKです。)

元記事を表示

【強化学習】MuZeroを完成させたStochasticMuZeroを解説・実装

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

前:[MuZero](https://qiita.com/pocokhc/items/190779b4ff2e51cbeceb)

# Stochastic MuZero

Stochasticはストキャスティック(stəkǽstik)と読み、”確率論的な”という意味です。

MuZeroは次の状態が決定的でないと学習できないという問題がありました。
マルコフ決定過程(MDP)の環境では次の状態が確率論的に決まる環境を想定しているため、適用できる環境が限定的です。
Stochastic MuZero は次の状態を確率的に予測できるようにしたMuZeroとなります。

参考
・[Planning in Stochastic Environments with a Learned Model (論文)](https://openreview.net/forum?id=X6D

元記事を表示

【Python】input() で入力後の改行を防ぐ方法

思いついたのをメモ。
“`python
a = input(“a : “)
b = input(” / b : “)
“`
これを実行すると、通常だと
“`
a : 1
/ b : 2

“`
となるが、これを
“`
a : 1 / b : 2
“`
というようにしたい場合。
これでできる。
“`python
def input_mod(__prompt: object = …, end: str = “\n”) -> str:
result = input(str(__prompt) + “\0337″)
print(f”\0338\033[{len(result)}C”, end=end)
return result
“`
ただ、カーソルの位置を動かしているだけなので、スクロールが発生するほどの長文には使えない。

元記事を表示

【Python+Flask】しりとりAPIを作ろう #1 ~データ作成編

# はじめに
今回よりPythonでしりとりAPIを作っていきます。

この記事は第1回目です。

今回はしりとりのデータを作成していきます。

# 環境
今回はデータ収集(ほぼテキストマイニング)を行うので google colab を用います。

# テキストコーパス

京都大学のテキストコーパスを使います。
ここに保存されているテキスト達をPythonで読み込んで前処理していきます。

https://github.com/ku-nlp/KyotoCorpus

# 実際にやってみよう

手順1つ1つでgoogle colabのセル1つです。

## 手順1 git clone する

google colabなので先頭に!をつけることを忘れずに!

“`shell
# git cloneする
!git clone https://github.com/ku-nlp/KyotoCorpus
“`

## 手順2 ファイルのパスを取得する
KyotoCorpus/dat/num/ に保存されている numファイルのパスを取得します。

“`python
# 先のKyotoC

元記事を表示

Pythonを用いた株式リスクの計算

### ■初めに
この記事では投資におけるリスクについて解説を行っています。また解説に際してはyahoo financeのデータをpythonのpandas_datareaderというライブラリを用いて実装と共に解説を行っています。
ただしこの記事はどのように結果を得るのかという観点で作成していますので、得られた結果からどの銘柄に投資すればよいのかという観点の議論は行っていませんのでご注意ください。

実装したものに関しては下記のGitHubレポジトリにアップしてありますので、用いたい場合はクローンしてお使いください。
[https://github.com/YusukeOhnishi/finance_introduction](https://github.com/YusukeOhnishi/finance_introduction)

### ■株式のリスク
#### ▶考え方
投資家にとって、リスクを取りすぎることは好まれることではありません。そのため、このリスクを定量的に表すことは重要な課題であるといえます。
例として、下記のような株式が得られる場合を考えます。

– 1年目に

元記事を表示

LightGBM の木を可視化するとき日本語フォントにする

[lightgbm.create_tree_digraph](https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.create_tree_digraph.html) に以下のようにパラメータを渡すと好きなフォントに変更できます。
※ matplotlib でその日本語フォントを利用できるようにしてあることが前提です。
※ 環境設定として日本語フォントを設定しておく方法もあると思います。

“`python
import warnings
warnings.simplefilter(‘ignore’, UserWarning)
%matplotlib inline
import matplotlib.pyplot as plt
plt.rcParams[‘figure.figsize’] = (10, 6)
import numpy as np
import pandas as pd
import lightgbm as lgb
from sklearn import datasets
from sklearn.

元記事を表示

TA-Libのローソク足パターン認識を使う

Pythonの[TA-Lib](https://github.com/mrjbq7/ta-lib)の使用方法をウェブで検索すると、移動平均やボリンジャーバンドなどのOverlap Studiesの関数の記事が目立ちますが、Pattern Recognitionというカテゴリーもあります。

Pattern Recognitionはローソク足の特別なパターンを検出する関数群で、はらみ足や三羽烏、数多くのパターンを見つけてくれます。

[この記事](https://qiita.com/Miku_F/items/66f754e8cf285c9e3702)にたくさんの関数の概要と使い方の紹介がありますが、私も[過去の記事](https://qiita.com/TKfumi/items/ffb617898211a794bf9e)で説明した方法でユーロドルの値動きから、いくつかのパターンを見つけていきたいと思います。

## はらみ線

まずははらみ線です。
基本的なコードは以下の通りで、以降はtalibの関数を色々変えていきたいと思います。

“`python
import talib
fro

元記事を表示

【データ分析】なぜ私はポケモンバトルに勝てないのか

# はじめに
「ポケットモンスター スカーレット・バイオレット」楽しみですね!
今回はオープンワールドで友達と一緒に冒険、それも各々の順番でジムリーダー攻略できたり夢が広がります。赤と紫というテーマも原点回帰のようで好きです。私は赤外線と紫外線関係の何かがあるのかなと妄想してます。
そんなわけで発売を楽しみにしながら剣盾で遊んでいるのですが、思い付きで[紫色](https://yakkun.com/swsh/zukan/search/?color=6)統一のパーティを組みました。ムゲンダイナ、カプ・レヒレ、ドラピオン、ストリンダー、オンバーン、コジョンドです。
この趣味メンバーでもなるべく勝てるように作戦を練ったものの中々勝てなかったので、対戦結果を分析して、どうすれば勝ちに繋がるかの知見に昇華しようと思います。

# 1. 先行研究を探す
もしポケモン対戦の分析が既にある場合、そういうwebサイトや分析ツールを使えば自分で作る必要はなくなります。あるいは既存のサービスで出来ないことがあったとしても、参考にしない手はありません。

ポケモン対戦の分析のこれまでを探した結果、少し古いも

元記事を表示

pyenv + venv を使ったpythonのバージョン管理【windows&ubuntu】

# 概要
 python初心者がバージョン管理をする際に参考になればと思います.

—> [pyenvについて](https://anamorphosis.net/tech/pyenv%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6python%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%AE%A1%E7%90%86%E3%82%92%E8%A1%8C%E3%81%86/#:~:text=pyenv%E3%81%A8%E3%81%AF%E3%80%81python%E3%81%AE,%E3%81%8C%E7%B0%A1%E5%8D%98%E3%81%AB%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82)

# 【実行環境】

① [Windows10 & 11](#1-実行環境)
② [ubuntu 20.04 (& 18.04)](#2-実行環境)

## 1. 実行環境

|OS|
|:—:|
|Windows10 & 11|

###

元記事を表示

シリーズ型.map()とシリーズ型.replace()の違い

# カラム「fruits」の値を以下の規則性に従って変更する
# 『grape -> 0』『orange -> 1』『banana -> 2』『melon -> 3』

fruits_dict = {
‘grape’: 0,
‘orange’: 1,
‘banana’: 2,
‘melon’: 3
}
# mapでもreplaceでもどちらでもOK
:o:train_df[‘fruits’] = train_df[‘fruits’].replace(fruits_dict)
:o:train_df[‘fruits’] = train_df[‘fruits’].map(fruits_dict)

print(train_df[‘fruits’].value_counts())

0 500

1 200

2 300

3 400

Name: weather, dtype: int64

# 例外 『grape -> 0』のみにする

fruits_dict = {
‘grape’: 0
}
:wh

元記事を表示

Python(pyautogui)でデスクトップアプリ操作を自動化!

# はじめに
Pythonプログラムで即業務に役立つサンプルプログラムとして、pyautoguiを使ってデスクトップアプリの操作を自動化しましたので、共有します。

# 動作環境
Visual Studio Code
Python3.9.1
# 各種利用ライブラリー
PyAutoGUI 0.9.53
pyperclip 1.8.2
pandas 1.2.3

# 処理概要:
受注データ入力などの際、既にエクセルデータなどが有るにも関わらず、社内の受注管理システムにエクセルのアップロード機能などがなく、手入力しているケースは無いでしょうか?
そんな時、pyautoguiを使って、マウスやキーボード操作を自動化することで、データ入力作業が自動化出来ます。
いわゆるRPA(Robotics Process Automation)がPythonで無料で構築出来ます。

![Pyautoguiイメージ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1361368/e286fb1f-70b7-7b61-0574-3

元記事を表示

DevcontainerでPython環境構築

# 前提

このエントリーは、VSCodeを利用してPython関連の開発をする際に、Devcontainerを利用する方法を記します。

## 事前の準備

以下の準備は終わっているものとします。

– VSCodeのインストール
– VSCodeの日本語化
– docker 及び docker-composeのインストール

## 利用環境

私の環境はLinux(Ubuntu 20.04)とmacOS(12.5)を利用しています。

## 拡張機能

– VSCodeの拡張機能 `Remote – Contaiers` (Microsoft社製) をインストール

# 開発環境ごとの設定

– VSCode左下の `リモートウィンドウを開きます` をクリック
– VSCode上部のコマンドパレットの選択肢から `Try a Development Sample…` をクリック
– 次の選択肢で `Python` を選択

## ファイル構成

– .devcontainer フォルダが作成
– devcontainer.json と Dockerfile ファイルが作成

#

元記事を表示

データクレンジングをしてみよう! 欠損値を削除する方法

## 1.データクレンジングとは
データクレンジングとは、破損したデータ、不正確なデータ、無関係のデータを特定して解決する手法を指します。 データ処理におけるこの重要な段階は、データスクラビングと呼ばれます。

## 2.データクレンジングの必要性
1番でも説明した通り、無関係のデータなどがあった場合、正しい予測結果を得られなくなることや、回帰分析においては、強い相関がみられる2変数のデータなどがある場合、※多重共線性などが発生してしまったりと、とても都合がよろしくありません。
分析業務においてもデータクレンジングはほどんどの業務を占めており、実際企業が保有しているデータは汚れているデータがほとんどなどでとても欠かせない作業になります。

### 3.実際にデータを見てみよう

“`Python
#必要なライブラリのインストール
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
%matplotlib inline
“`
“`

元記事を表示

仮想通貨の現在価格をLineに通知したい

# はじめに
特定の仮想通貨の現在価格を定期的に知りたいなと思い色々調べていたら
[Line Notify](https://notify-bot.line.me/ja/) と [CoinMarketCap](https://coinmarketcap.com/api/) を使えばできることが判明!!
しかもどちらも無料で使えるという。。。(リクエスト回数?とか縛りはありそう)
~~これで億万長者…~~

# 目次
1. [事前準備](#事前準備)
2. [実装](#実装)
3. [参考](#参考)

# 事前準備
[Line Notify](https://notify-bot.line.me/ja/) と [CoinMarketCap](https://coinmarketcap.com/api/) へ登録しAPIキーを取得する

#### Line Notifyの登録
すでに色々な方が記載しているのでこちらは割愛。。。
>参考:[PythonでLINE Notifyへ通知を送る
](https://qiita.com/akeome/items/e1e0fecf

元記事を表示

flask run が上手くできない場合の対処法

Python Flaskにてflask runでプレビュー画面を表示しようとした際、一部ターミナルでは機能しない場合があります。
ちなみに自分の場合はpowershellにて問題が起こりました。

(例)Dcument

flask run

(結果)
+ CategoryInfo : ObjectNotFound: (flask:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

(原因)
恐らくPathが通っていないことが原因でコマンドとして認識されていないと思われます。

(解決)
1,Pathを通す。
システム環境変数の設定にて設定しなおしてください。

2,pythonコマンドを使う。
pythonのversionを指定して、そこからflask runを割り当てます。

(書き方)
python3 -m flask run
 

元記事を表示

Python小技集 – #1 リスト/タプルから重複要素を削除する方法

こんにちは!beatbox4108です。
今日は**Pythonでリスト/タプルから重複要素を削除する方法**について説明していきます。
方法は2種類あります。
* setを使う方法
* dictを使う方法
* dict+zip (応用)

# setを使う場合
Pythonには重複しない値の集合である`set`があります。
ふつうはこれを使うのが良いでしょう。
“`python3
l=[1,1,2,3,3,3,5,6,6,9,0] # サンプル

# setを使う場合
a=list(set(l))
print(“setを使う場合:”,a)
“`

“`
setを使う場合: [0, 1, 2, 3, 5, 6, 9]
“`

アンパックを使えばもっと簡潔に書けます。

“`python3
l=[1,1,2,3,3,3,5,6,6,9,0] # サンプル

# setを使う場合(別解)
b=[*{*l}]
print(“setを使う場合 (別解):”,b)
“`
“`
setを使う場合 (別解): [0, 1, 2, 3, 5, 6, 9]
“`

:::note

元記事を表示

トレンド、周期性がある時系列データの予測の仕組みを解説【Python statsmodelsを使った検証付き】

# はじめに

統計的時系列モデルを使うと下図のような予測が可能です。これが、どういう仕組みで行われるかを明らかにします。

![order=(1,1,0),seasonal_order=(0,1,0,20).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571330/2d42758f-9559-02c8-9cff-95f0dd79f3e6.png)

具体的には、

1. Pythonの[statsmodelsというライブラリのARIMA](https://www.statsmodels.org/devel/generated/statsmodels.tsa.arima.model.ARIMA.html#statsmodels.tsa.arima.model.ARIMA)を使用して、上図のpredictを求める機能を実装
2. Pythonでライブラリを使わずに、同様の機能を実装

を行い、1.と2.の結果が一致するかを確かめます。

ただ予測をするだけなら1.で十分ですが、2.と合わせることで、

元記事を表示

【Python3.9 / FastAPI】アップロードされた画像容量を取得して、バリデーションをかける方法

# 環境

* fastapi
* python3.9

# 全体のソース

“`sample.py
from fastapi import UploadFile
from pydantic import BaseModel, validator
from sample_app.domain.models.valueobjects.exceptions import InvalidRequestException

IMG_MAX_SIZE = 2 * 1024 * 1024

class UploadImage(BaseModel):
upload_image: UploadFile

@validator(“upload_image”)
def validate_upload_image(cls, v: UploadFile) -> UploadFile:
v.file.seek(0, 2)
img_size = v.file.tell()
if img_size > IMG_MAX_SIZE:

元記事を表示

pythonで適当なクラスタを持つサンプルデータを作る

# pythonで適当なクラスタを持つサンプルデータを作る

## 1次元の適当なサンプルを作る

こんな感じの分布のサンプルを作ります

![plot1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104691/21c7bece-a753-ff73-a1dc-332aaa71b294.png)

ソースです

“` python

import matplotlib.pyplot as plt
import random
import sys

def createDistribution(counter):
samples = []
for cnt in counter:
sample = []
for i in range(cnt):
sample.append(random.gauss(0,1))
samples.append(sample)

y = []
for i in ra

元記事を表示

OTHERカテゴリの最新記事