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

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

二次関数の解を表示するプログラム

# 二次関数の解を表示するプログラム
“`python:二次関数練習5.py
import tkinter as tk

def dispLabel():
a = int(EditBox1.get())
b = int(EditBox2.get())
c = int(EditBox3.get())
D = b**2-4*a*c

if a==0:

lbl4.configure(text=”x=”+str(-c/b))

else:
if D<0: lbl4.configure(text="解無し") else: answer1=(-b-(b**2-4*a*c))/2*a answer2=(-b+b**2-4*a*c)/2*a str_answer1=str(answer1) str_answer2=str(answer2)

元記事を表示

Python Beautiful Soupでパースで文字化けしたときに読む記事

# 結論

:::note
BeatutifulSoupの第一引数に、requests.getのレスポンスをresponse.text、response.encodingでエンコーディングして文字列型で指定すると文字化けになることがある。文字化けを回避するには、response.contextとしbytes型を指定する。
:::

理由は、レスポンスHTMLに問題がある。原因は、Content-Typeのエンコーディング(charset)がおかしかったり、指定されてなかったりするからだ。

:::note warn
BeautifulSoupはstr型かbyte型で指定できる。
:::

#### requests側でエンコーディング(文字列型で指定)
– **response.encoding** : Content-Typeのエンコーディング
– **response.text** : response.encodingでデコードされたstr型のレスポンスボディ

#### BeautifulSoup側でエンコーディング(bytes型で指定)
– **response.cont

元記事を表示

y√x の 計算方法(Python)

今回は[hmath](https://caleb7023.hmath.pro/)で使用されている$\sqrt[y]{x}$の計算方法をご紹介します。
## 計算式
[hmath](https://caleb7023.hmath.pro/)は次の数式で$\sqrt[y]{x}$を定義しています。
“`math
\sqrt[y]{x}=x^\frac{1}{y}
“`
なぜこのような式になるかというと、$xy=x\frac{1}{y}$
みたいに$\sqrt[y]{x}$も$x^\frac{1}{y}$という$y$の逆数乗で計算できます。
## プログラム
[hmath](https://caleb7023.hmath.pro/)内では次のプログラムで計算しています。
“`ruby:radical.py
def radical(x, y):
return y ** (1 / x)
“`
順番は$\sqrt[x]{y}$
逆数を使って計算することで逆の計算ができる。

最後まで見ていだきありがとうございました。
ぜひ活用してみてください。

元記事を表示

ちょっとした Pythonでの知識 (enumerate 型)

Python には enumerate というデータ型が備わってます。
いったい何に使うデータ型でしょうか?
簡単に説明すると**リストの要素とインデックス**をfor文で同時に取得します。
↓↓↓サンプルプルプログラムです↓↓↓
“`ruby:sample.py
risuto =[
“poteto”,
“ninnzinn”,
“玉葱”,
“kome”,
]
for indekkusu, youso in enumerate(risuto):
print(youso, indekkusu)
“`
出力
“`ruby
poteto 0
ninnzinn 1
玉葱 2
kome 3
“`
私の中ではすごい役に立っています。
使えるときは使えるので、是非、活用してください。
最後まで見ていただきありがとうございました。

元記事を表示

機械学習の結果などをちょっと簡単にCSV保存するための関数を作ってみた

機械学習などの実験管理ライブラリはいろいろあるが、自分的にローカルにcsv保存しやすくなるように「param_logger」というライブラリを作ってみた。

https://github.com/yoyoyo-yo/param_logger

デコレータと引数にplogを加えるだけで、パラメータ保存を簡単化できるようにした。

“`python
import param_logger.param_logger as plogger

plog_config = plogger.ParamLoggerConfig(‘exp_v1′, base_path=’./’)

@plogger.plog_wrapper(plog_config)
def func1(fold, x, plog):
plog.add_meta_info({‘fold’:fold, ‘x’:4, ‘description’:’this is test’, ‘time’:’2021-7-31′})
plog.add_param(‘epoch’, 0)
plog.update()
plo

元記事を表示

【Python + PDF】Google DriveのPDFを結合+α

# 試験期間
ワイ 「試験勉強やだ〜」
ワイ 「〇〇1回.pdf, 〇〇2回.pdf …を開いて・・・」
ワイ 「あほかいな! 全部で15個PDFを開かなあかんがな!」

姉 「PDF結合したら良くない?」
姉 「調べてみたけど、すぐにできそうだよ」

ワイ 「で、でも、何かウイルス混入したら嫌なんや」
ワイ 「結合以外にも例えばBookMarkつけたいし・・・」

