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

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

山形大学HPの情報更新を通知してくれるプログラムを作ってみた

# はじめに
こんにちは!
私は、山形大学大学院理工学研究科にて地球科学×データサイエンスの研究をしているしがない院生です。
今回は、私が在籍している山形大学のHPに新着記事があった際にそれを通知してくれるPythonプログラムを作ったので、紹介します。

# 本プログラム作成の動機
弊学では(どこの大学でもそうだと思いますが)、様々な情報がHP上にて公開されます。

例えば、[授業の成績発表の日程](https://www.yamagata-u.ac.jp/jp/information/campus/20240222/)や、[弊学とネッツトヨタ山形株式会社が提携したカーシェアのサービスが開始](https://www.yamagata-u.ac.jp/jp/information/info/20231012/)されたことなど、把握しておきたい様々な情報を得ることができます。
ただ、いくら大事な情報が掲載されるとはいえ、毎日HPを開いて新規記事がないかチェックする…というのは面倒だと思いませんか?

そこで、**いっそHPの新規記事を確認する作業を自動化してしまおう**、というのが

元記事を表示

スイッチトキャパシタの伝達関数

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/f070b580-502a-c303-80e0-62c6abf9e6a1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/09cdc792-53a8-5545-a449-5ce0bff70c90.png)
http://integratedsys.web.fc2.com/other/SC.pdf

“`
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal

# フィルタのパラメータ
C1 = 100e-12 # 100 pF
C2 = 10e-12 # 10 pF

# サンプリング周波数
fs = 1000.0 # サンプリング周波数 [Hz]

# クロール型の伝達関数
num_ca

元記事を表示

PythonでWordの表に画像を挿入または抽出する

表中の画像は、データを視覚的に表現する方法です。Wordの表に関連する画像を含めることで、情報に説得力を持たせ、理解しやすくすることができます。しかし、再利用や編集のために、Wordの表に埋め込まれた画像を抽出する必要がある場合もあります。
この記事では、[**Spire.Doc for Python**](https://www.e-iceblue.com/Introduce/pdf-for-python.html)ライブラリを使用して、PythonでWordの表に画像を挿入したり、Wordの表から画像を抽出したりする方法を紹介します。
* [【Python】Wordの表に画像を挿入する](#python-wordの表に画像を挿入する)
* [【Python】Wordの表から画像を抽出する](#python-wordの表から画像を抽出する)

## Wordの表を扱うためのPythonライブラリ
[Spire.Doc for Python](https://www.e-iceblue.com/Introduce/pdf-for-python.html)はWord文書を作成・処理する

元記事を表示

「ブレートシュナイダーの公式」をChatGPTとsympyとFreeCADでやってみたい。

・正しいかどうかわかりませんでした。

# 参考

https://en.wikipedia.org/wiki/Bretschneider%27s_formula

https://ja.wikipedia.org/wiki/ブレートシュナイダーの公式

google検索 ブレートシュナイダーの公式

# 大学入試の過去問

>”ブレートシュナイダー”一致する結果はありません 大学入試数学問題集成 様内

>site://kamelink.com “ブレートシュナイダー”との一致はありません。

>site://mathmathmass.exblog.jp “ブレートシュナイダー” に一致する情報は見つかりませんでした。

# ChatGPT-3.5先生へ
“`
ブレートシュナイダーの公式の証明を教えて下さい。
“`

“`
sympyで
“`

“`python
import sympy as sp

# 変数の定義
a, b, c, d = sp.symbols(‘a b c d’) # 四辺形の各辺の長さ
alpha, gamma = sp.symbols(

元記事を表示

パイプライン型ADコンバータの出力データ 1.5ビットコード追加

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759109/f823effb-fce6-817c-8f96-2fb648f5eb13.png)

