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

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

EC2 AmazonLinux2 LAMPJ (bash)

vi Amazon2LAMPJ.sh

“`bash
#git hub
sudo yum -y install git

#古いphpとmriadbを削除、その後にアップデート
sudo yum remove php*
sudo yum remove mariadb-libs
sudo rm -rf /var/lib/mysql

# MATEパッケージをインストールします。
sudo amazon-linux-extras install mate-desktop1.x

# MATE をデフォルトのデスクトップとして定義します。またすべてのユーザーに対して MATE を定義します。
sudo bash -c ‘echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop’

# TigerVNC をインストールします。
sudo yum install tigervnc-server

#Extraでインストール
sudo amazon-linux-extras enable php7.4 -y
sudo yum cl

元記事を表示

diffusers 0.7.0.dev0をColabで試す

diffusersの不具合が次のリリースで解消するか検証しました。

https://qiita.com/cress_cc/items/e23e822bf17b08d04b23

有志の方が修正してくれたものの、メインブランチにマージされていないようだったので、マージ元のものをチェックアウトします。

“`
#!git clone https://github.com/huggingface/diffusers.git
!git clone https://github.com/hadaev8/diffusers.git
%cd diffusers
!git fetch
!git checkout fix-negative-promt
!pip install .
“`

問題なさそうなので、あとは正式リリース待ち。

元記事を表示

ABC275回答メモ

0.はじめに
 A問題からなんか歯ごたえがあり、それでもBまではすんなり解けましたが
 Cが解けず時間切れ、Dもちんぷんかんぷんでした。
 ビギナーとは・・・。
 ただ、レイティングは1しか下がらなかったので、他の人も
 難しかったんだろうなと思いました。
 C,Dは試験の翌日解説等参考にしながらなんとか解けました。

1. A – Find Takahashi
 Aから配列を使う問題か・・・と思いつつさっと実装しテスト。
 したら、最も高い橋の高さではなく何本目が一番高いかという
 問題であることに気づきなかなか難しいな!となりました。
 とはいえ、まぁ、最高値を更新した番号を覚えて置き
 表示することで解決。

 https://atcoder.jp/contests/abc275/submissions/36037869

2. B – ABC-DEF
 Aに比べたら簡単だけど、Python以外だと型とかめんどいのかなと思いつつ
 ササっと回答

 https://atcoder.jp/contests/abc275/submissions/36041382

3. C

元記事を表示

ABC275参戦記(A-F)

AtCoder Beginner Contest 275の参戦記です。
個人的な精進の記録として書きます。
初の6完だったので嬉しくて書きました。

https://atcoder.jp/contests/abc275

# A – Find Takahashi
https://atcoder.jp/contests/abc275/tasks/abc275_a

**考察**
Hの最大値のindexを取ればOK

**コード**

ソースコードを表示(折りたたみ)

“`python
def main():
N = int(input())
H = list(map(int, input().split()))
idx = H.index(max(H))
print(idx + 1)
“`

# B – ABC-DEF
https://atcoder.jp/contests/abc275/tasks/abc275_b

**考察**
C++だったら毎

元記事を表示

Pythonのメンバ変数を別のファイルから変更する。

### やったこと

非常に初歩的なことですが、Pythonのクラスのメンバ変数を外から変更する方法について備忘録としてまとめました。

### コード

まず、`test1.py`にクラスの情報を記述します。

~~~python: test1.py
class TestClass01:
#メンバ変数
value1 = 50
~~~

そしてそのメンバ変数である`value1`を`test2.py`から変更してみます。

~~~python: test2.py
import test1

class1 = test1.TestClass01()
print(class1.value1)

test1.TestClass01.value1 = 40
class2 = test1.TestClass01()
print(class2.value1)
print(class1.value1)
~~~

`test1.TestClass01.value1` というような形で直にメンバ変数にアクセスしています。
### 実行結果
~~~
50
40
40
~~~

このようにな

元記事を表示

【AWS】作成から一定期間経過したSnapshotを自動削除する仕組みを導入してみた

# 前提
メンテナンス時など、バックアップを取る際にスナップショットを手動で取得している。

# 課題
メンテナンスが問題なく完了した後、不必要になったスナップショットの削除を行う運用ルールがなく、無駄なコストが発生していた。

# 目的
スナップショット作成から一定期間経過したものは削除する仕組みをLambdaに関数登録し、トリガーとしてCloudWatch Eventsで日時実行する。
原則AMIに登録されているスナップショットの削除は行わない。

# ソース
~~~powershell:auto_delete_snapshot.py
import boto3
from datetime import datetime, timedelta
import dateutil.tz

########## 変数定義 ##########
# AWSアカウントID
acountId = “xxxxxxxxxx”
# 何日前以前を削除対象とするか指定 default=7
days = 7

########## 削除処理 ##########
def lambda_handler(even

元記事を表示

AWS CDK初心者が爆速でLambda Layerにpythonライブラリを入れた裏技

# はじめに
AWS CDKについて初心者用にまとめた記事はこちら

https://qiita.com/besmero628/items/dbab08287a8bc2d1893a

# 概要
最近AWSCDKを使用してpythonベースのlambdaを書いたのですが、pandasやらboto3やら使用する必要がありました。

もちろん素のpythonには入っていないライブラリなのでlambdaにパッケージごと入れる必要があるのですが、いちいちzipで固めて入れるのはめんどくさい。。。

AWSCDKをpythonで書き進めている記事もネットには少なくどうしたものかと思っていたのですが、色々調べていくうちに先人の知恵を借りられそうだったのでメモしておきます。

# 手順
:::note info
cdk languageはpythonを選択しています。
:::
## ① lambdaの作成
手始めにlambdaを作成します。
“`python:stack.py
from aws_cdk import(
aws_lambda as _lambda
Stack
)

