Python関連のことを調べてみた2023年09月16日

Python関連のことを調べてみた2023年09月16日

pythonでオセロ(人vsコンピュータ)作ってみた2

前回作ったオセロコンピュータに、新しく評価基準を追加しました。
①マスごとの評価値
②そこに置いたときに、次のターン相手が置ける場所の数←New
③そこに置いたときの、相手の最善手の評価値(マスごとに設定)←New

①~③の評価の比重は、自分で調整しました。これだけでもある程度戦えるようになってきました。
ここから、マスごとの評価値、①~③の比重を、戦わせながらコンピュータ自身に調整させます。やっとAIっぽいことできる!!!!!
AIについては本で仕組みや計算方法を学んだだけで、実践は初めて。ドキドキとワクワク。頑張ります。

↓ソースコード
“`python:オセロ(人vsコンピュータ)ver.2
import tkinter
from tkinter import *

“””
コンピュータが置くときの評価基準
・マスごとの評価値
・置いたときに相手が置ける場所の数
・置いたときの相手の置ける最善手の評価値
“””

class player:
def __init__(self):
self.name=”name”
self.disc=

元記事を表示

AIによる質問応答 社内手続き編

# 目次
[1.はじめに](#1-はじめに)
[2.質問応答の基本パターン](#2-質問応答の基本パターン)
[3.社内手続きに基づく質問応答](#3-社内手続きに基づく質問応答)
[4.課題](#4-課題)
[5.おわりに](#5-おわりに)

# 1. はじめに
**起:Chat-GPTでも使われているTrasformerを使い、社内手続きを与えて、質問応答できるか試してみました。**

**承:やってみたところ、原理原則的には、出来ることが分かりました。**

**転:しかしながら、日本語のモデルでは、安定的な結果を得ることは出来ませんでした(ちゃんと答えられないケースがありました)。**

**結:どうすれば、安定的に上手く行くか、今後とも、試行を続けたいと思います。**

:::note info
以下の違いには、注意して、お読みください。

**Transformer**
一般的なアーキテクチャの名前であり、シーケンスデータを処理するために設計されたモデルを指します。Transformerは、”**Attention is All You Need**”という論文で初めて

元記事を表示

#0021 pytestのトライアル

### はじめに
– 普段unit testで使っているpytestについて基本を調べてみました。

### 基本的な使い方
#### 準備
– `pytest`をインストールしておく
– `utils1.py`にはテストしたい関数、`test_utils1.py`にはテストコードを準備した。

“`
/
├── utils
│ ├── utils1.py
├── tests
│ ├── test_utils1.py
“`

“`
[utils1.py]
def add_func(x, y):
return x + y
“`

“`
[test_utils1.py]
import sys
sys.path.append(“..”)
from utils.utils1 import *

