Python3関連のことを調べてみた2022年03月23日

Python3関連のことを調べてみた2022年03月23日

気象データでシェアサイクルの利用者数・平均利用時間を予測してみた。

# 目次
[1. 背景](#1.-背景)
[2. 目的](#2.-目的)
[3. 手法](#3.-手法)
[4. データの確認・前処理](#4.-データ確認・前処理)
[5. 時系列解析](#5.-時系列解析)
[6. 結論](#6.-結論)
[7. 感想](#7.-感想)

# 1. 背景
 化学工学に関する研究で博士号取得後、化学メーカーで技術職をやっています。
学生時代から現在に至るまで、化学プロセスの数値シミュレーションを専門としており、プログラミング(C++, VB)や数値計算に関する知識・経験はありますが、統計学・ビックデータ解析・AI技術(機械学習・ディープラーニング等)といった最新技術に関する知識が不足していることを日々の業務の中で強く感じていました。
そんな中で[アイデミー](https://aidemy.net/)のオンライン講座の存在を知り、Aidemy Premium Planのデータ分析講座(3ヶ月)を受講するに至りました。
今回の記事では、3ヶ月の学習成果として、Facebook Prophetを使った時系列解析に挑戦した結果を紹介します。

# 2. 目的

元記事を表示

Python: コール可能なオブジェクト(関数とか)かチェックする

“`python

def f():
pass

async def af():
pass

class C:
@staticmethod
def s():
pass

@classmethod
def c(cls):
pass

def i(self):
pass

if __name__ == “__main__”:
print(callable(“x”)) # False
print(callable(None)) # False
print(callable(lambda x: x + 1)) # True
print(callable(f)) # True
print(callable(af)) # True
print(callable(C.s)) # True
print(callable(C.c)) # True
print(callable(C.__init__)) # True
pri

元記事を表示

MySQL with Python connector

#### MySQL
##### 記事の背景
MySQLに関する記事は多いのですが、途中まで躓いているものも多い。
本記事は、Windowsに限定してインストール、初期設定、データベース作成
そしてPythonからデータベースへのアクセスまで網羅します。

#### 1.install
MySQLダウンロードサイト
https://dev.mysql.com/downloads/installer/
ログインについては、スキップする
画面左下の「No thanks, just start my download.」からダウンロードする。

#### 2.インストール設定

Custom
☑MySQL Server
☑MySQL Shell
☑Connector/Pythonを選ぶ

Type & networking
☑Development Computerを選択
☑TCP/IP Port:3306
☑X Protocol Port:33060

☑Open Windows Firewall port for network access

認証設定
☑Use strong

元記事を表示

circleci/pythonからcimg/pythonへ更新する

# やりたいこと
– `circleci/` ownerのdocker imageがdeprecatedになるようなので、新しい `cimg/`に更新したい
– seleniumでなんやかんやする目的で利用していたので
`circleci/python-3.8.3-browsers` -> `cimg/python-3.9.10-browsers`
あたりに更新したい

公式アナウンス
– https://discuss.circleci.com/t/legacy-convenience-image-deprecation/41034
– https://circleci.com/blog/announcing-our-next-generation-convenience-images-smaller-faster-more-deterministic

# やったこと

## dockerfile先頭のimage指定を差し替える

“`dockerfile
FROM circleci/python:3.8.3-browsers
“`

“`dockerfile
FRO

元記事を表示

【AtCoder解説】PythonでABC244のA,B,C,D,E問題を制する!

**ABC244**の**A,B,C,D,E問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM**

元記事を表示

ABC 095 A – Something on ItをPython3で解く

# 初めに
「[AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~](https://qiita.com/drken/items/fd4e5e3630d0f5859067)」の各問題の類題をPythonで解きます。
(解法に詰まって調べたとき、C++の解法が多くPythonしか分からない私では参考にできなかったため。)
*競プロ & Python初心者のため、解法やコードの改善例、別解等アドバイス頂けますと大変ありがたいです。

# [ABC 095 A – Something on It](https://atcoder.jp/contests/abc095/tasks/abc095_a)

**【問題文】**
ラーメン店「高橋屋」のラーメンの値段は 1 杯 700 円ですが、トッピング(味玉、チャーシュー、ねぎ)を乗せた場合は 1 種類につき 100 円が加算されます。

ある客がラーメンを一杯注文し、店員にトッピングの希望を伝えました。店員は注文の内容をメモ帳に文字列 S として記録しました。S の長さは 3 文字で、S の 1 文字

元記事を表示

ModuleNotFoundError でつまづいた話

# ModuleNotFoundErrorでつまづいた話

## ModuleNotFoundError

python3のパッケージ,pytrendsをimportして使用したところModuleNotFoundErrorが発生して動けなくなった。

最終的に問題は解決したが、単純にpytrends.pyという名前のファイルで実行していたため、参照先がおかしくなってるだけだった。
pythonのパッケージと同じ名前のファイルをつけるのはやめた方が良い。
“`python
from pytrends.request import TrendReq
“`

エラーメッセージ
“`shell
Traceback (most recent call last):
File “[WORKDIR]/pytrends.py”, line 1, in
from pytrends.request import TrendReq
File “[WORKDIR]/pytrends.py”, line 1, in
from pytrends.

元記事を表示

具象クラスのインスタンスを返す抽象メソッドの型ヒント

### 概要
抽象クラスのメソッドが具象クラスのインスタンスを返す場合、その抽象基底クラスはジェネリック型にする必要がある。また、その型変数は抽象規定クラスを上界に指定する必要がある。

### 具体例
足し算と符号反転を定義すれば、引き算を自動で定義してくれる抽象クラスを考える。

“`py
from abc import ABC, abstractmethod

class AdditiveGroup(ABC):
@abstractmethod
def __add__(self, _):
pass

def __sub__(self, other):
return self.__add__(other.__neg__())

@abstractmethod
def __neg__(self):
pass
“`

これを使って、整数を3で割った余りで分類する次のようなクラスを定義するとmod 3の世界で足し算、引き算、符号の反転が行える。

“`py
class FG3(Addi

元記事を表示

Python ループ処理させたい関数が複数あるときのテクニック

以下のように第一引数にループさせたい関数を、第二引数に前処理したい関数を指定するwrapper関数を作成して、マルチスレッドでtargetを指定する前にwrapして使ったりしています。

# 無限ループさせる例

“`python
import time

def wrap_loop_func(main_func: any, preprocessing_func: any = None):
“””関数をループさせる関数を返す”””
def loop_func():
if preprocessing_func:
preprocessing_func()
while True:
main_func()
return loop_func

def task():
print(‘task’)
time.sleep(1)

def preprocessing():
print(‘pre-processing has done.’)

# loop_task

元記事を表示

超初心者がAtcoder ProblemsのC問題を191回から200回までをpythonで解いてみた

解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!

191 Digital Graffiti

https://atcoder.jp/contests/abc191/tasks/abc191_c

“`python:practice.py
h,w = map(int, input().split())
S = []
for _ in range(h):
s = input()
S.append(s)
ans = 0
for row in range(h-1):
for col in range(w-1):
tmp = []*4
tmp.append(S[row][col])
tmp.append(S[row+1][col])
tmp.append(S[row][col+1])
tmp.append(S[row+1][col+1])
if tmp.c

元記事を表示

ABC 157 A – Duplex PrintingをPython3で解く

# 初めに
「[AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~](https://qiita.com/drken/items/fd4e5e3630d0f5859067)」の各問題の類題をPythonで解きます。
(解法に詰まって調べたとき、C++の解法が多くPythonしか分からない私では参考にできなかったため。)
*競プロ & Python初心者のため、解法やコードの改善例、別解等アドバイス頂けますと大変ありがたいです。

# [ABC 157 A – Duplex Printing](https://atcoder.jp/contests/abc157/tasks/abc157_a)

**【問題文】**
高橋君は、全 N ページから成る書類を両面印刷します。両面印刷では、1 枚の紙に 2 ページ分のデータを印刷することが出来ます。

最小で何枚の紙が必要か求めてください。

**【制約】**
– N は整数
– 1≤N≤100

**【入力】**
入力は以下の形式で標準入力から与えられる.
“`
N
“`
**【出力】**

元記事を表示

[python] NumPy-Mathematical functionsの備忘録

普段Numpyを扱う際に確認しがちな内容が多いのでその整理のために記事にしてみました。
よく使うものが増えたら随時
最後に参考にしているURLを載せているので拙い点があればそちらも一見のほど。

# 公式のdocumentation
– [Mathematical functions – NumPy](https://numpy.org/doc/stable/reference/routines.math.html)

# 目次
– 動作環境
– 三角関数

# 動作環境
|種類 |バージョン |
|:—————|:————–|
|MacBook Air |Monterey12.0.1 |
|python |3.8.3 |
|jupyter notebook|6.0.3 |
|numpy |1.18.5 |

まずはパッケージのインポートから
“`python:
import numpy as np
“`
num

元記事を表示

玉手箱の空欄推測問題をPythonで解いてみた 〜ソルバー編〜

# はじめに
玉手箱の空欄推測問題を解いてみたのソルバー編です.[前回](https://qiita.com/sekishoku/items/532e34981da9126b737e)までで問題を解く上で必要な値の取得までできているので,今回は実際に問題を解いていきます.

# 問題設定
空欄推測問題は以下のような問題で,テーブルの数値が二次元配列で与えられ,予測する値がNaNになっていることを想定しています.
tama.png

(https://jyosiki.com/spi/tama31_a.html より引用)

運賃を予測するので,運賃を目的変数,その他の値を説明変数とした線形回帰問題として解きます.数式で書くと
“`math
y_{運賃} = w_{フェリーの本数} \times x_{フェリーの本数

元記事を表示

玉手箱の空欄推測問題をPythonで解いてみた 〜文字認識編(pyocr)〜

# はじめに
玉手箱の空欄推測問題を解いてみたの文字認識編です.[前回](https://qiita.com/sekishoku/items/4d92856139d1a5a943ea)のGUI編で値の入力をするインターフェースは作りましたが,一々値を入力するのも面倒くさいので,どうせなら表を読み取って自動で値を入力するようにしてしまいます.

# 文字認識部分
Pythonには既に文字認識を行えるpyocrというライブラリが存在するので,それを使うことにしました.少しインストール手順が面倒くさいです.

インストールしてしまえば後は簡単で,ほんの数行で画像から文字列を抽出してくれます.pyocrに登録されているエンジンを使って,それに画像を与えるだけです.認識する言語も指定できlang引数で指定します.今回は日本語を想定しているので,jpnを与えています.
“`Python
import pyocr
from PIL import Image

engine = pyocr.get_available_tools()[0]
img = Image.open(‘test.png’)
t

元記事を表示

玉手箱の空欄推測問題をPythonで解いてみた 〜GUI編(Tkinter)〜

# はじめに
玉手箱の空欄推測問題を解いてみたのGUI編です.問題の値を入力し,結果を表示するためのインターフェースを作っていきます.

# 概観
完成予想図としては下のような感じになります.

実装にあたってPythonだとTkinterというライブラリがよさげだったので,それを使うことにしました.

# 前準備
まず,はじめにウインドウを作ります.これはほぼおまじないなので,定型文通りに作っています.
“`Python3
import tkinter as tk

root = tk.Tk()
root.title(‘solver’) # ウインドウのタイトル
root.geometry(‘550×260’) # ウィンドウの大きさ
root.resizable(width=False, height=False) # ウ

元記事を表示

玉手箱の空欄推測問題をPythonで解いてみた

# はじめに
就活を始めると大体の人が適性検査を受けることになりますが,Web上で受ける知能に関する検査は大きくSPIと玉手箱の2種類があると思います.そのうちの玉手箱には下の図のような表を読み取って,空欄に当てはまる値を予測させるという問題が出ます.

tama.png

(https://jyosiki.com/spi/tama31_a.html より引用)

この問題であれば,答えの選択肢として
① 495 ② 510 ③ 525 ④ 540 ⑤ 555
の5つがあります.ちなみに模範解答は②らしいです.

私はそこまで頭が良くないので,これらの知能テストがすこぶる苦手です.特にこの類推問題関連は難しすぎて「絶対に答えが一意に定まらないだろ」と発狂しながら解いていました.なので,面倒くさいことはPythonに

元記事を表示

Python 関数名を取得する

pythonのオブジェクト

“`python
def my_func():
return

print(my_func.__name__)
“`

“`実行結果
‘my_func’
“`

# 使用例

## マルチスレッドの実行時にタスク名(関数名)をスレッド名にする

“`python
from threading import Thread

def task1():
while True:
break

def task2():
while True:
break

task_list = [task1,task2]
for task in task_list:
th = Thread(target=task, args=(), daemon=True, name=task.__name__)
th.start()
“`

## wrapperにして使う
@shiracamusさんにコメントいただきました。

“`python
def greet(callback):
print(

元記事を表示

Python 入門2 (文字列, リスト)

# はじめに

このシリーズは、プログラミング経験やアルゴリズムとデータ構造などの知識がある方に向けて、Pythonの基礎について解説することを目的としています。

一つの記事あたり大体15分程度で読み終われるように文章量を調整しています。

この記事はPython入門シリーズの第2回目の投稿にあたります。

今回の記事ではタイトルにもある通り、文字列とリストについて解説します。

# 目次

– 文字列
– 文字列の宣言
– 値の埋め込み
– 文字列の操作
– リスト
– リストとは
– リスト内包表記
– スライス
– range関数

# 文字列

### 文字列の宣言

“`str.py
str1 = “私は”
str2 = ‘”犬”が好きです。’
str3 = str1 + str2 # 文字列の結合

print(str3)
“`

> 私は”犬”が好きです。

Pythonでは、文字列の記述方法としてシングルクォーテーション、またはダブルクォーテーションのいずれかを用いることができます。

この二通りのやり方

元記事を表示

半日で出来る!Python導入~スクレイピング処理

# 概要

【内容】
 ・Pythonの開発環境を導入する
 ・指定したWebサイトの情報を取得するプログラムを作成する

【想定読者】
 ・Python、ないしはスクレイピングに興味があるが、手が出せないでいる方

【使用データ】
 弊社Webサイト:https://www.anestec.co.jp/

# 1.Pythonの開発環境を(手軽に)導入する
## 1-1 .Pythonのバージョン、どちらを選ぶか?

Pythonには2.x版と3.x版があり、文法や出力結果が異なっている。また、一部の機能において互換性を持っていない。
現在、2.x版のサポートは2020年ごろに終了しており、3.x版に対応したライブラリも数多く提供されているため、**新規に導入するのであれば3.x版が強く推奨されている。**

## 1-2.Pythonの開発環境
Pythonには用途に応じた豊富なライブラリが存在している。
ライブラリが標準搭載されているプラットフォームを利用することで、効率よく開発を進めることが出来る。

**Anaconda**
データサイエンスに特化したプラットフォームで、デ

元記事を表示

3時間で分かる!複数ページのスクレイピング~gmail連携

# 概要

【内容】
 ・複数のページをスクレイピングし、情報をCSVファイルに出力する
 ・出力したCSVファイルをgmailに添付して送信する
 ・【参考】Spyderの画面について特筆すべき箇所

【想定読者】
 ・前回のページ内容を把握している方

https://qiita.com/Anest_Doi/private/9cf344b13cd173af2ce1

【使用データ】
 「現代用語の基礎知識」選 ユーキャン新語・流行大賞
  https://www.jiyu.co.jp/singo/index.php

# 1.スクレイピングを行う
## 1-1.前準備
前回と同じくスクレイピングを実施する為に、対象サイトの構成を把握する必要がある。
今回はユーキャン新語・流行語大賞について、1994年(第11回)~2021年(第38回)までの情報を取得するプログラムを考える。

**対象サイトの構成**
第11回のページと、第12回のページでURL部分の差異が末尾のみであることが分かる。
また、ページ構成は両者ともに以下のフォーマットが用いられている。
本体部分は”contents

元記事を表示

OTHERカテゴリの最新記事