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

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

PythonでExcelグラフを出力したのに最後のデータが反映されない問題を解決しました

## PythonのExcelグラフはめちゃめちゃ癖が強かったというお話
私は毎年読書の記録をスプレッドシートでつけています。

年末には集計して読了数、購入媒体、ジャンルなどをグラフ出力しているのですが、Pythonでグラフのひな形を書いておいて出力したら楽かな?と思い立ち、PythonのExcelグラフ出力を試みてみました。

とりあえずラフにデータを書き込んで出力させてみたのですが、どういうわけか3つ項目があるうちの2項目までしかグラフに反映されず詰まってしまいました。

#### テスト用にラフに作ったExcelの元データ(2024read.xlsx)
![xl01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2984316/528c0b35-1e51-b07f-64df-d8b59e3ac6d6.jpeg)

#### パイチャートを出力させるために書いたコード
※openpyxlライブラリをインストールする必要があります

“`python
import openpyxl
from op

元記事を表示

滑らかなNRZ信号の作成方法

現実に近い信号を作成するために、NRZ(Non Return to Zero)信号の1シンボルの信号を表す基本パルスを作成します。その関数を式に示します。このような式を用いることで、立ち上がりと立下りが滑らかな現実的な信号を作成することが出来ます。
“`math
F(t)=1/2(tanh(t/A) -tanh((t-T)/A)
“`
このとき、Tは1シンボルあたりの時間幅、Aはシンボルの立ち上がりの傾きを定める定数、tは時間を表しています。青色がtanh (t/A) 、赤色がtanh (t-T/A) 、黒色が青色と赤色の信号の差です。

“`python
import numpy as np
import matplotlib.pyplot as plt
import math

def main():
######################パラメータ######################
N = 2**10 #データ点数
syps = 28e9 #シンボル速度 baud
T = 1/sy

元記事を表示

Windows11でPython環境の自動構築

Pythonで作成したアプリを社内で配布したいとき、exe化するのが最も手っ取り早いと思いますが、やんごとなき事情によりPythonのファイルをそのまま配布したい時があります。

その場合、使うPCでPythonの環境構築をしてもらう必要がありますが、コマンドを1行見せただけで蕁麻疹が出てしまう人には非常にハードルが高いです。

そこで、Pythonの環境を自動構築するバッチファイルを作成してみたので、ここにメモしておきたいと思います。もう少しスマートな方法をご存じの方いましたら、アドバイスいただけると幸いです。

なお、デバッグは`Windowsサンドボックス`で行いました。Windowsの環境を汚さずに試行できるのでお勧めです。使い方はこのサイトを参考にしています。

https://dekiru.net/article/18773/

## 前提条件

– Windows11
– `winget`などの便利なツールがインストールされていない
– Pythonもインストールされていない
– バッチファイル1つの読み込みで設定完了させる

## 構成

今回は一つのフォルダの中に以下

元記事を表示

オブジェクト指向プログラミング環境をPythonに自作する

# オブジェクトシステムを作ろう!!

 ある日、Xを見ていると、[Lispとオブジェクトシステム](https://zenn.dev/g000001/books/c44b6336b43b4f)という面白いドキュメントを見つけました。
 どういう文章かというと、Lisp言語に対して、オブジェクト指向の機能を実装しようと、過去にはいろいろな方式が開発されていました。そのLispにおけるオブジェクト指向の方言を博物学的にまとめた記事となっています。今のオブジェクト指向プログラミング言語では、概ねクラスを定義し、それをnewしてインスタンスを生成する。というのがセオリーだと思いますが、黎明期のオブジェクト指向においては、用語の定義や、そもそも実装方式が洗練されておらず、少しずつ毛色の違う形の実装になっています。

例えば、[CommonLispの場合](https://zenn.dev/g000001/books/c44b6336b43b4f/viewer/b3fc32)を見てみると、

“`Lisp
(defclass bank-account ()
((dollars :initf

元記事を表示

PythonのLEGBとは何ですか? 説明しました。

Python スコープの概念は、通常、LEGB ルールとして知られるルールを使用して表現されます。 LEGB の頭字語は、ローカル、エンクロージング、グローバル、および組み込みスコープを表します。

LEGB は、Python の 4 つのスコープ (ローカル、エンクロージング、グローバル、ビルトイン) を表す頭字語です。 これらのスコープは、Python がコード ブロック内で変数を見つけたときに変数を検索する順序を決定します。

注: Python は関数のローカル コード ブロック内の変数を探し始めます。そこに変数が存在しない場合は、Enclosed ブロックを探し始めます。つまり、その内部関数が外部関数に囲まれているかどうかを意味します。 そうであれば、外側の関数コード ブロックを調べます。囲まれたコード ブロックでその変数が見つからない場合、Python はグローバル空間で検索を開始します。つまり、どの関数の内側にもない変数を意味します。 これはすべての関数の外側で定義されます。 それがグローバル変数です。 それがグローバル空間にない場合、Python は組み込み空間で検索し

元記事を表示

PythonでDynamoDBからのクエリ結果を処理する場合の便利集(内包表記、無名関数によるソート)

# はじめに
DynamoDBに入ったデータをboto3のqueryすると、こんな感じでItemsにプロパティが格納されます。

“`
[
{
“id”: “id_01”,
“val”: 10,
“test”: “test_72095”
},
{
“id”: “id_02”,
“val”: 20,
“test”: “test_64051”
},
{
“id”: “id_03”,
“val”: 30,
“test”: “test_84762”
}
]
“`

いわゆる**辞書のリスト**と呼ばれる形式ですが、以下の場合は割と処理が面倒になります。
個人的には“`pytest“`などの試験時に処理したいケースが多いです。

* 辞書のリストから特定の条件に当てはまる辞書(オブジェクト)を取り出したい
* 例:タイムスタンプに対して期限を超えたオブジェクトだけを取り出す
* 辞書のリストを特定のキーごとに並べ替える
* 例:オブジェクトの特定のキーで並び替え、“`pyte

元記事を表示

Pythonで「複数の文字列のいずれかにマッチするパターンを記述する」の動作を確認してみた

# 概要

Pythonで「複数の文字列のいずれかにマッチするパターンを記述する」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/python/regex/index14.html

# 実装

以下のファイルを作成しました。
“`sample.py
import re
pattern = re.compile(r’Sunday|Sun|sunday’)
print(bool(pattern.search(‘Today is Sunday’)))
print(bool(pattern.search(‘Sunflowers are in bloom’)))
print(bool(pattern.search(‘SUNDAY MORNING’)))

import re
pattern = re.compile(r’\b(Red|red)\b’)
print(bool(pattern.search(‘Red Rose’)))
print(bool(pattern.search(‘reduce the workload’)))

元記事を表示

ABC346回答メモ

# 0.はじめに
 なかなかバラエティに富んだ問題がそろってました。
BにてこずったりDに絶望しつつ、Eがなんとか解けたため
レートはなんとかプラス+15と増えました。

# 1.A – Adjacent Product
 小手調べ的な問題。
回答用のリストBを用意し、リストA内の隣接した数字を掛けたものを
Bに格納して表示するだけでACでした。

 https://atcoder.jp/contests/abc346/submissions/51545214

# 2.B – Piano
 めちゃくちゃてこずり、後回しにした上に考察が甘く
WAを3連発して時間を食われました。
【考え方】
 1.配列WL(鍵盤の白部分を1とした列[1,0,1,0,1,1,0,1,0,1,0,1]の繰返し)を用意
 2.配列BL(鍵盤の黒部分を1とした列[0,1,0,1,0,0,1,0,1,0,1,0]の繰返し)を用意
 3.変数WSを用意しWLを先頭から足していく、その際、BLも同じ位置分BSに足していく
 4.WSが入力Wと同じときのBSの値がBと同じなら、Yesを出力して終

元記事を表示

ラズパイ5 2023年10月更新 bookworm ⑧ リベンジ pythonでグラフィック・ディスプレイを利用

第3回の記事
  [ラズパイ5 2023年10月更新 bookworm ③ pipが使えない! pythonでグラフィック・ディスプレイを利用](https://qiita.com/jamjam/items/f96c041d9c10d229af9f)
では、グラフィック・ディスプレイAdafruit 2.0″ 320×240 Color IPS TFT Displayを、仮想環境で使うことができませんでした。
 ここでは、力ずくで、動かします。

### 仮想環境に入る

 envtftという仮想環境を作り、入ります。

“`shell
yoshi@ras05:~ $ python -m venv envtft
yoshi@ras05:~ $ source envtft/bin/activate
(envtft) yoshi@ras05:~ $
“`

 ライブラリ(モジュール)は空っぽです。
“`shell
(envtft) yoshi@ras05:~ $ pip list
Package Version
———- ——-
pip

元記事を表示

DjangoでValueObjectを使いたい

# はじめに
以前、:point_down:こんな記事を書きました。
このクラスをDjangoでいい感じに使用できないかを検討したところ、
いい方法を見つけたのでこちらに残しておきます。

https://qiita.com/team7_403_poppin/items/1899c4a2dd0fccb11eed

# 何も考えずMoneyクラスを使う場合
私含め、多くの方は以下のようになるのではないでしょうか。
この場合だと、いちいちWalletモデルのamountをMoneyクラスに詰め替えなければいけないため、だいぶ面倒だと思います。

元記事を表示

ABC346をPythonで解いてみたよ。(A~E問題)

[AtCoder Beginners Contest 346 (ABC346)](https://atcoder.jp/contests/abc346) をPythonで解きました。
見やすいコードを書く練習も兼ねてます。

TwitterとPayPayリンクをまとめたリトリンを下に貼ってあります。
Twitterのフォローお待ちしてます!(DMでなにか一言いただけるとたすかります…!)
この記事が役に立ったなと思ったら、PayPayのご支援もよろしくお願いします┏○ペコッ

https://lit.link/mer6177999

# A – Adjacent Product

## 問題
長さ $N$ の数列 $A=(A_1, A_2, \cdots , A_N)$ が与えられます。
$B_i = A_i \times A_{i+1}$ を満たす長さ $N-1$ の数列 $B$ を出力してください。

https://atcoder.jp/contests/abc346/tasks/abc346_a

## 考察
for文をつかって、$B_1, B_2, \cdots ,B_

元記事を表示

[Python] matplotlib 可愛いフォントで日本語化

![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682370/b61ad5a1-0bf8-0f15-d604-bc9b35d55ce6.png)

## 概要

– **Python 3.12以降** `japanize_matplotlib` にエラーが発生し動作しない
– 原因を調べて今後 `matplotlib` を日本語表示できるよう解決策をまとめる
– せっかくなのでかわいい日本語のフォントで表示する (最後におすすめのフリーフォントDLサイト記載)

## 問題点

– `japanize_matplotlib` を `pip install` して利用しようとしたが `distutils` ライブラリが見つからないというエラーが発生した
– `distutils` がPython3.12以降、削除されたので、ファイル内の `japanize_matplotlib` は動作しない

## 対処法

### (1) `matplotlib-fontja` を使う方法

元記事を表示

TwitterBOTを無料でやる方法?PythonでTwitterアカウントを動かそう!【Python Twitter ボット Twikit】

## 最初に
この記事は、**Pythonやpipのインストール等については既に済んでいる前提**で書いています。
Pythonやpip等のインストールにつきましては、他記事を参考にしてください

全体的に中級者向けの記事になっています。
ご理解いただけますと幸いです。

**※この記事はTwitterのアカウントをボットのように機能させるための記事です。ボット自体を無料にするものではありません**

## 1: ライブラリインストール
まずライブラリをインストールしましょう
“`console
$ pip install twikit
“`

## 2: アカウントを用意する
まず[こちら](https://twitter.com/i/flow/signup)にアクセスして、Twitterアカウントを作成しましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2676619/9b32c12e-99d7-9c46-df1a-fd715954f0b8.png)

この時ユーザー名、パ

元記事を表示

AtCoder Unit Test が新しくなりました!

AtCoder の問題ページからユニットテストを生成するブラウザ拡張機能 “AtCoder Unit Test” を大幅リニューアル!便利な新機能をいろいろ実装しました!

* **テストコードのテンプレートが編集できるようになりました。**
* **テストコードの生成方法が変更になりました。**
* Go, Ruby のテストコードを生成できるようになりました。
* (Python) テストコードを含んだまま提出できるようになりました。 ([例](https://atcoder.jp/contests/abc341/submissions/51385551))
* (Java, Kotlin) テストライブラリが JUnit5 に変更になりました。

ダウンロードは ↓ から。ぜひご利用ください!!!

* [AtCoder Unit Test – Chrome ウェブストア](https://chromewebstore.google.com/detail/atcoder-unit-test/lmahhninbclefepjbcdfbcjnancipfmi?hl=ja&auth

元記事を表示

自分だけのPythonのバージョン管理ツール

# はじめに
複数のバージョンのPythonをインストールしています。
あのリポジトリを動かすのにはこのPythonの3.9、このリポジトリは3.11と使い分けるとき、以前はanacondaや、conda、pyenvなどを使っていました。しかし、特にanacondaやcondaは複数の環境管理が難しくて訳わからなくなりがちだし、容量もめちゃくちゃ食う。正直、嫌。

何で初心者向けの本はみんな「anaconda〜!」なんだろ?

で、いつもvenvで仮想環境を作っているのですが、毎回bashの設定ファイルである`.bash_profile`に記載されてる内容を入れ替えることでPythonのバージョン変更に対処してました。
ま、最後にインストールしたPythonが使われることに気付いたから、こんな面倒なことをしてたんですけどね。繰り返しますが、とにかく面倒。

# やりたいこと
condaや、pyenvの様にPythonのバージョンを使い分けたい!

# きっかけ
AzureのAI Searchでやりたいことがあっていろいろ試してたんですがなかなか実現できず、意気消沈。気分転換にLin

元記事を表示

ABC346をPythonで(A~E)

ユニークビジョンプログラミングコンテスト2024 春(AtCoder Beginner Contest 346)の解答等のまとめ

https://atcoder.jp/contests/abc346

# A問題
問題文通りにfor文ループさせる
“`python:A
input()
a = list(map(int, input().split()))

print(*[a_i * a_j for a_i, a_j in zip(a, a[1:])])
“`
# B問題
計算して求めるともできるが、可能性があるぐらいだけの数Sを連結させて$w+b$の幅を確認すればいい
“`python:B
s = “wbwbwwbwbwbw”

w, b = map(int, input().split())

s = s * (w // 7 + 2)

for i in range(len(s) – w – b):
t = s[i:i + w + b]
if t.count(“w”) == w and t.count(“b”) == b:
exit(prin

元記事を表示

Streamlitのcolumn_configにあるselectboxを使う

# はじめに
現在、とある件でGUIを使った機械学習ツールの開発をしています。
その過程で初めてStreamlitのcolumn_configを触ったので、その中のselectboxを実際のコードを交えつつここに書こうかと思います。

# そもそもcolumn_configとは?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/456646/18b902f9-42e6-825b-543f-5d0e990dc7de.png)
(※ [Streamlitのドキュメント](https://docs.streamlit.io/library/api-reference/data/st.column_config)から引用)

データフレームの中にインプット系のウィジットを入れたり、画像やグラフなども挿入できる便利な機能です。
公式のドキュメントにも使用例が豊富なので実際に見に行くと想像しやすいと思います。

# 今回の使用例
今回は、ユーザが自由に入力したデータを機械学習モデルに挿入しPredic

元記事を表示

Cloud Automation Certification Online Training | Python and Terraform

what is Infrastructure as Code (IaC)? | Cloud Automation
Infrastructure as Code (IaC) in the context of cloud automation refers to the practice of managing cloud infrastructure using cod![uploading…0]()
e. Cloud automation involves the use of tools, scripts, and processes to automate the provisioning, configuration, management, and deployment. When IaC is combined with cloud automation, it allows organizations to fully leverage the benefits of cloud computing while also ensuring that their inf

元記事を表示

DownloadCompleteDBLogFile を用いて RDS からログをダウンロードする (Python)

こんにちは。インサイトテクノロジーの松尾です!

本投稿では DownloadCompleteDBLogFile を用いて RDS からログをダウンロードする方法を紹介します!

## はじめに

以前所属する会社のサイトで以下のような記事を書きました。

https://www.insight-tec.com/tech-blog/aws/20211216_ec2/

アクセスキーを明示的に指定せずに「ロールが設定された EC2 インスタンスで DownloadCompleteDBLogFile を用いて RDS からログをダウンロードする」ということを目的にして書きましたが、実はロールが設定されているEC2でなくても、`~/.aws/credentials` が設定されている環境であれば、ローカル環境でも動作します。

今回のQiitaへの投稿を機にgithubにもソースをあげておいたので是非ご活用ください。

https://github.com/takumats/download-rds-log-files

## 使い方

### 準備

gitからcloneしてきたあと以下の

元記事を表示

機械学習による株価予測

こんにちは。私がAidemyでデータ分析講座コースを受講いたしました。今回は学んだスキルを活用して、上場企業を株価予測をしてみました。

目次
1.目的
2. データセット
3. 機械学習モデル
4. 予測モデルの構築と検証
5. 結果
6. 反省

1.目的
上場会社の株価データセットを用いて、株価予測するLSTMの機械学習モデルを構築すること。

2.データセット
Yahoo Financeである上場企業Lasertec(6920.T)の時列データ

3.機械学習モデル
LSTM(Long Short-Term Memory: ニューラルネットワークの一種で、長期的な依存関係を学習することができる特徴ある。

4.予測モデルの構築と検証
4-1. ライブラリのインポート
“`ruby:
import keras
import pandas as pd
from datetime import datetime
import numpy as np
from matplotlib import style
import matplotlib.pyplot as plt
impor

元記事を表示

OTHERカテゴリの最新記事