def test_add_func():
a = 1
b = 3
result = add_func(a, b)
assert result == a + b
assert type(result) == int
“`

#### 実

元記事を表示

AtCoder ABC284-A

AtCodeのビギナー用A問題をひたすら解いてます。
簡単なのでモチベーションあがります。
こうしたらOKだったよっていうのを載せていきます!
# AtCoder Beginner Contest 284
https://atcoder.jp/contests/abc284/tasks/abc284_a

“`
n=int(input()) #入力を数値に
lst=[] #空のリストを作る
for i in range(n):#N回繰り返し
lst.append(input()) #リストに入力した文字を入れる
lst.reverse()#並べ替え(lst.reverse()を直接printしてはいけない→Noneが返るから)
for char in lst:
print(char)
“`

元記事を表示

AtCoder Beginner Contest 318(ABC318) A~E問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け

ABC318 A~E問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。

その他のABC解説、動画などは以下です。

https://qiita.com/sano192/items/54accd04df62242b70f0

# A

https://atcoder.jp/contests/abc318/tasks/abc318_a

難しく考えず、問題の通りにM,M+P,M+2P,…がN以下になっているかを順番に確認すればOKです。
つまりx=0,1,2,…に対してM+xPがN以下になっているかを確認します。
xを順番に増やしていくという処理はforかwhileで実装できますが、どちらかというとforの方が理解しやすいと思います。

for文は

for 変数 in range(最後の数+1):

と書きます。
x=0,1,2,…と増やしていくなら以下のようになります。

“`python:
for x in range(999999999999):
“`

「999999999999」というのは単に大きめの数字を指定しているだけで特に意味はありません

元記事を表示

Dashに自作htmlを組み込みたい! ~callback関連付け編~

手っ取り早くソースを見たい方は[Github](https://github.com/ckw-1227/dash_html)をどうぞ。

[Dashに自作htmlを組み込みたい! ~html埋め込み編~](https://qiita.com/ckw-1227/items/d753daf614d474484d72)で、Dashコンテンツとhtmlを共存させたページを作ることができました。
作成したページの画面イメージはこんな感じ。
![ひとまず完成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1402694/8a9eed90-ac81-0faf-1d5b-26b43016ae2c.png)
上のタイトルとドロップダウンメニューがhtml、下のグラフエリアがDash製です。

さて、前の記事の最後に言及したように、この状態ではドロップダウンメニューを変更してもグラフと連動してくれません。
グラフとの連動をさせるためには、htmlで定義したドロップダウンメニューとcallback関数との関連付けが必要です。

元記事を表示

Dashに自作htmlを組み込みたい! ~html埋め込み編~

## 導入
DashはPythonだけでインタラクティブなダッシュボードが作成できるライブラリです。
Pythonは書けるけどhtml/cssは詳しくない、という方でもお手軽にWeb上でグラフ描画などができます。

…という、ぐーぐる先生で検索すると出てくるひととおりのごあいさつは横に置いておきまして。

ここでは、htmlもある程度わかっている人がDashでアプリを作り込み始めて、
「やっぱりグラフ部分以外はhtmlで書きたい」「htmlのメニューを作ってDashコンテンツを埋め込みたい」という欲が出てきた方、あるいは
お手軽に作れるということでお試しでダッシュボードを作ってみたらうっかり上にウケてしまい、「もっとデザインをブラッシュアップしよう!」なんて言われてしまった方(いるのか?)のために、Dashコンテンツとhtmlを共存させる方法について書いていこうと思います。

なお、今回の記事のソースは[Github](https://github.com/ckw-1227/dash_html)に上げておりますので、手っ取り早くサンプルを見たい方はそちらをどうぞ。

## 一般的なDa

元記事を表示

3D Gaussian Splatting 環境構築 (Windows10,Anacondaなし)

3D Gaussian SplattingのAnacondaを使わない環境構築の備忘録

環境

Windows10
Python 3.10.8
RTX 3090
CUDA 11.8

~~~ requirements.txt
torch==2.0.1+cu118
torchaudio==2.0.2+cu118
torchvision==0.15.2+cu118
tqdm==4.66.1
plyfile==1.0.1
~~~

~~~ submodules.
diff-gaussian-rasterization==0.0.0
simple-knn==0.0.0
~~~

追加した環境変数

+ ~\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
+ ~\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include

なぜだか失敗するpip i

元記事を表示

AttributeError: module ‘lib’ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK’

## 目的
pythonプログラム実行時に`AttributeError: module ‘lib’ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK’`エラーが出た。

## エラー解決方法
以下を実行するだけ
“`bash
pip3 install pyOpenSSL –upgrade
“`

元記事を表示

Web予約のページがUIが悪かったので、スクリプトを使って予約した

(予約したかった)

#### どんな予約ページだったか
予約をする際、カレンダーに空き情報を表示せず、何月何日何時まで入力して初めて空き情報が確認できるサイトだった。
(しかも人気店で二ヶ月くらい埋まっている。途方もない)
15分単位で予約できて、営業時間は8時間なので、 1h(15*4) * 8h * 60day の 1920 通りから予約できる日を見つけなければならない(嫌です)
(URLを貼りたいが、問題があるかもしれないので一旦保留)

#### 作ったもの
timestampをインクリメントしながら、その値でURLを作成しサーバーにリクエストを送ることで予約の可否を確認するスクリプト。

### 解決のステップ

#### 1 ループさせたいpath の特定
まず予約コースが複数あるので、単純に予約する際に用いているget を送ると大きなjson が返ってくる。どうにかして、目当てのコースだけが表示できる検索方法を探し、request の内容を保存する
(最悪、絞れなくても 大きなjson からお目当てのコースのid を特定した後に grep 等を組み合わせることでも解決

元記事を表示

自社開発したい人必見!自社開発企業に転職できるサイトを紹介

# はじめに
みなさん、こんにちは。高校生エンジニアの[Raio](https://twitter.com/Raio14f)です??‍?
平日は公立高校に通いながら、放課後や休日はIT企業のエンジニアとして働いています!

今回の記事では、自社開発したい人に向けた**自社開発企業に転職出来るサイトを紹介**します?️

– 自社開発したい
– IT転職したい
– 今より収入を上げたい

こんな方には、おすすめの記事です?
ご興味のある方は、是非最後までご覧ください!

# クラウドリンクとは?
みなさん、[クラウドリンク](https://px.a8.net/svt/ejp?a8mat=3TD0LC+CAD38Y+4VYG+5YRHE)はご存知ですか?

クラウドリンクは株式会社Cloud Linkが運営している転職エージェントです。

**特に自社開発系の求人に特化しています。**

自社開発といえば、エンジニアが転職する際に希望することが多いですね。

そんな自社開発案件を多数掲載しているので、多くのエンジニアにおすすめです!

一般的にみれば自社開発の案件は少なく、探すのが難しい

元記事を表示

コピペ集(自分用)

### htmlのテンプレ

“`python