class

元記事を表示

SecretsManagerを使ってAWSのベストプラクティスに沿ったシークレット管理をしたい

# はじめに
現在、下記のTwitter botを運用しています、これはTwitterのトレンド情報を定期的に取得、集計しその日最も呟かれていたトレンド情報をランキングにするものです。

プログラムはPythonを使っておりAWS lambdaにデプロイし実行しています。
構成図はこんな感じ。
![trend構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631123/7cb6759e-1f4d-12a6-bdf3-8aad260d0855.png)

これは私がAWS初学者の頃に学習の過程で作ったもので色々とイケていない箇所がありAWSのベストプラクティスに沿った構成に改良したいというのが趣旨です。
改良後はこのようなイメージになります。
![構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631123/b11d1911-ef65-5180-

元記事を表示

diffusers 0.6.0でnegative_promptをlistで渡すと動かない問題

なんかバグっているみたいです。

https://github.com/huggingface/diffusers/issues/779

“`python:
pipe = StableDiffusionPipeline.from_pretrained(
model_id,
torch_dtype=torch.float16,
revision=’fp16′
).to(device)

prompt = ‘apple’
nprompt = ‘red’

# 動く
images = pipe(prompt, negative_prompt=nprompt, guidance_scale=7.5)[‘images’]

# これも動く
images = pipe([prompt], negative_prompt=[nprompt], guidance_scale=7.5)[‘images’]

# 実はこれも動く
images = pipe([prompt] * 1, negative_prompt=[nprompt] * 1, guidance_scale=7

元記事を表示

きつねダンスが流行ってるのでFoxDot始めてみた

# 流行っているきつねダンスに乗じたい
北海道日本ハムファイターズの「きつねダンス」が今とても流行っています。
Ylvisが歌う「The Fox」に合わせて、チアダンサーが踊るというものです。

**きつね × 音楽**
ということで流行に乗じてFoxDotを始めてみようというコーナーです。

> ちなみに私の音楽歴はリコーダーと鍵盤ハーモニカです。
> ド素人ということをご理解ください。

# FoxDot
Pythonに近しい?書き方で音楽を奏でることができるものです。
ライブコーディング、Algorave(アルゴレイヴ)と呼ばれるものの一種で、
即興でリズムを作り、音楽を奏でてフロアを沸かすという最高にロックなプログラミングです。

>以下の動画が雰囲気を掴むのに良いかもしれません。
[Live Coding Pop Music with Python and SuperCollider](https://www.youtube.com/watch?v=xXNB1BbKY8A&t=517s)
[Live coding music with FoxDot | Python | A

元記事を表示

直せなくなったラズパイの解像度を変更する

# 背景
Raspberry pieの画面を、他のWindows端末からVNC viewerで操作していた。
VNC Viewerの解像度を最低まで下げると、画面が見切れてディスプレイ解像度を選択できず、元に戻せなくなった。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/475723/62e9bcd2-6206-c806-dcb5-1bedd5722c68.png)

# 解決方法
### コマンドプロンプトからsshで接続する
username:pie
ip address:192.168.10.100
の場合、下記でアクセスできる。
“`
ssh pie@192.168.10.100
“`
もし、ip addressが分からなければ、下記コマンドでLAN上のip addressが表示されるので、それらしいip addressに接続する。
“`
arp -a
“`

### 画面の設定
下記の、救いのコマンドを実行。
“`
sudo raspi-config
“`
設定画面が立ち

元記事を表示

Windows/Mac/Linux対応のタイトル設定関数を作る

タイトルバーに表示する文字列を設定する関数です。
Windowsならコマンドプロンプト・PowerShell、Mac・Linuxならターミナル(端末)のウインドウ上部のタイトルバーに表示されている文字列をいじります。

私の調べる限りだとタイトルを設定する関数がおそらく存在しないっぽいので、自分で作ってやろうって感じです。

## 環境
– Python – すべて3.10.xに統一

今回は以下の4つのOSで動作検証を行いました。

– Windows – Windows11 Pro 22H2
– Mac – macOS Ventura 13.0
– Linux – Ubuntu 22.04.1 LTS / Fedora Linux 36

## ソースコード
“`python:Title.py
import os

def title(text):
# OSの種類を判別する
# Windows
if os.name == ‘nt’:
os.system(f’title {text}’)
# Mac / Linux
elif os.name == ‘

元記事を表示

Excel業務(無駄)を自動化したい part5 表作り(応用編)

# はじめに
このサイトでは、社会人なりたての私が無駄を省くための戦いをまとめています。
今回のテーマは、pythonのライブラリを用いて、Excelをいじっていきます。
ライブラリ名は、openpyxlです。

# 実行環境
Windows10
Python 3.10.5

# openpyxlとは?
openpyxlはExcelファイル(`.xlsx`)を読み書きできるツールです。
公式ドキュメント [openpyxl/openpyxl-Bitbucket](https://bitbucket.org/openpyxl/openpyxl/src/master/)
詳しくは[こちら!](https://note.nkmk.me/python-openpyxl-usage/)
**今回はExcelファイル内のデータを読み込んで、分析するのではなく、
代入したいだけなので、pandasではなくopenpyxlを使用しています!**

# 特殊な形の表の作成
今回作りたいのは、[セルの結合と結合解除(公式)](https://support.microsoft.com/ja-jp/offi

元記事を表示

TensorFlow Decision Forestsを使ってみた

## はじめに

 少し前にKaggleで見かけたTensorFlow Decision ForestsなるTensorFlowライブラリが気になったので、ちょっと調べて使ってみました。記事書いてる人も少なそうだったので、投稿してみます。

https://www.tensorflow.org/decision_forests

## 実行環境

 どうやらまだWindows、Macは未対応みたいなので、ここではgoogle Colab を使用します。データセットは私の過去の記事でも使っているcikit-learnデータセットの乳がん患者を使用したいと思います。

## インストール

 TensorFlow Decision Forestsのインストール

“`python
!pip install tensorflow_decision_forests
“`

## インポート

 使用するライブラリはnumpy, pandas, データセットに scikit-learn, そして TensorFlow Decision Forestsです。

“`python
import

元記事を表示

tkinterとpyqtの比較

## tkinterとは
**tkinter**とは pythonの標準モジュールで
tcl/tkというプログラミング言語の  
GUIツールの**tk**を pythonで使えるようにしたものです

## pyqtとは
**pyqt**とは pipで追加できるモジュールで
**qt**というc++で使用されている GUI
ツールを pythonで使えるようにしたものです

## それぞれのメリット デメリット

#### tkinterのメリット
* インストール不要
* コードが短い
* 商用利用可
#### tkinterのデメリット
* **デザインがダサい**
* 機能が少ない

#### pyqtのメリット
* 多機能
* デザインがいい

#### pyqtのデメリット
* **商用利用不可(有料ライセンス)**
商用利用じゃなくてもライセンスが厳しい
(GPLライセンス)

## まとめ
商用利用するなら
   **tkinter**
デザイン気にするなら
   **pyqt**
という感じです

元記事を表示

tkinterのWindow表示

## tkinterのimport
“`py
import tkinter as tk
“`
:::message
as tk とは tkinterを略してtkと呼ぶ  
ということを定義するものです。
:::

———————–
## Window表示
“`
Windowの名前 = tk.Tk()
“`
とすることでWindowを作れます。
##### 例  
“`py
import tkinter as tk
root = tk.Tk()
“`
———————-
## Windowにタイトルを設定
“`
Window名.title(タイトル名)
“`
のようにするとWindowのタイトルを設定できます。
##### 例
“`py
import tkinter as tk
root = tk.Tk()
root.title(“ここにタイトルを入力”)
“`
—————
## Windowのサイズ指定
“`
Window名.geometry(“横x縦”)
“`
とするとWi

元記事を表示

python tkinterのボタンを使う

## 準備
まず初めに**tkinter**
をimportします
“`py
import tkinter as tk
“`
次にbuttonを表示するためのWindowを作成します
“`py
import tkinter as tk
root = tk.Tk()
“`
これで準備は終了です

## コードを書こう!
ではコードを書いていこうと思います
ボタンを作るには
“`
ボタン名 = tk.Button(表示数Window名, text=”表示するテキスト, command = ボタンが押されたとき実行する関数名).pack
“`
とすればボタンを作成することができます
#### 例
“`py
import tkinter as tk

def ok():
print(“OK!”)

root = tk.Tk()
button = tk.Button(root, text =”OK”, command = ok).pack()
“`
:::note warn
buttonの最後に”.pack“とありますが
pack以外にも gri

元記事を表示

Pythonで7種のソートを実装して、性能を比較してみた

ソートアルゴリズムの説明を読んで「読んだだけでは覚えられないな、、」と思ったので、
代表的なアルゴリズム7種を実装し、実際に動かして性能を比較してみた
Pythonが書きやすそうな気がしたので、Pythonで書いた

# 目次
– [ソースコード](#ソースコード)
– 各アルゴリズムの実装
– [バブルソート](#バブルソート)
– [選択ソート](#選択ソート)
– [挿入ソート](#挿入ソート)
– [シェルソート](#シェルソート)
– [クイックソート](#クイックソート)
– [ヒープソート](#ヒープソート)
– [マージソート](#マージソート)
– 性能比較
– [実行時間を比較してみた](#実行時間を比較してみた)
– [おまけ](#おまけ)
– [参考にしたページ](#参考にしたページ)

# ソースコード
https://github.com/Kaito-Ozaki/sort-algorithm

# [バブルソート](https://ja.wikipedia.org/wiki/%E3%83%90%

元記事を表示

【Python】妻に真夜中のダンスレッスン予約を強要されたので、Webスクレイピングで回避を試みようとしている話 (10.seleniumでログイン)

前回は、「9.会員・予約情報を読み込む。」について投稿しました。前々回でレッスン予約サイトを開いて閉じるところまでできているので、今回は次の段階として、IDとパスワードを使用して予約サイトにログインするところまでコーディングしたいと思います。

——————————————————————————————-
# ブラウザの検証ツールを使用して要素を特定する。
会員番号、パウワードを入力しログインボタンをクリックするには、それぞれの HTMLタグ要素を特定するキーとなる情報が何なのかを確認する必要があります。それらは検証ツールを使用することで確認できます。

ログインページを表示した状態で

元記事を表示

東京証券取引所日報の株式相場表のPDFをCSVに変換

https://www.jpx.co.jp/markets/statistics-equities/daily/index.html

株式相場表の最新PDFをCSVに変換

列数が違うので立会市場 普通取引のみ

売買単位があるもののみ抽出(アルファベット表記はなし)

“`python
# スクレイピング

import pathlib
import re
from urllib.parse import urljoin

import requests
from bs4 import BeautifulSoup

headers = {
“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko”
}

def fetch_soup(url, parser=”html.parser”):

r = requests.get(url, headers=headers)
r.raise_for_status()

soup = Beauti

元記事を表示

OTHERカテゴリの最新記事