“`
def successive_approximation(Vref, Vin, N):
results = []
for i in range(N):
if Vin > 0:
MSB = 1
Vin = 2 * Vin – Vref
else:
MSB = 0
Vin = 2 * Vin + Vref
results.append((MSB, Vin))
print(f”Step {i+1}: MSB = {MSB}, Vin = {Vin}”)
return results

# パラメータの設定
Vref = 10
Vin = 3.123321
N

元記事を表示

「ブラーマグプタの公式」をChatGPTとsympyとFreeCADでやってみたい。

・正しいかどうかわかりませんでした。

# 参考

https://en.wikipedia.org/wiki/Brahmagupta%27s_formula

https://ja.wikipedia.org/wiki/ブラーマグプタの公式

google検索 ブラーマグプタの公式
https://www.google.com/search?q=%E3%83%96%E3%83%A9%E3%83%BC%E3%83%9E%E3%82%B0%E3%83%97%E3%82%BF%E3%81%AE%E5%85%AC%E5%BC%8F&oq=%E3%83%96%E3%83%A9%E3%83%9E%E3%82%AF%E3%83%96%E3%82%BF&gs_lcrp=EgZjaHJvbWUqCQgBEAAYDRiABDIGCAAQRRg5MgkIARAAGA0YgAQyCQgCEAAYDRiABDIMCAMQABgNGIsDGIAEMgwIBBAAGA0YiwMYgAQyCQgFEAAYDRiABDIJCAYQABgNGIAEMgkIBxAAGA0YgAQyCQgIEAAYDRiABDIJCA

元記事を表示

Databricks にて一定期間のデータを上書きする処理する際の`INGEST_TIMESTAMP`列ごとに連携対象の期間のレコードを取得する方法

## 概要

Databricks にて一定期間のデータを上書きする処理する際の`INGEST_TIMESTAMP`列ごとに連携対象の期間のレコードを取得する方法を記述します。

Bronze テーブルから Silver テーブルへのデータローディングパターンとして下記のような一定期間のデータを上書きする処理する方法の記述が抜けていたため、追記することとしました。ただし、その処理の一部として`INGEST_TIMESTAMP`列ごとに連携対象の期間のレコードを取得する手順の文章が難解である本記事を補足記事として投稿します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/429d89ea-5dee-8453-033f-57b24dec611f.png)

下記のデータで検証をしております。過去2日分のデータを上書きする場合には、`inget_timestamp`が2024/1/3の場合には 2024/1/1 から 2024/1/3 が連携対象期間となります。`inget_ti

元記事を表示

編入試験 微分方程式y’=−y−1,y(0)=0「神戸大学数学科R3編入試験問題4解答解説 take2」(1)だけ をChatGPTとsympyとWolframAlpha でやってみたい。

・「編入試験問題」はじめまして。です。

# オリジナル
・高橋ユウコ 様 (0:00〜18:09)の(1)だけ(0:00〜3:56)

・公式ホームページ
 http://www.math.kobe-u.ac.jp/HOME/home-j/gif/hr03.pdf
<http://www.math.kobe-u.ac.jp/home-j/index4-4.html

# ChatGPT-3.5先生へ。
“`
(1)微分方程式y’=−y−1,
y(0)=0の解を求めよ。
“`
正しくは、以下でした。再計算は、していません。
“`
(1)微分方程式y’=−y−1,y(0)=0の解y(x)を求めよ.
“`

したがって、解は次のようになります:
y=-1+e^(-x)

“`
sympyで
“`
・print文を、私が追加しています。

“`python
import sympy as sp

# 変数と関数を定義
x = sp.symbols(‘x’)
y = sp.Function(‘y’)

元記事を表示

確率統計メモ

“`
# ベイズの定理を計算する関数
def bayes_theorem(prior_A, likelihood_B_given_A, prior_B):
posterior_A_given_B = (likelihood_B_given_A * prior_A) / prior_B
return posterior_A_given_B

# 事前確率P(A)
prior_A = 0.01

# 尤度P(B|A)
likelihood_B_given_A = 0.8

# 周辺確率P(B)
prior_B = 0.02

# ベイズの定理を使って事後確率P(A|B)を計算
posterior_A_given_B = bayes_theorem(prior_A, likelihood_B_given_A, prior_B)

print(f”P(A|B): {posterior_A_given_B:.4f}”)
“`

“`
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats im

元記事を表示

pygameでブロック崩し風のゲームを作ってみた

## はじめに

pythonとpygameでブロック崩し風のゲーム作りたいな。

## 説明

・白い四角 : 自機
・赤い丸 : ブロックを崩す玉
・青い四角 : ブロック
・タイトル画面をクリックするとゲーム画面にいく
・ブロックを全部崩した場合や赤い玉を拾えなかった場合、3秒後にタイトルに戻る
・ゲーム中にクリックするとポーズ画面になり「Pause」と表示する
・最後クリックするとポーズが終わりゲームに戻る

## ソースコード