姉 「Adobe Acrobatなら…」
ワイ 「お金かかりそうだから却下や!却下!」
ワイ 「・・・」
姉 「・・・」

ーーカタカタカタ・・・タン!(Enterを強く押す音)
ワイ 「なるほど、Pythonだと簡単にPDF結合できるんやな!」

# 閑話休題
こんにちは、Bana7です。
今回はGoogle Driveに保存されているPDFを結合してくれるコードを書いてみました。

一緒に勉強会資料や授業資料のPDFを結合してみましょう!

[GitHubリポジトリ](https://github.com/Aruminium/pdfConsolidation)

![スクリーンショット 2022-07-30

元記事を表示

Pythonチュートリアルで学ぶ:文字列

Pythonの基礎的な勉強をしています。
文字列操作について学んだことを備忘録代わりに書きます。

「\」(バックスラッシュ)でエスケープ処理ができます。

“`
strPrint = ‘”Isn\’t,” they said.’

print(strPrint)
“`
実行結果はこちらです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725725/7b8e7125-bc70-b764-a173-54af396c594c.png)

また、「\n」で改行ができます。

“`
s = ‘One \nTwo’
print(s)
“`
実行結果はこちらです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725725/cc159fdd-0c35-dcbc-3df1-8e540696f1e1.png)

最後に、文字列の前に「r」をつけると「\n」が文字列とみなされます。

元記事を表示

SciPyのMILPは使えるのか??(SciPy==1.9.0の新機能の検証)

# モチベーション
2022/07/29に以下図にある通り、SciPy==1.9.0がリリースされてMILPの機能が追加された。
MILPを実務で活用する場合、求解速度の観点からGurobiやCPLEXがを利用するのが一般的である。
しかし、これらの有償ソルバーは高額であり、手軽に活用することはできない。
Gurobiの機能と比較し、SciPyのMILPソルバーが実務適用可能なレベルの性能を備えているか調査した。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/861809/95b89809-90e6-1dbf-4522-1f1fd11dff33.png)
https://docs.scipy.org/doc/scipy-1.9.0/release.1.9.0.html

# 調査結果

### 1. 表現できるMILPが限定的であり、複雑な実務での定式化を行うことは難しい
基本的に、以下数式で表現される定式化しか解くことができない。
もっとも致命的なのが、決定変数(x)が1次元しか

元記事を表示

データ解析や機械学習をしたいならプログラミングスキルだけを上げてもダメだなと思う話

## 本記事の対象者
– データ解析や機械学習をしてみたいと思うけど実務経験のない方
– Pythonのプログラミングの学習を始めたての方