元記事を表示

点と平面の距離の公式「2007 早稲田大学 人間科学部【8】」をChatGPTとWolframAlphaとsympyとFreeCADでやってみたい。

・私は、「一撃」とは、いきませんでした。
**・教えて下さい。2元(x,y,z)の平方完成は,ありますか?**
・「sympyで(解法6)」は、1変数z消去です。
**・申し訳ありません。「FreeCADの接平面の移動」の勉強中です。**

オリジナル 
(youtube 5:32) math karat 様より

(youtube 6:43) math karat 様より

上と同じです。大学入試数学問題集成 様>テキスト 人間科学部【8】

https://mathexamtest.web.fc2.com/2007/200713591/2007135910400.html#top-0408

# ChatGPT-3.5で(???できませんでした。???)
以下の結果は抜粋です。

入力文 原稿
“`
実数x,y,zの間にx+2y+3z=7という関係があるとき,x2+y2+z2は
x=y/u=z/vのとき最小値p/2をとる

元記事を表示

pyautogui を使ってみた

# pyautogui とは

>Pythonでデスクトップオートメーションを簡単に行うためのモジュールです。
>このモジュールを使用すると、マウスの動きやクリック、キーボードの入力など、ユーザーが普段手動で行う操作をプログラムから自動化できます。

## 使い道

例えば、Celenium ライブラリはブラウザ上のスクレイピングだけなのに対し、こちらはGUI上でファイルのドラッグなども可能。
組み合わせると大部分のルーティン業務は自動化できそう。
bot と認識されないメリット(?)もあります。

## 基本関数

### click(x, y)
モニター上の座標をクリックする。
下で紹介する画像認識で、その見つかった画像(アイコン)をクリックさせることも可能

### moveTo(x, y)
モニター上の座標にポインタを移動させる。

### scroll()
マウスホイールを上下に動かす。
例えば、Webページで特定の画像が見つからなかったら下にスクロールさせる、というような使い方が可能

### dragTo()
ドラッグ&ドロップする。ファイルの移動

元記事を表示

ローパスフィルタのPython実装

## 参考文献
「プログラム101付き 音声信号処理」2021/01/01
(著)川村 新
[文献元](https://shop.cqpub.co.jp/hanbai/books/31/31471.html)

## 準備
“`bash:console
pip install numpy
““
## ソースコード
“`python:sample.py
# -*- coding: utf-8 -*-
import numpy as np

def standardization_(x):
return (x-x.mean())/x.std()

def arc_standardization(x,original):
return (x*original.std())+original.mean()

def firfilter_LP(x,fc=260):
a=standardization_(x)
b=a/np.abs(a).max()
s=b
t=0
Fs=b.shape[1]
MEM_SIZE=b.shape[

元記事を表示

SphinxでPDFを出力したときにヘッダー、フッターが表示されない

備忘録

## 環境

Sphinx 7.2.6
TeX Live 2023

## 問題

SphinxでPDFを出力すると
目次や章が始まったページでヘッダーやフッターが表示されなくなる。
見栄えがよろしくないので調査することに

## 解決

調べていくと日本語に設定した場合のみこの症状が発生することがわかった。
そこでjsbook.clsを調べていくと次のような記述があった。

“`tex:jsbook.cls
\def\plainifnotempty{%
\ifx \@oddhead \@empty
\ifx \@oddfoot \@empty
\else
\thispagestyle{plainfoot}%
\fi
\else
\thispagestyle{plainhead}%
\fi}
“`

ここでスタイルが設定されるため、ヘッダーやフッターが表示されなくなる。
よってlatex_elementsという設定オプションを使用して、コードを無効にする。

“`python:conf.py
latex_eleme