“`py main.py
import pygame
import random

# Pygameの初期化
pygame.init()

# ウィンドウの設定
width, height = 800, 600
win = pygame.display.set_mode((width, height))
pygame.display.set_caption(“Breakout”)

# 色の定義
black = (0, 0, 0)
white = (255, 255, 255)
blue = (0, 0, 255)
red = (255, 0, 0

元記事を表示

Microsoft Graph APIを使用してMicrosoft Listsを操作する(Pythonを使用)

# 記事を書いた背景
PowerAppsでアプリケーションを開発しているが、データベースとして使用しているMicrosoft Lists上のリスト(テーブル)に手動でテストデータを挿入していくのが面倒なため、Microsoft Graph APIを利用して、Excelファイルからテストデータをまとめて挿入したい。
Excelからインポートしてリスト作成とデータ挿入を同時に行うこともできるが、今回は既に存在するリストにデータを追加したかった。

# 動作環境

OS:Windows11 Pro(23H2)
Python:3.12.4
msgraph-sdk:1.4.0
pandas:2.2.2
openpyxl:3.1.5

# Microsoft Graph APIを利用できるように設定する

参考:[PythonからSharePointにファイルアップロードしたいッッ!](https://zenn.dev/dencyu/articles/7c018ae166e278)

:::note warn
本設定は「Microsoft365 グローバル管理者」の役割を持つユーザーでないとできな

元記事を表示

Difyを用いた数学の問題集の解答生成を行うアプリケーション

# はじめに
今回は、Difyを用いて数学の問題集の解答生成を行うアプリケーションを作成した。
Difyの詳細については、以下の通りである。

https://dify.ai/jp

以下に導入を示す。

# 導入
今回は以下の数学の問題集を使用した。

https://web.math-aquarium.jp/rennsyuu-sikinotennkaitoinnsuubunnkai-1.pdf

アプリケーション実行の流れとしては、
①Pyhtonで書かれた、Azure の Document Intelligence を使用し、指定されたURLの画像から文字を読み取るコードを実行
②テキストファイルのテキストをコピーし、Difyのチャットボットに貼り付ける
という流れになっている。

まず①のコードについて説明する。
“`Python
# -*- coding: utf-8 -*-
import sys
import io

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=’utf-8′)
sys.stderr

元記事を表示

石川県

### **user**:

ChatGPT先生、石川弁って話せますか?

### **assistant**:

ええ、もちろん石川弁なら話せるよ!くんしゃくんしゃでなんもわからんくなっちゃったら、言ってねえ。石川の方言は一味違って、なんか情緒があってよいけん。ほんならさ、おしゃべり始めよっか!

あんた、石川弁に何か興味あるんかい?好きな言葉とか、聞きたいことあったらなんでも言ってみてな!

### **user**:

おお、さすが万能ですねぇ。ところで前回、こういうコードを書いてもらったの覚えてますか?

“`python
# 必要なモジュールをインポート
import geopandas as gpd
import matplotlib.pyplot as plt
import shapely.ops

# 日本の行政区域データを読み込み
japan = gpd.read_file(‘N03-20200101_GML/N03-20_200101.shp’, encoding=’shift-jis’)

# 全体のデータを投影座標系に変換
japan

元記事を表示

[Python Graph2Vec]グラフ情報を埋め込んでグラフ予測をしてみる

# 1. Graph2Vecを試してみる

pythonのGraph2Vecを試してみたので、よければ参考にしてください。

## 1-2. ライブラリのインストール

“`
$ python -V

Python 3.11.1

$ pip install karateclub
“`

“`graph2vec.py
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt

from sklearn.decomposition import PCA
from torch_geometric.datasets import TUDataset
from karateclub.graph_embedding import Graph2Vec

# MUTAGデータセットを読み込み
dataset = TUDataset(root=”./”, name=”MUTAG”)

# グラフ情報の前処理
graphs = []
for data in dataset:
e_list = []

元記事を表示

Pythonで行う多重比較法(Bonferroni法とHolm法)

今回は多重比較法で用いる補正アルゴリズムについて説明します。
多重比較法は統計的仮説検定のP値を補正する際に用いるアルゴリズムです。
多重比較法はさまざまな算出方法がありますが、今回はBonferroni法とHolm法について記載します。

### Bonferroni法

Bonferroni法は、多重比較法の中でも最もシンプルで直感的な方法です。以下のように有意水準$ \alpha $を補正します:

$$ \alpha_{\text{new}} = \frac{\alpha}{m} $$

– $\alpha$は全体の有意水準(例えば、0.05)
– $m$は検定の数
– $\alpha_{\text{new}}$は個々の検定の新しい有意水準