## はじめに
記事を書く前に簡単な自己紹介をしておきます。
– 普段は主にPythonを使ったデータ解析や機械学習をやっています。
– プログラミングは基本独学
– Rも多少かじってます。
すごくざっくりですがこんな感じ。私は自分のブログもやっているので、詳しいプロフィールが気になる方は[こちら](https://fuyutsuki.net/)をご覧ください。

ここでは、特にPythonでのデータ解析や機械学習を独学で習得しようとしている方に読んでほしい記事となっています。

## プログラミングの独学
独学でプログラミングを学習しようとしている方はどのように勉強されているでしょうか?
書籍・ウェブサイト・Udemy、今ではYoutubeという方も多いのかもしれません。
私はというと、以下のようなサイクルでプログラミングを勉強していました。
1. 何を作るか(どの言語を勉強するべきか)考える。
1. 書籍やGoogle検索などで

元記事を表示

Γx の 計算方法(Python)

今回は[hmath](https://caleb7023.hmath.pro/)で使用されている$\Gamma x$(Gamma(x))の計算方法をご紹介します。
## 計算式
[hmath](https://caleb7023.hmath.pro/)は次の数式で$\Gamma x$を定義しています。
“`math
\begin{eqnarray}
\Gamma x =
\begin{cases}
\frac {\pi}{\sin(\pi x)\Gamma (1-x)} & if \Re x < 0.5\\ \sqrt \tau (x+6.5)^e(x-0.5)(0.99999999999980993+\frac{676.5203681218851}{x}-\frac{1259.1392167224028}{x+1}+\frac{771.32342877765313}{x+2}-\frac{176.61502916214059}{x+3}+\frac{12.507343278686905}{x+4}-\frac{0.13857109526572012}{x+5}+\frac{9.98

元記事を表示

Cloud Functions のログをカスタマイズして行番号やログレベルを付与する

Cloud Functions を使っていて、デバッグ時に行番号やファイル名が取得できなくてちょっと困りました。
色々調べましたが、googleのloggingライブラリをラッパーすることで対応しました。

# 結果
こんな感じになりました。
時刻も日本時間に修正され、行番号も表示されています。
ログレベルの途中制御も可能になっています。
これでデバッグが楽になりそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389667/29c7028f-06d4-afaf-d1e0-6bdd8dfb9baf.png)

# 準備
– google-cloud-logging を導入しておくこと。
– Cloud Functions のデプロイ時に、requirements.txt にも記入しておくこと。

“`bash
$ pip install google-cloud-logging
“`

“`text:requirements.txt
google.cloud.loggi

元記事を表示

不連続なグラフを綺麗に書く

# Abstract

matplotlibって便利ですよね。私も様々な場面で活用しています。
本記事では不連続なグラフの図を作るためのtipsを紹介しようと思います。(意外とこの知見がネットにまとまって落ちていなかったので…)

目標は次の図のような、不連続点を綺麗に描画することです。
![result-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483769/9f9198a8-d43b-7cf8-e6ed-d8de405e01c4.png)

# 問題設定

本記事では次のグラフを作成します。

“`math
y = \mathrm{sign}(\sin(x))
“`

ただし$\mathrm{sign}(x)$は符号関数であり、次のように定義されます。

“`math
\mathrm{sign}(x) = \begin{cases}
1 & \text{if $x > 0$}\\
0 & \text{if $x = 0$}\\
-1 & \text{if $x < 0$} \end

元記事を表示

np,pandasまとめ

Numpy,pandasまとめ

タプル
固定長で変更不可能
list関数によりリストに変更できる
“`taple.py
tup = 1,2,3
tup = (‘aa’,’bb’,’cc’)
list1 = list(tup)
list1
#[aa,bb,cc]

list1.append(‘dd’)
#[‘aa’,’bb’,’cc’,’dd’]
list1.insert(1,’xx’)
#[‘aa’,’xx’,’bb’,’cc’,’dd’]
list1.pop(0)
#[‘xx’,’bb’,’cc’,’dd’]

xx in list1
#True
xx not list1
#False

list1.extend([‘ee’,’ff’])
#[‘xx’,’bb’,’cc’,’dd’,’ee’,’ff’]
#リスト連結するとき
everything = []
for chunk in list1:

元記事を表示

M1Macに #TensorFlow を入れて #Jupyter 環境で動かそうとしたが、どハマりした話

前回記事(React + FullCalendar)の進捗について書こうと考えていましたが、その前にタイトルの通りどハマりしたので、忘備録+これから機械学習を本格化していこうと考えている方向けに記事を書いておきます。
ちなみに前回記事はこちら

https://qiita.com/watanabe-tsubasa/items/12892b4711bf1526051e

## 環境

> macOS Monterey version 12.5
>

Python, Jupyter, conda, TensorFlowは折りたたみ以下

>
>
>いまだに真っ白なターミナル使ってるとかドン引きなんだけど・・・とか思わないで?

## TensorFlowに

元記事を表示

対応がない3群間比較の備忘録

# はじめに
* 今回3群間の比較することがあったので、本記事に簡易的にその手法を記載する。
* 今回の動作環境は以下である。

Windows 11
Python 3.8.5
numpy 1.22.3
scikit-posthocs 0.7.0
scipy 1.5.2
pandas 1.1.1

# ライブラリのインポート
“`python
from scipy import stats
import numpy as np
import pandas as pd
import scikit_posthocs as sp
from statsmodels.stats.multicomp import pairwise_tukeyhsd
“`

# データ例
* csvデータからデータを読み込んでデータを用意。
* A列、B列、C列の3列あるとし、データ例は同じ数とする。
“`python
df = pd.read_csv(‘sample.csv’)

group_A = df[‘A’]
group_B = df[‘B’]
group_C = df[‘C’]
“`

# 1.

元記事を表示

ゼロからPython環境をHomebrew、pyenv経由で構築(MacOS)

# ゼロからPython環境をHomebrew、pyenv経由で構築
大学入学時に購入して何もわからず環境構築したMacBook Pro。
何かがおかしいと気づきつつ無理矢理使ってきましたが本当に限界を感じたので一旦出荷状態まで戻して全てを最初からやり直します。
**この記事ではPython環境をHomebrew、pyenv経由で構築していきたいと思います。**
一連の投稿のハブになる記事は[こちら](https://qiita.com/TakayoshiK/items/ae53424b788c8fcb645b)

**参考にさせていただいた記事**
[MacOSとHomebrewとpyenvで快適python環境を。](https://qiita.com/crankcube/items/15f06b32ec56736fc43a)
[macOS+zsh環境にpyenvをインストールする](https://qiita.com/myy/items/a526bdb43982cf82f96a)
[lzmaが入っていないって怒られるwarningを解消する](https://zenn.dev/g

元記事を表示

YOLOv5で学習したモデルをTensorFlow.js形式に変換しWebアプリ上で物体検出する

# 目的

– `YOLOv5`で学習したモデルを別形式に変換する方法を身につける。
– `TensorFlow.js`形式に変換しWebアプリ上で物体検出する。

# 背景

`YOLOv5`のソースコードを見てニヤニヤしていたところ、モデル形式を変換するソースコードを見つけた。

下記のリリースノートには11の形式に公式に対応しましたよとの記述があり、性能や精度の検証が目的とのこと。

https://github.com/ultralytics/yolov5/releases/tag/v6.1

対応形式

– PyTorch
– TorchScript
– ONNX
– OpenVINO
– TensorRT
– CoreML
– TensorFlow SavedModel
– TensorFlow GraphDef
– TensorFlow Lite
– TensorFlow Edge TPU
– TensorFlow.js

今のところ性能や精度の測定には興味はないが、`TensorFlow.js`で読み込める形式にもエクスポートができるため、Webアプリに組み込めたら夢

元記事を表示

Pytorchを用いたDCGANの実装

### ■初めに
この記事ではpytorchを用いたDCGANの実装について解説を行っています。
実装したものに関しては下記のGitHubレポジトリにアップしてありますので、用いたい場合はクローンしてお使いください。
[https://github.com/YusukeOhnishi/DCGAN/tree/main](https://github.com/YusukeOhnishi/DCGAN/tree/main)

### ■GANとは
簡単にGANについて説明を行います。

GAN(敵対性ネットワーク)ではネットワークを2つ作成を行います。1つは生成器、もう1つは識別器と呼ばれるものです。基本的に欲しいものとしては生成器の方ですが、2つを同時に学習させる必要があります。
学習の流れとしては、まず生成器にてインプットにノイズを与えて画像を作成させるということを行います。このようにして作成した偽物の画像と本物の画像を識別器のインプットとして入力し、アウトプットとしては本物か偽物かを判定させます。またこの時生成器では識別器が本物と勘違いするような画像を生成するように学習を行わせます。

元記事を表示

【Python】進捗状況をprogress bar で表示(tqdm)

# はじめに

今回は、tqdm というプログラムの進行状態をプログレスバーに表示するライブラリの使い方をメモしておきます。
これが使われているプログラムを見て、自分のコードにも導入しようと思い調べました。

# tqdm の動作確認

## 準備

### 名前について

[こちら](https://pypi.org/project/tqdm/)によると、tqdm は

– the Arabic word taqaddum (تقدّم) which can mean “progress,”
– an abbreviation for “I love you so much” in Spanish (te quiero demasiado)

だそうです。なんて発音したら良いのかな。。

### Install

pip で何のトラブルもなくインストールできました。

## 使ってみた

Iterator にかぶせると、自動で表示してくれました。

“`python:test01.py
from tqdm import tqdm
from time import sleep

元記事を表示

Macでの初期設定、開発環境構築(python、node.js、docker)メモ

# Macでの初期設定、開発環境構築

大学入学時に購入して何もわからず環境構築したMacBook Pro。
何かがおかしいと気づきつつ無理矢理使ってきましたが本当に限界を感じたので一旦出荷状態まで戻して全てを最初からやり直します。
次にMacOSでゼロから環境構築する時のためのメモとして好みの設定からよく使う開発環境の構築までを書き残します。
この記事はハブのイメージでそれぞれのコンテンツは分割して記事にしていくので必要な部分だけ切り取ってご覧ください。

## 環境
MacBook Pro (13-inch, 2018)
macOS Monterey Version 12.5
メモリ intel Core i5
zsh 5.8.1 (x86_64-apple-darwin21.0)

## 目指す状態・方針

### 初期設定
個人的に使い心地のいい設定に変更していきます。
正直ほとんど需要はないと思いますが個人的メモが一番の目的なのでこれも書きます。
おすすめの設定がある人がいたらコメントください。
とりあえず下の設定をいじります。(他にもいじったかもしれませんがぶっちゃけ覚えて

元記事を表示

OTHERカテゴリの最新記事