- 0.0.1. glob関数が実装されないときの対処法(頻度極少)
- 0.0.2. Python 辞書の None 判定
- 0.0.3. 【環境構築】MacのC++でstdc++.hやちょっとだけ他言語と比較してみる
- 0.0.4. Watchdogを用いたファイル更新について
- 0.0.5. 【matplotlib】plotをサクッとカスタマイズする
- 0.0.6. Pythonで「集合の長さ(要素数)を取得する」の動作を確認してみた
- 0.0.7. 型による条件分岐みたいなことをメソッドでやろうとしたら mypy にエラーを出された
- 0.0.8. カリフォルニアの住宅価格のデータを使用して価格予測を行いました
- 0.0.9. 相関ネットワークを比較する
- 0.0.10. ABC330(A~E)をPythonで解く
- 0.0.11. Python製のシンプルなゲーム開発用フレームワークを作った
- 0.0.12. ChatGPTとPythonで学ぶ torchvision:画像分類編
- 0.0.13. ユニットテストするならフレームワーク使おう (Python unittest)
- 0.0.14. Gmail × Python メールの自動送信プログラム
- 1. はじめに
- 2. スクリプト
glob関数が実装されないときの対処法(頻度極少)
pythonを使用してExcelの自動処理について勉強している中、
glob関数を使用するときに躓いた箇所があったため、備忘録として残しておく# glob関数とは
ディレクトリに格納されたファイル名を抽出する関数
引数に抽出条件を指定することができる。例
globフォルダ内のファイル
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2528652/308c922f-da38-f969-b8df-818f847b1b52.png)この中からExcelファイル(拡張子”.xlsx”)のみ抽出したいとすると、以下コードを実行することで実行結果の通り抽出することができる。
※抽出条件に記載されている”*”は、正規表現で「直前の1文字の0回以上の繰り返し」を表現している。“`python:glob_test.py
import glob
files=glob.glob(“*.xlsx”)
print(files)
“`“`batch:実行結果
[‘age_year.xlsx
Python 辞書の None 判定
Pythonにおいて、辞書(dictionary)は非常に便利なデータ構造の一つです。しかし、時折、特定のキーが存在しない場合や値がNoneであるかどうかを確認する必要があります。この記事では、Pythonにおける辞書のNone判定に焦点を当て、その方法について探究してみましょう。
### 辞書とは
まず初めに、Pythonの辞書がどのようなものかを確認しましょう。辞書はキーと値のペアで構成され、キーを使用して値にアクセスできるデータ構造です。以下は、簡単な辞書の例です。
“`python
my_dict = {‘name’: ‘John’, ‘age’: 25, ‘city’: ‘Tokyo’}
“`### None判定の重要性
プログラムを書いていると、辞書から値を取得する際に特定のキーが存在しない場合があります。また、キーが存在する場合でも、その値がNoneである可能性も考えられます。これらの状況に対処するためには、適切なNone判定が必要です。
### None判定の方法
#### 1. キーの存在を確認する
辞書から値を取得する前に、まずキーが存在するか
【環境構築】MacのC++でstdc++.hやちょっとだけ他言語と比較してみる
## ハマったこと
C++の`bits/stdc++.h`をincludeしたかった。
STLをひとつひとつincludeするのは面倒なので、全部入り神モジュールである`stdc++.h`を入れたい。2つ必要なことがあった。
1️⃣ファイル本体が必要
2️⃣静的解析がエラーを吐く環境はMacでvimです。
### 1️⃣ファイル本体が必要
ようはstdc++.hというファイルが、欲しいincludeを死ぬほど大量にincludeしまくってくれてるファイルということ。
だから、欲しいincludeを全部あらかじめincludeしておいたファイルを、1枚だけincludeすれば楽だよねっていうだけ。とくに魔法みたいなことはしてない。`stdc++.h`はどこにあるか?
gccの最新を入れると一緒についてくる、gccを入れたくない場合は、ネット上に転がっているファイルを取ってくればいい。
または自分で好きにカスタムすればいい(多すぎるincludeを自前で用意したいならの話)“`gccをいれる.sh
brew install gcc
“`“`ここにあるはず.バージ
Watchdogを用いたファイル更新について
# はじめに
私が行った研究において,PythonのWatchdogを用いたフォルダ監視及び,更新イベントについて知ることが出来たので,今回得た知識をまとめました.# Watchdogとは
コンピュータや内部の特定の装置やソフトウェアが正常に稼働しているかを定期的に監視する仕組みのことで,主にファイルの作成・更新・削除を監視することが出来る.
以下のコードでファイルが変更された場合に,def on_modified(self, event):以降のコードが読み込まれる.
“`monitoring.pyによるファイルのファイル変更を検出するまでのコード
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler#wachdogを使用して更新を記録
class DirectoryHandler(FileSystemEventHandler):
def __init__(self, directory_path):
super().__i
【matplotlib】plotをサクッとカスタマイズする
# はじめに
本記事では、**matplotlibで作成したグラフをどう調整するか**について、折れ線グラフを例にご紹介します。今回は基本的な調整(文字の大きさや目盛りの間隔など)を行い、下図の右側のplotを作成します。
![plot_default-custom.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236393/1f108c1e-93f8-4722-fa2c-4267b1b4f8d9.png)
# 環境
– python: 3.12.0
– matplotlib: 3.8.2
– numpy: 1.26.3# スクリプト
## ライブラリのimport
“`python
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
“`## データの準備
plotに使用するデータを作成します。
“`python
np.random
Pythonで「集合の長さ(要素数)を取得する」の動作を確認してみた
# 概要
Pythonで「集合の長さ(要素数)を取得する」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/python/set/index3.html
# 実装
以下のファイルを作成しました。
“`sample.py
colorset = {“Blue”, “Red”, “Green”, “White”, “Black”}
print(“要素数は ” + str(len(colorset)) + ” です。”)
“`以下のコマンドを実行しました。
“`
$ python3 sample.py
要素数は 5 です。
“`# まとめ
何かの役に立てばと。
型による条件分岐みたいなことをメソッドでやろうとしたら mypy にエラーを出された
へぇ〜となったので共有。
## 最初に結論
– “`mypy“` の設定はデフォルト
– 型による条件分岐は “`if isinstance(piyo, Type):“`とすればできる。
– 読みやすくしようと“`if is_eatable(piyo):“`という形にすると mypy にエラーを出される。
– じゃあ、どうする?
– “`isinstance(…“`で満足する
– 記事書き出して気づいたんですが、これでいいですね。コメントを書けばいい。
– “`if is_eatable(piyo) and isinstace(…:“` みたいな書き方
– “`and“`を使えば両辺が True じゃないと進めませんから mypy も満足してくれるようです。
– 意味内容の面から言うと無。同じ if 文を 2 回書いているようなもの。## サンプルコード
“`python:正月.py
class Man:
“””mypy の動作チェッククラス”””
カリフォルニアの住宅価格のデータを使用して価格予測を行いました
# はじめに
皆様初めまして。今回はプログラミングスクールAidemyでデータ分析を学んだ初心者がカリフォルニアの住宅価格の予測を行いました。
住宅価格を題材にしたのは、気になった物件の家賃や値段を調べるのが好きで海外の住宅の値段に興味を持ったからです。環境
Windows10
Python 3.10.12
Google Colaboratory# データの準備
まず初めにライブラリとデータセットをダウンロードします。
“`python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import fetch_california_housing
“`
次にデータを変数に格納し、データの中身を確認します。その後データフレームへ変換します。
“`python
#データを変数に格納
data_housing = fetch_california_housing()#データの中身を確認
print(data_housing.DESC
相関ネットワークを比較する
## はじめに
ネットワークはノードとエッジの集合として表現されます。特に、ノード間の相関係数をエッジとして用いる「**相関ネットワーク**」は幅広い分野で使用されます。
現実的なタスクとして、条件Aと条件Bの相関ネットワークを構築し比較することが考えられます。この際に、どのように相関ネットワークを比較すれば良いのでしょうか?今回は、**1. フィッシャー変換を用いた手法**と**2. パーミュテーション検定**を用いた相関係数の差の明示的な検定について紹介します。
| 項番 | ページ内リンク |
|:—-:|:————-|
| 1 | [1. フィッシャー変換を用いた検定](#1-フィッシャー変換を用いた検定) |
| 2 | [2. パーミュテーション検定](#2-パーミュテーション検定) |## 1. フィッシャー変換を用いた検定
フィッシャー変換は次式のように表すことができます。
“`math
\begin{flalign}
&Z_A(x_i,x_j) = \frac{1}{2} \ln \frac{1 + Cor_A (x_i,x_j)
ABC330(A~E)をPythonで解く
# A: Counting Passes
https://atcoder.jp/contests/abc330/tasks/abc330_a
順番にL点以上を取っているか確認します。
コード
“`python
N, L = map(int, input().split())
A = list(map(int, input().split()))
ans = 0
for i in range(N):
if A[i] >= L:
ans += 1print(ans)
“`# B: Minimize Abs 1
https://atcoder.jp/contests/abc330/tasks/abc330_b
与えられたリストのそれぞれの要素について2つの条件を満たす整数$X_{i}$を求めよとのことなので、条件をそれぞれ見ていきます。
$L \leq X_{i} \leq R$
$L以上R以下であるようなどの整数Yについても |X_{i}-A_{i}|
Python製のシンプルなゲーム開発用フレームワークを作った
## 崩壊しないシステマティックなゲーム開発がしたい
ということで、Python 製のミニマルなゲーム開発用フレームワーク Pigframe を作りました。
![Pigframe](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1419783/064ce5c7-8f76-acdb-f096-e29ff6ee7863.jpeg)https://github.com/passive-radio/pigframe
主には、Pygame, Pyxel などの Python 製のゲーム開発エンジンを使ってゲームを開発したいと思っている、開発を始めた個人開発者・学習者向けになります。
依存している外部ライブラリはないので、自分がゲーム開発で使いたい Pygame, Pyxel などの開発エンジンと併せて使うことが出来ます。
#### ◼ 一体全体なにができるの?
Pigframe は以下のような仕様を持っています。
| 機能 | 対
ChatGPTとPythonで学ぶ torchvision:画像分類編
おはこんばんちわ。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ torchvision」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。
—
### **assistant**:
おはこんばんちわ、よろしくお願いします。今日はtorchvisionについて話しましょう。
まず初めに、torchvisionとは何でしょうか?torchvisionはPyTorchのためのパッケージで、人気のあるデータセット、モデルアーキテクチャ、画像変換のコモンな使用例を提供しています。
それぞれについてもう少し詳しく説明しますね。
1. データセット:
MNIST, CIFAR10, ImageNetなどのような人気のある公開データセットが含まれています。これらのデータセットは深層学習の研究や教育のために頻繁に利用されます。2. モデルアーキテクチャ:
ResNet, VGG, AlexNetなどのような事前トレーニング済みのモデルが利用可能です。これらのモデルは画像分類タスクに広く使われ
ユニットテストするならフレームワーク使おう (Python unittest)
## ※ 注意
これは「ユニットテストはこういうことを書くのがいいよ!」という話ではありません。「フル自作より、フレームワーク使った方が良いよ」という話です。
良いユニットテストのやり方については、別の解説を探してください。
## 背景
(恥ずかしながら、真面目にユニットテストをするようになったのは割と最近のお話。)
テストの習慣化を始めたそのときは、テストフレームワークという言葉は聞いたことあったが、まともに向き合っていなかった。
で、あるとき「いい加減フレームワークの一つくらい触れておこうか・・・」と思い、とりあえず Python 標準のユニットテストフレームワーク `unittest` を使ってみた。
すると、これまで書いていたテストコードより、明らかに書くコード量が減ったではありませんか。なぜ今まで向き合わなかったのか・・・。
というわけで、その感動そのままに、本記事執筆に至りました。
## ユニットテストとは (軽く)
単体テストとも。
単体とは、例えば自作関数 1つとか、プログラムが機能するレベルとして最低規模と考えればヨシ。
テストとは、試験、つま
Gmail × Python メールの自動送信プログラム
はじめに
クライアントからGmailに自動送信されるよう要件定義があったので、そのためのコードを残しておきます。
スクリプト
“`python:title.py
import smtplib
from email.mime.text import MIMEText
from email.header import Headerdef send_email(from_email, to_email, subject, message, smtp_password):
msg = MIMEText(message, ‘plain’, ‘utf-8’)
msg[‘From’] = Header(from_email, ‘utf-8’)
msg[‘To’] = Header(to_email, ‘utf-8’)
msg[‘Subject’] = Header(subject, ‘utf-8’)server = smtplib.SMTP_SSL(‘smtp.gmail.com’, 465)
ser
【Django】便利!Django Debug Toolbarのインストール方法
## はじめに
こんにちは。ryoです。
今回はDjangoをフレームワークとしたWebアプリを開発する際に、開発環境にインストールしておくと何かと便利なDjango Debug Toolbarのインストール方法について解説します。
使用方法は今後別記事でまとめたいと思います。## Django Debug Toolbarとは?
Django Debug ToolbarとはDjango Webアプリケーションをデバッグするのに非常に有用なサードパーティ製のツールです。
ツールをインストールすると開発環境のブラウザにツールバーが表示され、以下の情報を常に確認することができます。
※表示する情報はカスタマイズすることもできます。(後述の補足1を参照)
![20240104100301.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2510920/7334a263-fc8f-5bf0-7ba9-98e780eeffa5.png)– 履歴:リクエ
【Python】アラビア語の単語・文字分割【アラビア語学習用】
# 目的
### 初心者が効率的にアラビア語を学べるようにする
1.好きなアラビア語の文章を持ってくる
2.文章を翻訳する
3.文章を単語に分割(トークナイズ)する
4.さらに好きな単語を選んでアラビア文字に分解する### 解決できる課題
・アラビア語学習の効率化
・単語内における位置によって変形するアラビア文字を識別する# ライブラリ準備
Google Colaboratory上での利用を想定### NLTK
Pythonで自然言語処理を行うためのライブラリNLTK
“`
!pip install nltk # 初回のみimport nltk
from nltk.tokenize import word_tokenize
“`### GoogleTrans
Google翻訳
“`
!pip install googletrans==4.0.0rc1 # 最新(これは毎回必要みたい)from googletrans import Translator
translator = Translator()
“`# アラビア語の文章を準備
“`
# ア
FlaskでPWAを作るための最小実装
PWAとはProgressive Web Appsのことで、アプリストアを通さずに端末のホーム画面にインストールすることができます。
Flaskで作ったサイトをPWA化しよう調べていたところ、ReactやVueの実装例ばかりだったので、FlaskでPWA化するための方法をまとめました。
以下のようなシンプルなサイトをPWA化していきます。
“`app.py
from flask import Flask, render_templateapp = Flask(__name__)
@app.route(‘/’)
def index():
return render_template(‘index.html’)
if __name__ == ‘__main__’:
app.run()
“`“`index.html
Hello World!
Pythonでsshして,コマンドの出力結果をリストに入れる
pythonでサーバーにsshして,入力したLinuxコマンドの出力結果をリストに格納する方法を説明します.pexpectを使用します.
Pythonでsshをする
—————————————
まず,pyファイルを作りpexpectをインポートします.
“`
from pexpect import pxssh
“`次にsshしたいサーバの情報を入力します
“`
# ログイン情報を設定しSSHサーバーにログイン
ssh = pxssh.pxssh()
ssh.login(server=”接続したいSSHサーバーのIP”, username=”SSHサーバー側のユーザー名”, password=”接続したいSSHサーバーのパスワード”)この間に処理を書く
#ログアウト
ssh.logout()
“`
pyフォルダを実行するには,pyフォルダがあるサーバのターミナルで“`
python3 実行したいpyファイル
“`これでssh接続ができます.
コマンドを実行してリストに格納する
———–
直感 Deep Learning 書籍の1.3.2のコードで遭遇したエラー
出版から時間が立っていることとネットワーク環境のためいくつかのエラーが発生した。解決策を備忘録として残しておく。
前提条件
—
– HTTP通信監視下のProxy環境
– Windows10 64bit
– Python3.10.13
– tensoflow 2.15.0(書籍のコード中のkerasはtensorflow.kerasに置換した)エラー その①
—
“`
ImportError: cannot import name ‘np_utils’ from ‘tensorflow.keras.utils’
“`
### 対策:書き方がバージョンに合っていなかったのでコードを変更した。
“`diff_python
– from tensorflow.keras.utils import np_utils
+ from tensorflow.keras.utils import to_categorical
“`
https://stackoverflow.com/questions/45149341/importerror-cannot-import-name
【Python】再帰でフラクタルを描く①(フラクタルツリー)
## 事前準備
本記事はProcessingを使って,フラクタルの画像を生成しています.なので,Processingのインストールが済んでいない方はインストールを行なってください.
Processingのインストールの手順について記事を書いたのでよければそちらからどうぞ.https://qiita.com/PRESENT_Science/items/122c43697bcb5f23a181
## フラクタルツリーを描いてみよう
以下のソースコードをProcessingで実行してみてください.
“`python
def setup():
size(600, 600) #ディスプレイウィンドウのサイズを指定def draw():
background(255) #背景色(255は白)
translate(300, 500)
level = int(map(mouseX, 0, width, 0, 15)) #枝分かれのレベル
y(100, level)def y(sz,level):
if level