“`python
# P値の補正(Bonferroni法)
import statsmodels.stats.multitest as smm

# P値の補正(”Bonferroni法)
p_values = [0.005, 0.006, 0.007, 0.008, 0.009, 0.01]
corrected_p_values

元記事を表示

pythonでk-ナッチ数列を生成

## はじめに
– リスト内包表記でフィボナッチ,トリボナッチ数列を生成してきた
– 今回は一般的に$k = 2,3,…$が与えられたときにk-ナッチ数列をリスト内包表記で生成してみる

## k-ナッチ数列とは
– 初項$a_1 = 0$,第$k$項$a_k = 1$,その間のすべての項の値が0
– $n>k$のとき,$a_n = a_{n-1} + a_{n-2}$を満たす数列

## 実装
“`python
l = []
k = int(input(‘input integer larger than 1 >> ‘))
[l.append(sum(l[(len(l)-k):])) if i > k else (l.append(1) if i == k else l.append(0)) for i in range(100)]
print(str(k)+”-nacci\n”,l)
“`

## 実行結果
– $k = 2$としたときの実行結果

“`
input integer larger than 1 >> 2
2-nacci
[

元記事を表示

Python_Googleアラート_240703

### 35年以上続く”開発者”満足への道! エンジニアたちに迫る、メシウス流「高品質なプロダクトづくり」の極意 (1/2)|CodeZine(コードジン)
メシウス株式会社は、35年以上開発者を支援するUIライブラリを提供しており、その中でも「Wijmo」は、業務アプリケーション開発に必要なグリッド、チャート、入力コントロールなどを収録したオールインワンなライブラリです。海外チームとの連携で開発を進めており、サポートエンジニアは顧客からの技術的な質問にメールで対応しています。顧客からの改善要求は、サポートエンジニアと議論し、開発チームに依頼しています。メシウスは、責任感と技術力を備えた人材を求めています。
#### https://codezine.jp/article/detail/19622

### Amazonプライムデーでインプレスグループの電子書籍が爆安販売中!! – Book Watch/セール情報 – 窓の杜
Amazonプライムデーで、インプレスグループの電子書籍が4,000冊以上セール中!コンピュータ・IT関連書籍が充実!「ゆる~いExcelスキル」シリーズ

元記事を表示

リスト内包表記でトリボナッチ数列

## はじめに
– リスト内包表記の第3弾
– if文の条件分岐を入れ子にしたときのリスト内包表記を実現してみる

## トリボナッチ数列とは
– 初項$a_1 = 0$,第2項$a_2 = 0$,第3項$a_3 = 1$の数列
– 以下のようなイメージ

![トリボナッチ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3768359/77878a12-b3b9-c1c0-0845-88f15d733bf8.png)

## for 文を用いた表現
“`python
l = []
for i in range(10):
if i > 2:
l.append(l[len(l)-1]+l[len(l)-2]+l[len(l)-3])
else:
if i > 1:
l.append(1)
else:
l.append(0)
“`

## リスト内包表記を用いた実装
:

元記事を表示

Seleniumの激遅find_elementsから開放されよう、lxmlのすすめ

# はじめに
ブラウザ操作を自動化するライブラリのSelenium。
Seleniumのfind_elementメソッド遅くて正直しんどくないですか?
特に大量のデータを扱うときなんかだと、イライラしてキーボードを投げたくなっちゃうこともしばしば…。
そんな時は、`page_source`をもってきてlxmlに食わせてしまいましょう。

# 動作環境
– Python 3.12.3
– google-colab-selenium-1.0.13

# どのくらい違うの?
以下のコードで実行時間を比較してみました。
今回は、例として、[Yahoo Japan](https://www.yahoo.co.jp/)からリアルタイム検索で話題のキーワードを取得します。

“`py
import google_colab_selenium as gs
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import datetime
import lx

元記事を表示

生成AIでGANっぽい手法にチャレンジ。(俳句の質を無限に上げ続ける)

敵対性ネットワークGAN的な考えで、
2つの生成AIに、それぞれ別の役割を持たせて
ラリー的に生成しつづけたら
アウトプットの質が無限に上がるんじゃね?

とか、ふと思いついたので、試してみました。

# お題

本当に思いつきなので、適当に「俳句」を題材に選びました。

# 使った生成AI

これでClaudeのHAIKUをつかわないなんて嘘でしょとも思いましたが、
API使い慣れてるChatGPT (gpt-4o)で。

# GANの復習

生成器: 識別器を騙して本物だと思いこませるような出力を行います。
識別器: 生成器の出力を確かに偽物だと判別するように出力します。

生成器のアウトプットを識別器に学習し
識別器のアウトプットを生成器に学習させる

ことで、両者の学習を進めて行って、本物っぽい出力ができるように育てます。

って内容がGANの意訳です。

# 実践

## 生成器側の実装

シンプルに俳句を出力するようなプロンプトを用意してAPIをたたきます。
俳句マスターが何なのかイマイチ謎ですが、多分xxマスターって言った方が英語圏に通りが良

元記事を表示

OTHERカテゴリの最新記事