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

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

√(5-2x)-x+2=0「2016福島大学前期理工【1】(1)」をChatGPTとWolframAlphaとsympyでやってみたい。

グラフがでます。

オリジナル

https://kamelink.com/blog/2023/07/31/1-2-16-hukusimadai-rikou-1-1/

上と同じです。大学入試数学問題集成>テキスト【1】(1)

https://mathexamtest.web.fc2.com/2016/201610141/2016101410100mj.html#top-0117

# xxxx ChatGPT で(できませんでした。) xxx
入力文
“`
次の方程式を解きなさい。√(5-2x)-x+2=0
“`
XXXXX ??x=1/2?? xxxxx

# WolframAlpha で
グラフがでます。曲線1本です。

https://www.wolframalpha.com/input?i=%E2%88%9A%285-2x%29-x%2B2%3D0&lang=ja

グラフがでます。曲線1本と直線1本です。

https://www.wolframalpha.com/input?i=%E2%88%9A%285-2x%29%2Cx%2B2+%E3%81%AE%E4%BA%

元記事を表示

30 Days of Streamlitにチャレンジしてみた (Day 21~)

## Streamlitとは

StreamlitはPython向けのWebアプリケーションフレームワークです。

https://streamlit.io/

Streamlitを使うとフロントエンドの知識ゼロでもデータを可視化するためのWebアプリケーションを簡単に作れます。以下のような機能が特徴。
– 変数を地の文に書くだけで、GUIに出力される(**マジックコマンド**)
– `st.radio`や`st.text_input`のようなWidget APIを呼び出すだけで、GUIコンポーネントが生成される

