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

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

Pythonで九九の表を作成してみた

Pythonを使って、九九の表を作ってみました。

## 二重for文

九九になると、 for文を二重で使うのが一般的だ。
コードを書いていきましょう。

“`
for i in range (1,10):
for j in range (1,10):
if j == 9:
print (f”{i} x {j} = {i *j}”)
print ()
elif i*j < 10: print (f"{i} x {j} = {i *j}") else: print (f"{i} x {j} = {i *j}") ``` ### コードの出力結果 ``` 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 1 x 6 = 6 1 x 7 = 7 1 x 8 = 8 1 x 9 = 9 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2

元記事を表示

steamで売ってるような一般のゲームを強化学習したかった

# はじめに

この記事ではこのプロジェクトのメインとなるアイデアは解説しますが,強化学習そのものの解説はしません.
よって,元コードの大半は割愛して解説しません.

この記事の結論は,「普通のゲームには加速機能なんてないので,強化学習しようとするとありえない時間がかかる」です.一日二日で収束なんてしません.

この試みは一年くらい前のものですが,もう触ることもないと思うので記事にして供養します.

コード(の残骸)はここで見れます.筆者の手元で計算した画面の座標を使用しているなど欠点は多いので,そのままでは動きません.

https://github.com/Mikka-t/AI_for_KSP

今見ると無駄というか,変な処理がある

## 何をしたかったのか

Kerbal Space Program (以下KSP) という一部界隈で有名なゲームで,ロケットの操作を学習させたかった.

ロケットは燃料への着火タイミングやロケット自体の角度を調整できるが,これを強化学習でうまいこと操作させ,惑星の周回軌道に乗せるようなタスクを設定した.

# 実装解説

KSPの画面から画像認識で

元記事を表示

金融×DX エンジニア勉強会

AI×フィンテックの領域において、 勉強会(LT)と交流会を通して知識の幅を広げることを目的として2ヶ月に1回程度開催しているイベントです。

開催:2024/06/26(水)・18:50〜21:30
場所:A YOTSUYA 地下イベントスペース

タイムスケジュール:
18:50〜開場
19:20〜オープニング
19:25〜運営の紹介
19:35〜LT+ディスカッション10分×3~5本を想定
20:15〜交流会
21:30 終了予定

◆参加お申し込みは→コチラへ
https://figurout001.connpass.com/event/320205/

![IMG_6391.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757711/df43555e-bd98-2b83-8fb7-6f5814e65772.png)

◆以下のようなテーマに触れる予定です。
・企業価値を評価するモデルづくり  
・開示情報(XBRL)のデータ化の取り組みのポイント  
・AIと金融工学

◆技術領域: GC

元記事を表示

Sample Article

This is a sample article body.

元記事を表示

Python講座 – 2024ver.

## 誰がこれを読むべきか
Pythonを学ぼうと思っている、プログラミング初心者
前提 : `$` の後に続くコマンドを実行する場合は、`$`を取り除いて入力してください

:::note info
初版年月日 : 2024年6月15日
更新年月日 : –
使用環境  : macOS (Monterey~)
確認環境  : Python3.8~
(Windowsでも動作に差はないと思いますが、シェルスクリプトの書き方が違うため、お気をつけください)
:::