元記事を表示

【Flask】中規模な開発のディレクトリ構成を考える

Flaskの開発にあたり、

– 個人開発の範疇
– app.pyに全部書くのは冗長

という中規模な場合のディレクトリ構成を、自分なりに作成しました。

“`
.
├── flask_app
│ ├── __init__.py — 初期設定
│ ├── app.py — appを読み込む
│ ├── models.py — DBテーブルを定義
│ ├── static — 静的ファイルを格納
│ │ ├── css
│ │ │ └── style.css
│ │ └── js
│ │ └── script.js
│ ├── templates — htmlファイルを格納
│ │ ├── common
│ │ │ └── layout.html
│ │ ├── index.html
│ │ ├── sample.html
│ │ └── …
│ └── views — コントローラ
│ ├── index.py

元記事を表示

ABC318 A~Eの解説

THIRD プログラミングコンテスト 2023 アルゴ(AtCoder Beginner Contest 318)
URL:[ABC318](https://atcoder.jp/contests/abc318)

# A問題
問題文の通りにすればよい
“`python:A
n, m, p = map(int, input().split())

ans = 0
for i in range(1, n + 1):
if (i – m) % p == 0:
ans += 1

print(ans)
“`
ただし、計算で求めることもできる。
“`python:A別解
n, m, p = map(int, input().split())
print((n – m) // p + 1)
“`
# B問題
いもす法など高速化の方法はあるが、愚直にやっても時間に間に合う。
“`python:B
field = [[0] * 110 for _ in range(110)]

n = int(input())
for _ in range(n):
a, b

元記事を表示

StreamlitでEDAライブラリを複数つなげてみた

## 要約
業務でEDAを利用するケースが多いのですが、jupyter実行して確認して、というのが煩わしいという声もあったので、ブラウザ上で複数確認できるようStreamlitを利用して作りました。
## 事前準備
必要なライブラリはpandas streamlit sweetviz pyGWalkerです。
pip install pandas streamlit sweetviz pygwalker をしてください。
## ソースコード
“`python
import pandas as pd
import pygwalker as pyg
import streamlit as st
import streamlit.components.v1 as components
import sweetviz as sv
import os
import codecs
import getpass

st.set_page_config(layout=”wide”)

def load_data(uploaded_file):
df = pd.read_csv(uploade

元記事を表示

【技術】Anaconda

# Anaconda

## Anacondaの概要
– 公式サイト:https://www.anaconda.com/
– 公式ドキュメント:https://docs.anaconda.com/free/navigator/?utm_source=navigator&utm_medium=nav-docs

## Anacondaのコンテンツ
– Anaconda アシスタント
– https://anaconda.cloud/code-in-the-cloud?utm_campaign=anacondaassistant&utm_medium=banner&utm_term=website
– Pyscript
– https://pyscript.com/join
– Anaconda Cloud
– https://anaconda.cloud/

## Anaconda Navigatorのコンテンツ
– DataSpell
– JetBrains社のPythonIDE(統合開発環境)

– Anaconda Notebooks

元記事を表示

OTHERカテゴリの最新記事