[30 Days of Streamlit](https://blog.streamlit.io/30-days-of-streamlit/)はStreamlitのチュートリアルコンテンツ。SNSに進捗を共有しながらちょっとづつStreamlitを学習できます。
`#30DaysOfStreamlit`で検索すると先人たちのチャレンジの記録がたくさん!
やっていきましょう。

## Day 20まで

Day 20までの日記は[こちら](https://

元記事を表示

【Python】ソートされた二乗配列

# 作るもの
与えられた整数の配列を二乗して、それらの値を昇順でソートした新しい配列を返す関数。

# 実装
“`python:sortedSquaredArray.py
# sortedSquaredArray関数の定義。整数の配列を受け取り、二乗して昇順にソートした新しい配列を返す。
def sortedSquaredArray(array):
# sortedSquaresという名前の新しいリストを作成し、arrayと同じ長さで0で初期化する。
sortedSquares = [0 for _ in array]

# arrayの要素を順番に処理するためのforループ
for idx in range(len(array)):
# 現在処理中の要素の値をvalue変数に代入する。
value = array[idx]

# sortedSquaresリストの対応する位置にvalueの二乗を格納する。
sortedSquares[idx] = value * value

#

元記事を表示

【Python x Chrome x Selnium】ブラウザ自動化からドライバー自動更新まで

> Python 3の仮想環境(venv)でSelenium 4を使うための環境構築方法を説明します。SeleniumはWebブラウジングの自動化やテストに使用される人気のあるライブラリです。

以下は、LinuxやmacOSの場合の手順です。Windowsの場合もほぼ同様の手順で進めることができます。

# 1. **Python 仮想環境のセットアップ**

まず、プロジェクト用のディレクトリを作成し、そのディレクトリ内で仮想環境を作成します。

“`bash
mkdir my_selenium_project
cd my_selenium_project
python3 -m venv venv
“`

# 2. **仮想環境をアクティベート*

Linux/macOSの場合:

“`bash
source venv/bin/activate
“`

Windowsの場合:

“`bash
venv\Scripts\activate
“`

仮想環境がアクティベートされると、プロンプトの先頭に `(venv)` が表示されます。

# 3. **Selenium 4

元記事を表示

【Python環境構築】VSCodeとvenvを使った環境構築

# はじめに
>学生の方、個人学習でいざ現場に行くとコスト面でAnacondaが使用できない事があります。環境構築に迷う事が多いと思います。例としてVSCodeとVenvの環境を構築していきます。みなさんと成長できたらなと笑 私の記事が参考になれば嬉しいです。

> さて、本題へ行きましょう。
>Python 3の環境構築について、Venv(仮想環境)とVS Codeを使って説明いたします。

# Pythonの環境構築手順

まず、Pythonの環境構築手順です。
1. Pythonのインストール
2. 仮想環境(Venv)の作成
3. 仮想環境のアクティベート
4. VS Codeのセットアップ

## 1. Pythonのインストール
まずはPython 3をインストールしましょう。公式のPythonウェブサイト(https://www.python.org/downloads/)からインストーラーをダウンロードし、実行します。インストーラーの指示に従ってPythonをインストールしてください。
インストール完了後は、2番目の作業へ!

## 2. 仮想環境(Venv)の作

元記事を表示

Django Viewの応用(自分用メモ)

## Django自分用メモになります
今回はViewの応用についてまとめます

## 開発環境
OS:mac
エディタ:vscode
python:3.10.9
django:4.1.0

### admin画面へのmodelの登録
“`python:admin.py
from django.contrib import admin
from .models import Items

admin.site.register(Items) #Itemsはmodel名
“`

### リダイレクト処理
“`python:views.py
from django.shortcuts import redirect
def one_item(request):
return redirect(‘store:item_detail’,id=1)
#リダイレクト時にidを渡すことも可

def item_detail(request,id):
item = Items.objects.filter(pk=id).first()
#detail/15のよう

元記事を表示

編集中: なぜPythonのクラス変数は分かりにくいと言われるのか

# この記事は編集中です

## 導入
Pythonは良い言語です。
簡潔で一貫した記述。
筆者はPythonを好きな言語の1つに挙げます。

しかし、Pythonでよく分からないと言われることの1つにクラス変数があります。
Pythonのクラス変数は、その挙動が直感に反する場合があり、新たなPython開発者や他の言語から来た開発者を混乱させることがあります。
「なぜこの変数がこのタイミングでこんな変化をするのか」
想定外の挙動により理解に苦闘することがあります。そして、それはしばしばバグの原因となります。

この記事では「なぜPythonのクラス変数が分かりにくいと言われるのか」について、例題を通して挙動を確認し、その分かりにくい原因はどこにあるのかを考えてみます。最後に「クラスやインスタンスが持つ変数の定義はこう書こう」というのを簡単にまとめます。

## 想定外の変数変化
ある小学校で、テストの結果を管理するプログラムを作りたいとします。
まず次のサンプルコードを見てください。

“`python:test.py
class Exam:
kokugo = 0

ayu

元記事を表示

【Twitter改めX】詐欺アカウント自動ブロックツール作成②

前回の続きです。

https://qiita.com/nobukz/items/62b75e94cecb15d8278c

# 【改善・変更点】
・設定項目をiniファイルに記述出来るようにした
・自動モードを追加した
・Logファイル出力機能追加

大きな改善点は、iniファイルに複数のアカウント情報を入力し、自動で全アカウントの詐欺アカブロックを行える「自動モード」を追加した事です。
これでタスクマネージャに登録すれば、定期的に自動ブロックしてくれるので、詐欺アカのストレスは完全に無くなります。(ちなみに捨てアカと鍵アカも一緒にブロックします)
また、Logファイルを出力するようにしました。
### ■ほぼ実用的に使えるようになったので、我が家ではタスクマネージャで定期実行しています。

# 【ソースコード】

“`python
#■■ blockbot Twitterの詐欺アカウント自動ブロックツール ■■ 2023.7.15 Nobukz
# ver.1.0 API不要のcookie仕様
# ver.2.0 tkinterにてUI実装
# ver.3.0 複数アカウントの切

元記事を表示

pandasにそっと左手を添えるだけで処理速度が爆速に

# 内容について
pythonを使用している皆様
データ処理をする際、pandasを使用していますか?
ちょっとしたデータを弄るときはそれほど気にはしませんが、ビッグデータを扱うときに
「早く処理終わってくんねーかなー」
「無限ループ入ったわ」
みたいなことありませんか?
私はあります。実際に40分くらいかけて読み込んだこともあります。
そんな皆様にpandasを使用したコードに一言追加するだけで爆速になる方法を紹介します(多分知ってると思いますが……)。

それは
#### swifterを追加しよう!!!
です。
では、具体的にどのくらい読み込み速度が違うのか見ていきましょう。

# 検証
pandasよりもデータ処理速度が優れているpolarsというライブラリがありますが、pandasに慣れている人からすると手を付けづらい部分もあるのではないかと思います。

https://pola-rs.github.io/polars-book/user-guide/

しかし、swifterはpandasのコードに、そっと左手を添えるかのように追加するだけです。
では見ていきましょう。

元記事を表示

PythonでPoketの代わりになるGUIアプリを作ってみた

**Python**と**Tkinter**、**SQlite3**を使って、**Poket**の代わりになる**GUIアプリ**を作成してみました。

## アプリの目的

**気になる記事やサイトを、より気軽に保存できるようにする。**

今見ているページを保存してあとで読めるWebサービス「**Poket**」( https://getpocket.com/ )は便利なのですが、気軽にどんどん保存すると、後で探しづらくなってしまいます。

また、Poketサービスを主に仕事用として使っているため、趣味など他のことは保存するのをためらってしまうことが多々ありました。

さらに、Poketがローカル環境で使えると便利なのではないかと考え、アプリの制作に踏み切りました。

## アプリの機能

アプリのコードを実行することで、GUIアプリが自動で起動します。

### INPUT

アプリを起動させて、「SITE NAME」、「URL」を書き込み、INPUTボタンを押すことで、データベース(site-url.db)内のテーブル(poket)に「サイト名」とその「URL」がセットで保存さ

元記事を表示

AttributeError: partially initialized module ‘〇〇’ has no attribute ‘_private’ (most likely due to a circular import)

# この記事の目的
「AttributeError: partially initialized module ‘○○’ has no attribute ‘_private’ (most likely due to a circular import)」というエラーが出た時の対処

# 解決法
調べたところ、偉大なるstack overflowで解決法を見つけました。

#### インポートするライブラリと同じ名前をファイル名にするな
ということでした。
めちゃくちゃ初歩的なミスをしてました。
作業ファイルやその周辺のディレクトリ内のファイルの名前がライブラリと同じ名前になってないか確認すればいいみたいです。
つい癖で、「○○使ったテストコード書くから、わかりやすいように○○って名前にしとこ」って感じで名前を付けますが、ファイル名はきちんと考えた方がいいですね。
変数名だけでなく、ファイル名も意味のある命名を心掛けます。

終わり

元記事を表示

matplotlibで絵を描く

matplotlibは言わずと知れたグラフをプロットをするためのライブラリだが、ドローイングソフトの代わりに絵を描くツールとしても使うことができる。

GUIのドローイングツールと違い、コードで描画していくので

– 再利用性、再現性が高い
– コードをgitで管理できる

などのメリットがある。論文などで図を用意する際に役にたつ。
この記事ではそのようなドローイングとしてmatplotlibを使う方法をまとめる。

# 事前準備

“`py
import matplotlib.pyplot as plt
import matplotlib.patches as patches

plt.clf()
fig, ax = plt.subplots()
ax.set_xlim(0, 5)
ax.set_ylim(0, 5)

ax.set_aspect(‘equal’)
ax.axis(‘off’)
“`

図形を描画する前に上のコードを呼ぶ。

– `ax.set_xlim` `ax.set_ylim`で描画領域を指定する
– 縦と横の比を変えられる。たとえば3:4にしたい

元記事を表示

【Python】サブシーケンスの検証

# 作るもの
 与えられた array が与えられた sequence の有効なサブシーケンス(subsequence)であるかを判定する関数 isValidSubsequence を作る。関数はブール値を返す。True を返す場合、array は sequence の有効なサブシーケンスであることを示す。False を返す場合、array は sequence の有効なサブシーケンスではないことを示す。

# 実装
“`python:validate_subsequence.py
def isValidSubsequence(array, sequence):
# インデックス変数を初期化する
arrIdx = 0 # arrayのインデックスを表す変数
seqIdx = 0 # sequenceのインデックスを表す変数

# arrayとsequenceの要素を比較しながらサブシーケンスを検証する
while arrIdx < len(array) and seqIdx < len(sequence): # array[

元記事を表示

クラスタリングで最適なクラスタ数を見つけるための評価指標

## 概要
クラスタリングは、機械学習のアンサンブル技術で、データのパターンを見つけ出すために使用されます。しかし、最適なクラスタ数を決定するのは一般的に難しいタスクです。そのため、各種の評価指標が提案されています。今回は、Pythonの機械学習ライブラリ`sklearn`を用いて、クラスタリング結果を評価する主要な指標を使い分ける方法を解説します。

## コード
以下のコードは、sklearnの組み込みデータセットであるアヤメのデータセットを用いて、2から9までのクラスタ数でKMeansクラスタリングを行い、その結果を以下の4つの評価指標で評価するものです。

– Inertia
– Silhouette Score
– Davies-Bouldin Score
– Calinski-Harabasz Score

“`python
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
from sklearn.metric

元記事を表示

ポケモンとMTGのためのシンプルな画像付きトレーディングカード検索API

## はじめに

**API**: [https://docs.ximilar.com](https://docs.ximilar.com/services/collectibles_recognition)

今回は、トレーディングカードの画像を自動認識・解析するAIサービス「ximilar」を試してみました。

**これらのカードを分析し、識別することができます**:
* マジック:ザ・ギャザリング – MTG
* 遊☆戯☆王
* ポケットモンスター

![ezgif.com-webp-to-jpg.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3525813/1acfb5e4-8f1f-6263-ea85-cfbed5f7deb3.jpeg)

### 事前準備
APIを使用するには、有料の[ximilar](https://ximilar.com)アカウントが必要です。
app.ximilar.comから登録できます。

### APIで遊んでみよう。

まず、API経由でポケモンカードを分析

元記事を表示

【AWS CDK (Python)】 LambdaのCI/CD環境をIaCで作る(Layer対応版)

## はじめに
本記事は、私自身の備忘録を兼ねてAWS CDKをこれから始める方の一助になればと思い、AWS CDKの使い方等をまとめたものです。
前回、AWS CDKでLambdaのCI/CD環境を作成しましたが、今回は、その構成を少し変更してLambda LayerのCI/CDにも対応するようにしたいと思います。
前回の記事は、[こちら(【AWS CDK (Python)】 LambdaのCI/CD環境をIaCで作る)](https://qiita.com/takataka987/items/50fe40f9db859f7f8e56)を参照してください。
なお、本記事は私自身の経験を基に記載していますが、間違いがあったらすみません。

## 環境
本記事は以下の環境を使用して記載しています。
* AWS Cloud9
* AWS CDK:2.80.0
* Python: 3.10.11
* Node.js: 16.20.0

また、以下の記事に基づいてAWS CDKの環境を作成しています。
* [【AWS CDK/Python】 AWS CDKの始め方](https://qiita

元記事を表示

最新論文をGPTで要約してDiscordに通知してくれるBotを作ってみた

# はじめに
今まで何度か最新論文をきちんとウォッチしようと試みたのですが、大量の英語文献に毎日目を通すのはなかなか大変で、三日坊主になりがちでした。

Google Scholarのメール通知機能を使ったりもしましたが、リンク先にいちいち飛ばないと概要が分からず、気が向いたときしか開かなくなりがちに。。

そこでn番煎じですが、論文の公開情報をGPTを使って要約してDiscordに通知してくれるBotを作りました。下記のようにDiscordに投稿してくれます。いい感じ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103480/5487562f-cebc-c9a2-cbfe-4e3206813b65.png)

コードはこちらに置いています。[GitHub](https://github.com/pkohei/autojournalsummarizer)
本記事ではサーバー等の立ち上げまではせず、コードだけ紹介します。

# 構成

特に難しいことはしていないです。
– ジャーナル

元記事を表示

Pythonモジュールの基本

# モジュール、パッケージ、ライブラリ
### モジュール
関数や、クラスをコードで取り入れることができる定義や文が入ったファイル(スクリプトファイル、`.py`がついたファイル一つ一つ)

### パッケージ
複数のモジュールがまとまったもの
・__int__.pyという名前のファイルを持つ
・__path__属性を持つ

### ライブラリ
モジュールとパッケージを集めたもの

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3389633/ad90f55a-c55a-717e-2460-54a2c0765c82.png)

# ・import ・from ・asの使い方

### import

**calc.py**
“`
def square(num):
return num**2

def cube(num):
return num***3
“`

“`
>>> import calc
>>> calc.square(2) # モジュール名.関数名
4
`

元記事を表示

【AtCoder】ABC235 D – Multiply and Rotate

# 概要
AtCoderの[ABC235のD](https://atcoder.jp/contests/abc235/tasks/abc235_d)を解いた。解説に書かれているような実装をしたはずだったのにハマったので、解法のメモ。
※以下、本問に関する解法を含みます。

# アプローチ
まず前提となる、この問題を解く上での大まかなアプローチ。
始点が決まっていて、操作の種類も少ない。基本的に定数を乗じるか、数字を文字列とみなしてローテーションするだけなので桁が減ることもない。
1から始めて$N$までの最短路をグラフ上で探索するような問題になりそう。
ただ、増やす方向には無限にいくらでも操作できてしまうし、桁のローテーションにより桁数が減ることがなくても数字としては小さくなる場合があるので、探索中に得られた数字が探している$N$よりも大きくなったからといって探索を止めるわけにはいかない。なので、探索範囲が無限大になってしまう可能性があるように見える。[^1]
そこで、各操作を行う前の状態を復元することも容易であることに注目し、求めたい$N$から逆に辿って、1に行きつくまでの最短回数を求

元記事を表示

【Atcoder】M – Candies【DPまとめコンテスト】

# 問題
https://atcoder.jp/contests/dp/tasks/dp_m

# 結論
dp[i][j] := i人目まででj個ぴったり配る場合の数

“`python
def getInts():
return map(int, input().split())

def getIntsArray():
return [int(x) for x in input().split()]

N, K = getInts()
Capacities = getIntsArray()
MOD = pow(10, 9) + 7

dp = [[0] * (K + 1) for _ in range(N + 1)]
dp[0][0] = 1
for i in range(1, N + 1):
cumsum = [0] * (K + 1)
cumsum[0] = dp[i – 1][0]
for k in range(1, K + 1):
cumsum[k] = cumsum[k – 1] + dp[i – 1][k]

元記事を表示

OTHERカテゴリの最新記事