## 目次
1. [はじめに](#はじめに)
1. [プログラミングとは](#プログラミングとは)
1. [プログラミング言語とは](#プログラミング言語とは)
1. [Pythonとは](#pythonとは)
1. [セットアップ](#セットアップ)
1. [python環境構築](#python環境構築)
1. [pipとは](#pipとは)
1. [python仮想環境とは](#python仮想環境とは)
1. [venvとは](#venvとは)

元記事を表示

源氏物語をワードクラウドで表現してみた

# はじめに
前回一週間前に投稿した
[PythonでMeCabを試した](https://qiita.com/baihebu/items/e34483f3bb547a24fe42 “PythonでMeCabを試した”)
の発展形です。

# お題は「源氏物語」
今年の大河ドラマ、「光る君へ」見てますか?
源氏物語の内容はほぼ知らない、「光GENJIの名前の元になったヤリ〇ン光源氏の物語を書いた紫式部のベストセラー小説」くらいの前提知識で毎週楽しみに見ています。

前回MeCabで分かち書きを試したので、次は青空文庫の本のデータを使って本をマルっとワードクラウドを試してみたい。
せっかくなので今マイブームのまひろ=紫式部の源氏物語でやってみよう。
というわけです。

# 準備
mecab_testフォルダに以下を配置。
・Pythonのソース
・日本語フォントファイル
 サブディレクトリ「Aozora_data」に青空文庫からダウンロードしたテキストファイル
(なお、青空文庫からダウンロードした源氏物語のテキストファイルは56ファイルに分かれています。)
・サブディレクトリ「WordC

元記事を表示

【Python】マルチスレッド その1 threadingの利用

# 背景
pythonでマルチスレッドが必要になり、使用方法について調査してみました。threadingモジュールを使用するのが一般的なようです。

# 環境
* Macbook Air M1
* macOS Sonoma 14.0
* python 3.11

# コード

ログに各スレッド名を出力するようにしました。

“` main.py
import threading
import time

# Log
def log(str):
print(“[{}] {}”.format(threading.current_thread().name, str ))

# Sub
def worker():
log(‘Invoked’)
time.sleep(3)
log(‘Completed’)

# Main
if __name__==”__main__”:
log(‘Start’)

log(‘Invoking worker…’)
worker_thread = threading.Thread(target

元記事を表示

スプレッドシートをAPIなしで読み込む方法

## 🦁**結論**🦁
スプレッドシートをAPIなしで読み込むには

***「URLをCSV形式のURLに変換してアクセス」***
すれば可能読み込み可能になる。

ただし、権限を
「URLを知ってる人全員」にする必要がある。

:::note info
押さえておくべき点
* スプレッドシートのURLの構成は通常【https://docs.google.com/spreadsheets/d/】{spreadsheet_id}/edit)
* CSV形式のURLの構成は【https://docs.google.com/spreadsheets/d/{spreadsheet_id}/export?format=csv】
* 通常のURLは人がデータを編集・閲覧する場合に適している
* CSV形式のURLはプログラムでデータを自動処理する場合に適している
*
:::
***

:::note warn
CSV形式のスプシの利用シーン
* データ分析や機械学習モデルへの入力データとして使用
* 定期的なデータバックアップ
* スクリプトで自動レポート生成

元記事を表示

Django transaction.atomicについて

なんかみたことはあるけど理解していなかったため、ちょっと調べました。
間違っていたらご指摘ください。

## TL;DR
短い文で表すと、`transaction.atomic`を使うことで処理の途中でエラーが起きた時DBの変更が戻すことができる。

## `transaction.atomic`について
どういうことかというと、よくある銀行の例で
口座間のお金を移動する処理を書いてみるとする。(本番でこんなコードを書いてはいけない())

“`python:sample.py
def money_idou():
meron_kouza = Kouza.objects.get(name=”meron”)
itigo_kouza = Kouza.objects.get(name=”itigo”)

# `メロン口座`から`いちご口座`へ150円移動する
itigo_kouza.amount = itigo_kouza.amount – 150
itigo_kouza.save()
meron_kouza.amount = meron_kouza.a

元記事を表示

Python画像処理まとめ【備忘録】

pythonで画像処理をする際の個人的チートシート

“`python:image_processing.py
import cv2
import numpy as np
import matplotlib.pyplot as plt

# 画像を読み込み、グレースケールに変換
image = cv2.imread(‘image_path’, cv2.IMREAD_GRAYSCALE)

# 輝度値が30~240の領域を抽出
mask = cv2.inRange(image, 30, 240)

# ヒストグラムを描画し、最頻輝度を取得
hist = cv2.calcHist([image], [0], mask, [256], [0, 256])
# plt.plot(hist)
# plt.show()

# 最頻輝度を取得
most_freq_brightness = np.argmax(hist)

# 最頻輝度の±50%の輝度範囲を計算
lower_bound = int(most_freq_brightness * 0.5)
upper_bound = int(most_

元記事を表示

LightGBMで競馬AIの簡単な実装をしよう!

# はじめに
機械学習の代表的な応用例として、競馬の結果を予測する「競馬AI」があります。
今回は競馬のデータを取得し、その結果を予測する機械学習モデルを構築、実際に予測してみるところまでを簡単なコードの解説を交えて紹介できればと思います。

# **実行環境**
・macOS 13.2.1
・Python 3.10.13

# **もくじ**

STEP1 : データの取得
1. スクレイピング先のサイトについて
2. スクレイピングを行うコード
   
STEP2 : データの確認・前処理
1. データ構造の確認
2. 目的変数の前処理
3. 特徴量エンジニアリング
   
STEP3 : モデリング
1. モデリング
   
STEP4 : 性能評価
1. 走破

元記事を表示

深さ可変のMLPを見つけて目から鱗だった話

# はじめに

kaggle等でMLPの実装を探すと,kerasのSequentialにDense層やDropout層をaddしまくるような実装をよく見かけます.

torch.nn.Moduleを用いた実装では,Linearと活性化関数を2,3個繰り返す実装が多いように思います.

これらはMLPの概念に忠実な実装です.

しかしMLPの中間層の数を簡単に自由に変更できれば,より柔軟な実装ができるかもしれません.

ここで紹介するアイデアはシンプルで誰でも思いつきそうなものですが,レイヤ数が固定の実装ばかり見ていると考え方が固くなってしまい,筆者にとっては新鮮なものであったので記事にしました.

# Keras (Sequential)

中間層のサイズを指定して,for文でn_layer-2個のDense層とDropout層を追加すれば,可変個数の層を追加できる.

“` py
from keras.models import Sequential
from keras.layers import Dense, Dropout

model = Sequential()

mod

元記事を表示

requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)というエラー

# はじめに
 前回に引き続き、FastAPIを用いた会議室予約アプリの作成中に出てきたエラー文です。

# 問題
“`
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
“`
上記のエラーに遭遇。
# 原因
API側から受け取ったデータが変である可能性ありとのこと。
https://teratail.com/questions/tm5eg39ug7j7uy

“`
#main.py
@app.get(“/bookings”, response_model=List[schemas.Booking])
async def read_bookings(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
booking = crud.get_bookings(db, skip=skip,

元記事を表示

『モデルベース深層学習と深層展開』読み会レポート#4

$\def\bm{\boldsymbol}$

# 概要
– オンラインで開催している[『モデルベース深層学習と深層展開』読み会](https://majime-ni-study.connpass.com/event/)で得られた知見や気づきをメモしていく
– ついでに、中身の理解がてらJuliaサンプルコードをPythonに書き直したコードを晒していく
– 自動微分ライブラリにはJAXを使用する

# 第4回
## 大まかな内容
– インクリメンタル学習について
– 一般的な最適化問題を勾配法で解く際に深層展開を利用する例について
## 議論になったこと
### 3.2.3節 あたり
– インクリメンタル学習の恩恵について
– 実際これをやると勾配消失が起きにくくなることは経験的に多い
– 勾配法の例においては、一括学習でやると、勾配降下の初期において使われる若い$t$の$\eta^{(t)}$まで誤差がうまく帰ってこないので、大きい$t$の$\eta^{(t)}$の学習はうまくいっても、それを使うところまで勾配降下出来ないみたいなことが起きる?

元記事を表示

テトリス風落ち物パズルを作る part06 ゲームオーバーの判定

[前回](https://qiita.com/comet725/items/9d22157e63a5d158daa0)ではSRSとロックダウンを実装した

今回はゲームオーバーの判定および演出を追加していなかったのでそれを追加する。

# ゲームオーバーの実装

ゲームオーバーの条件は2つ
– 新しくミノを追加したときにミノを置けない
– 設置時画面内に1つもミノのタイルを設置できなかった

上記の状態が起きたらフラグを立て、メインの処理に伝える

新規ミノの設置失敗はこんな感じ、即ゲームオーバーでもよいが画面上部で頑張れるようにする為2つ上まで設置を試みている。

“`python:新規追加時にミノ失敗した判定
class Game:
# —中略—
gameover = False # 追加
# —中略—
def mino_setup(self):
self.wait_count = WAIT
self.is_draw_mino = True

t = choice(Mi

元記事を表示

備忘メモ: csvファイルの一部を更新したいときに見る

windowsでpythonを実行中、csvファイルを作成していてなんだろうこのもじれつや改行は…?と思ったので備忘メモ

読み取ったcsvファイルのヘッダーに\ufeffという文字列が追加されてしまっていたので、読み取るときのエンコーディングを指定する.
“`python
import csv

with open(csv_path, ‘r’, enconding=’UTF-8-sig’) as r_obj:
reader = csv.DictReader(r_obj)
“`

書き込むときは、改行コードをブランクになるように指定する
“`python
with open(write_csv_path, ‘w’, encoding=’UTF-8′, newline=”) as w_obj:
fields = [‘ID’, ‘BUILD_TYPE’]
writer = csv.DictWriter(w_obj, fieldname=fields)
writer.writeheader()

“`

まとめ
“`python
impo

元記事を表示

【Python】関数(def)

Pythonの`def`は、関数を定義するためのキーワードです。関数は、一連の命令をまとめて再利用可能にするための構造です。ここでは、`def`の基本的な使い方について説明し、サンプルコードも紹介します。
# 基本的な関数定義
まずは簡単な関数の定義方法を見てみましょう。次のコードでは、`greet`という名前の関数を定義し、”Hello, World!” と表示します。
“`python
def greet():
print(“Hello, World!”)

# 関数の呼び出し
greet()
“`
**解説:**
– `def greet():` は関数の定義部分で、`greet`が関数名です。`()`は引数を指定する部分で、今回は何も引数を取らない関数を定義しています。
– 関数の内部のコード(ここでは`print(“Hello, World!”)`)はインデント(通常スペース4つ)して書きます。
– `greet()` と書いて関数を呼び出すと、`print(“Hello, World!”)` が実行されます。
# 引数を取る関数
次は、引数を使った関数を見てみま

元記事を表示

【Python】反復文(for文)

for文は、シーケンス(文字列、リスト、タプルなど)やその他のイテラブルオブジェクトの要素を1つずつ反復処理するのに使われます。
# シンプルなfor文
“`python
fruits = [‘apple’, ‘banana’, ‘orange’]
for fruit in fruits:
print(fruit)
“`
このコードでは、fruitsリストの各要素が順番にfruit変数に代入され、print(fruit)が実行されます。結果は以下のようになります。
“`console
apple
banana
orange
“`
# range()を使ったfor文
range()関数を使うと、数値のシーケンスを生成できます。
“`python
for i in range(5):
print(i)
“`
上記のコードでは、0から4までの数値が順に出力されます。
“`console
0
1
2
3
4
“`
Pythonの`for`文は、シーケンス(リスト、タプル、文字列など)の各要素に対して繰り返し処理を行うために使用されます。シンプルな構文で使いやすい

元記事を表示

デコレータの10例

## 1. Timing Decorator
関数の実行時間を測定します。

“`python
import time

def timing_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f”{func.__name__} took {end_time – start_time:.4f} seconds to execute”)
return result
return wrapper

# Example usage
@timing_decorator
def slow_function():
time.sleep(2)

slow_function()
“`

## 2. Logging Decorator
関数の呼び出し、引数、および戻り値をログに記録します

元記事を表示

Pythonの基本概念だけを学習してみた

# はじめに

Python は、そのシンプルさと柔軟性、強力な標準ライブラリによって、多くの開発者に愛用されています。この記事では、Python 独自の概念について学び、そのメリットを探ります。

# 動的型付け

Python は動的型付けの言語であり、変数の型を明示的に宣言する必要がありません。変数に値を代入すると、その変数が参照する値の型が決まります。

“`py
x = 10 # x は整数型
x = “Hello” # x は文字列型に変更
print(x)
“`

このコードでは、変数 x に整数値を代入した後、文字列を代入しています。

## 動的型付けのメリット

1. 柔軟性: 変数の型を変更できるため、柔軟なコーディングが可能。

2. シンプルさ: 型を宣言する必要がないため、コードがシンプルで読みやすい。

3. 迅速なプロトタイピング: 型の宣言に時間をかけずに、迅速にプロトタイプを作成できる。

# インデントによるブロック構造

Python はインデントを使用してコードのブロックを定義します。これにより、コードの可読性が向上し

元記事を表示

OTHERカテゴリの最新記事