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

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

PythonでSQLite3を扱ってみる[備忘録]

#### 初めに
`sqlite`は`Python`に標準で入っているモジュール。インストールせずに`import`できる。
#### コネクト
“`Python
import sqlite3

db = “./exsample.db” # データベースまでのパス
con = sqlite3.connect(db) # コネクト
“`
#### テーブルを作る
“`Python
cur = con.cursor()
table = “Friend” # テーブル名
sql = f”””create table {table}(
id integer primary key autoincrement,
name text,
age integer,
)”””
cur.execute(sql) # SQL実行
self.con.commit() # 保存
“`
`id`は`primary key`で主キーにし、`autoincrement`で自動で振り分けるようにしている。
#### テーブルがなかったら作る。
“`Python
table = “Fri

元記事を表示

2. Pythonで綴る多変量解析 6-2. リッジ回帰・ラッソ回帰(scikit-learn)[リッジ回帰vsラッソ回帰]

* 重回帰から派生した**リッジ回帰・ラッソ回帰は、重回帰の過学習を抑制**するしくみを持っていますが、具体的には次式のとおりです。

![2_6_2_01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502109/4304fe97-8996-cea4-e159-5839559545fa.png)

* リッジ回帰が**重みの2乗**を扱うのに対して、ラッソ回帰は**重みの絶対値**となっています。
* 前節のくり返しになりますが、従来の重回帰分析は、予測値と観測値の2乗和誤差を最小にする係数を求めます。これに、変数の数と重みに応じたペナルティを加えることで、係数が大きな値になることを防ぎます。

**ここでは、ラッソ回帰もまじえて3つの重回帰モデルを比較してみたいと思います。**

####⑴ ライブラリのインポート
“`python
# データ加工・計算・分析ライブラリ
import numpy as np
import pandas as pd

# グラフ描画ライブラリ
impo

元記事を表示

一定区間の整数の出現回数を数え上げる方法 4種類 (imos法を含む)[Python実装]

#背景

競技プログラミングAtCoderのABC127のC問題を解いていた際に、連続した整数の集合の共通部分がいくつあるかを考える問題を考えました。様々な解法があった問題で非常に面白いと感じましたので、記事にすることにしました。問題は以下のリンクから参照することができます。ABC127 C問題の解説も行っていますので、ネタバレ注意です。

[AtCoder Beginner Contest 127 C – Prison](https://atcoder.jp/contests/abc127/tasks/abc127_c)

#C – Prison
まずは問題文から見ていくことにしましょう。

スクリーンショット 2020-07-31 2.49.32.png

問題文の概略を書きます。
M個のゲートがあり、そのゲー

元記事を表示

暇なので『RPAツール』を作る #3    selenium編 ログインの自動化

#はじめに
皆さん、また一ヶ月ぐらい間が空いてしまいました。enp(えん)です。メガネかけてます。
この記事は『RPAツール』を作ろうとする人の進捗報告になります。
RPAやRPAツールの作り方が書いてあるものではございませんので、ご了承ください。(もしかしたら、ソースは少しだけ載せるかもしれません。気分次第です)
今回はseleniumと仲良くなろうPart.1です。やったこととしては『ログイン操作』だけですが、結構奥深い内容でした。
また長い記事になってしまいますが、お付き合いいただければ幸いです。

#seleniumって何ができるの?
まずはseleniumについてザックリ知りましょう。
seleniumは__プログラムで直接ブラウザを操作するツールです。__
マウスポインタを利用してブラウザを操作するのではなく、
seleniumがブラウザに命令を出して操作を行うようなイメージですね。
そのためseleniumでブラウザを動かしている間、他の作業を行うことが可能になるでしょう。
(長い動作時間のものを試していないため、実際どうなのかは未検証です)

#seleniumでログイ

元記事を表示

pythonで主成分分析(Scikit-learn版,pandas&numpy版)(【高等学校学習指導要領 情報Ⅱ】教員研修用教材)

# はじめに
主成分分析とは、対象の特徴を表す多変量のデータから複数の変数をまとめて主成分(特徴量)を作成する手法です。
次元削減が行える手法であり、データの構造を見やすくしたり、機械学習の計算量を削減して計算スピードを向上させたりすることができます。
簡単に言うと、相関のある多変量のデータを、ばらつきの方向と大きさに注目してより相関の少ない関数により、データを表現する手法です。
今回は、文部科学省のページで公開されている情報Ⅱの教員研修教材内の「主成分分析と次元削減」で取り上げられているものをpythonで実装しつつ、仕組みを確認していけたらと思います。

# 教材
[高等学校情報科「情報Ⅱ」教員研修用教材(本編):文部科学省](https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/mext_00742.html “高等学校情報科「情報Ⅱ」教員研修用教材(本編):文部科学省”)
[第3章 情報とデータサイエンス 前半 (PDF:8.9MB)](https://www.mext.go.jp/content/20200702-mxt_jo

元記事を表示

RとPython書き比べ(ユークリッドの互除法)

# はじめに
「RとPython,やるならどっち?」
こんな感じの記事が世の中には溢れています。
「R Python」とかで検索した日には終わらない論争を目の当たりにすることとなるでしょう。
一般的には,「Rはデータ解析特化・アカデミアでの使用が多い」
「Pythonは汎用的・ビジネスサイドで多用」のような括りが語られています。

ただ,こういった記事を読んだところで
実際にコーディングするときに,どこがどう違うのか,ということはわからない。
やはり違いを知るには両方やってみる必要がありそう…
そう思い立って簡単なプログラムを両方の言語で書いてみようということになりました。

ちなみに筆者はR歴1年で,普段はTidyverseでdata.frameをいじいじしているため,
今回のような制御構文を書くことはほとんどありません。
Pythonもやっと環境構築を終えたばかりなので,今回の記事はその練習用にもなっています。
間違い・もっといいコードあるよというコメントがあればじゃんじゃんお願いします。

# ユークリッドの互除法
今回実装するユークリッドの互除法についての説明を置いておきます。

元記事を表示

pythonでインピーダンス解析(EIS)【impedance.py】

##概要
インピーダンス(電気化学インピーダンス)の解析をpythonで行えるライブラリ[**impedance.py**](https://impedancepy.readthedocs.io/en/latest)を紹介します。測定したNyquist plotを、構築した等価回路モデルへフィッティングしてパラメータを得るところまでやります。
有料ソフト等が不要なので気軽に使えます
基本的にimpedance.pyの[公式チュートリアル](https://impedancepy.readthedocs.io/en/latest/getting-started.html#)に沿って説明し、ところどころ補足する程度ですのでよっぽど英語を読みたくない人向けです。
説明が要らない人用に一番下にコードをまとめて掲載してます。

###課題
オープンソースのツールだけを使ってインピーダンス解析をしたい

電気化学インピーダンス解析には測定装置に付随する解析ソフトが必要ですが、測定用PCでいちいち解析するのはめんどくさいですよね。。。
しかしソフトは有料のものが多く、ライセンスの関係で自分のPCに

元記事を表示

「データサイエンス100本ノック(構造化データ加工編)」 Python-016 解説

##Youtube
[動画解説](https://youtu.be/JLZl6K3DIL4)もしています。

##問題
P-016: 店舗データフレーム(df_store)から、電話番号(tel_no)が3桁-3桁-4桁のデータを全項目表示せよ。

##解答
“`:コード
df_store.query(“tel_no.str.contains(‘[0-9]{3}-[0-9]{3}-[0-9]{4}’)”, engine=’python’)
“`

“`:出力
store_cd store_name prefecture_cd prefecture address address_kana tel_no longitude latitude floor_area
0 S12014 千草台店 12 千葉県 千葉県千葉市稲毛区千草台一丁目 チバケンチバシイナゲクチグサダイイッチョウメ 043-123-4003 140.1180 35.63559 1698.0
1 S13002 国分寺店 13 東京都 東京都国分寺市本多二丁目 トウキョウトコクブンジシホンダニチョウメ 042-123-

元記事を表示

“categorical_crossentropy”と”sparse_categorical_crossentropy”の違い

# 結論
– 使用するラベルが違います。違いはそれだけです。”categorical_crossentropy”にはonehot(どこか1つが1で他は全て0)のラベルを使用します。”sparse_categorical_crossentropy”のラベルには整数を使用します。

# one-hotと整数表現の違い
## 例)10分類の場合

|one-hot表現|整数表現|
|:——————————–:|:—:|
| [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.] | [9] |
| [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.] | [2] |
| [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.] | [1] |
| [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.] | [5] |

# 整数ラベルをone-hotラベルに変換
データセットでは整数ラベルのものが多い印象ですが,損失関数の多くは整数ラベルではなく,one-hotラベルを与えてあげないと動きません.そうい

元記事を表示

【Python初心者】if __name__ == ‘__main__’を手を動かして理解する。

何をするか
—-
`if \_\_name\_\_ == ‘\_\_main\_\_ ‘:`とすることで、
出力がどう変わるかを4steps+2stepsで体験しました。

anaconda>spyderなどツールで間接的に.pyを実行する際の挙動を示しています。
$ python XXX.py と実行する場合は記事下部の参考記事からご覧ください。

いざ実践

#\_\_name\_\_

###1. まず、`print(‘Hello!’)`する関数をかき、「hello.py」として保存する。

“`python:例1_hello.pyを定義する
#hello.py
def function():
print(‘Hello!’)
“`

###2\. 次の新規.pyで「hello.py」をimportしてみる

“`python:例2_hello.pyをimport
import hello
hello.function()
# Hello!
“`

functionが実行されたことがわかる。

###3\. hello.pyを編集して、

元記事を表示

【ラビットチャレンジ(E資格)】深層学習(day2)

#はじめに
2021/2/19・20に実施される日本ディープラーニング協会(JDLA)E資格合格を目指して、ラビットチャレンジを受講した際の学習記録です。

ラビットチャレンジは「現場で潰しが効くディープラーニング講座」の通学講座録画ビデオを編集した教材を活用したコースです。
質問等のサポートはありませんが、E資格受験のための格安(2020年6月時点での最安値)の講座です。

詳細は以下のリンクからご確認ください。
[](http://study-ai.com/jdla/)

#Section1:勾配消失問題
誤差逆伝播法が下位層に進んでいくにつれて、勾配がどんどん緩やかになっていく。
そのため、勾配降下法による更新では下位層のパラメータはほとんど変わらず、訓練は最適値に収束しなくなる。

###勾配消失の解決方法
– 活性化関数の選択

– ReLU関数
$$ f(x) = \left\\{ \begin{array} \\\
x & (x > 0) \\\
0 & (x \leq

元記事を表示

コーディング面接練習サイト「Pramp」を使ってGAFAの面接に挑む

# はじめに
**コーディング面接**というものをご存知でしょうか?

コーディング面接とはGAFAなどをはじめとする海外のTech系企業などで広く行われている面接で,データ構造やアルゴリズム,システムデザイン等の知識を問うものです.
[面接 – Google](https://careers.google.com/intl/ja_jp/how-we-hire/interview/#interviews-for-software-engineering-and-technical-roles)

Googleで行われるようなコーディング面接は,

– 45分程度の時間内に
– データ構造やアルゴリズムの基礎に関する問題を
– 面接官と話し合いながら(多くの場合英語で)
– ホワイトボードにコードを書いて解く

といった特徴

元記事を表示

Docker コンテナを構築して altair から png 保存する

私は長い試行錯誤を要したので成果だけでもアップしておく。`chromedriver-binary` の最新版を入れたら `google-chrome-stable` よりメジャーバージョンが大きくてエラーが出た。Chrome 側で `stable` 以外を使ってもよさそうだが、Chrome に `chromedriver-binary` を合わせることにした。

“`Dockerfile:Dockerfile
FROM python

# Chrome のインストール
RUN wget -q -O – https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add && \
echo ‘deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main’ | tee /etc/apt/sources.list.d/google-chrome.list && \
apt update && apt install -y google

元記事を表示

右クリックと左クリックで画像を指定フォルダに移動させてみた

#はじめに
 楽に画像を分類できればなーと考えながら作りました。

#作ったもの
 右クリックと左クリックで画像を指定フォルダに移動させるプログラムを作りました。

 画像は神奈川工科大学の標準画像データベースSIDBAからダウンロードしました。
![explorer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537831/ab427dd3-c252-0c2e-a93c-f6d67c003802.jpeg)

 プログラムを実行すると、5枚の画像が表示されます。
![window.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537831/f4f4a04c-4468-f1fc-facb-90374a472740.jpeg)

 地球の画像をクリックしました。ウィンドウが更新されます。

![updated.jpg](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

PyTorchで日本語BERTによる文章分類&Attentionの可視化を実装してみた

## はじめに

[huggingface](https://github.com/huggingface/transformers)のtransformersのおかけでPyTorchを使って日本語BERTモデルがとても簡単に扱えるようになりました。

既にいろんな方がhuggingface/transformersを使って日本語BERTに関する記事を投稿されておりますが、私も勉強がてら記事を投稿しようと思いました。

### 参考
[つくりながら学ぶ! PyTorchによる発展ディープラーニング](https://www.amazon.co.jp/%E3%81%A4%E3%81%8F%E3%82%8A%E3%81%AA%E3%81%8C%E3%82%89%E5%AD%A6%E3%81%B6-PyTorch%E3%81%AB%E3%82%88%E3%82%8B%E7%99%BA%E5%B1%95%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%83%A9%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0-%E5%B0%8F%E5%B7

元記事を表示

【Python】リストや文字列から数字のみ抽出する

Pythonでスクレイピングを始めたばかりのスクレイピング初心者です。今回は、スクレイピングで抽出したデータから、数字のみを抽出する方法をメモしておきます。

## 目的

スクレイピングで抽出したデータから、数字のみを抽出する

## 実装

**正規表現**を使って、数字のみ抽出

reモジュールを使用します。ターミナルから以下のコマンドを実行して、regexをインストールしましょう。

“`
$ pip install regex
“`

その次に、sample.pyに**reモジュールをインポート**しましょう。

“`sample.py
import re
“`

これでreモジュールを使う準備ができました。

### 文字列から数字のみ抽出

“`sample.py
import re

dt = “regnkrnfskrngkaer gksgnkq laergnnktga3r erfkl 登録者数 400人aelrkna erglknnarg”
num = re.sub(“\\D”, “”, dt)
print(num)

# 400
“`

### リス

元記事を表示

pipenvでpytorch@python3.8環境構築

### pipenvとは

* プロジェクト毎に、パッケージ管理、仮想環境の構築を行ってくれるツールです。
* 集団で開発する際に、環境を簡単に固定できるので、とても便利ですね。

### pytorchとは

* Python向けのオープンソース深層学習ライブラリで、Facebookの人工知能研究グループにより初期開発されました。
* 最近では、日本発祥の深層学習ライブラリのchainerの開発が併合されたことで話題になりましたね。

### 今回のゴール
* 今回は、python3.8+pytorchの環境をpipenvで構築して、実行確認することを目指します。
* インポートできる程度の確認を行います。runtimeな確認は今回はしません。

### 実行環境
* OS: windows10 Pro
* python: 3.8
* pipenv: 2020.6.2

### pipenvのinstall

“`terminal
$ pip install pipenv
“`

### python3.8で初期化

“`terminal
$ pipenv –python

元記事を表示

FastAPI 利用方法 ②Advanced – User Guide

##書いてあること
– FastAPIを利用した際のメモ(個人用メモのため間違っている可能性あり・・・)
– 公式サイトのドキュメント(Advanced – User Guide)に習って実装

##参考

[FastAPI](https://fastapi.tiangolo.com)

##環境

Docker環境を構築して動作確認

[Docker FastAPI](https://github.com/yoshi0518/Docker_public/tree/master/fastapi/latest)

###起動

“`shell:bash
# main.pyがルートディレクトリにある場合
$ uvicorn main:app –reload –host 0.0.0.0 –port 8000

# main.pyがルートディレクトリにない場合
$ uvicorn app.main:app –reload –host 0.0.0.0 –port 8000
“`

##Path Operation Advanced Configuration

###OpenAP

元記事を表示

transformerに関して

## transformerに関して(ざっくりまとめ)

・transformerとは

最近自然言語処理を勉強していて、transformというのを学んだので少しまとめてみました。勉強中ですので間違い等ございましたらご指摘いただけると幸いです。
transformerとは、transformerにある文字列を入力するとそれを変換して別の文字列を出力するもの。
例えば、
「”I am John Cena.”」 という文字列をtransfornerに入力すると「私はジョンシナです。」とかえすみたいな感じです。

形態素解析に関して

文字列はまず単語に分解する必要がある。英語の場合は、”I am John Cena.”みたいに文章が単語ごとに分けられているため単語に分割する必要がないが、日本語の場合は「私はジョンシナです。」のように文章が単語で分けられていない。そこで単語単位に分解するために形態素解析を行う。形態素解析とは簡単に言うと、文章を単語単位に分割し、それぞれの形態素の品詞等を判別する作業のことです。具体的例なとして、「私はジョンシナです。」を

元記事を表示

競技プログラミングにおける正規表現

# はじめに

最近、脳トレがてら `AtCoder` の過去問を解いています。
[AtCoderProblems](https://kenkoooo.com/atcoder/#/table/) の 簡単な問題から順に解いてる感じです。

やっていて気づきましたが、**文字列処理の問題で正規表現を使うと簡単に解ける場合が結構あります。**
ソートや貪欲アルゴリズムなど気づけば簡単なパターンがあるのは経験している方も多いと思いますが、そんな感じです。

簡単に解けるかどうかは慣れや人にもよると思いますが、コードがキレイに書けるのは間違いありません。**特に `C++` の場合、一般に文字列処理は複雑になりがちなため、顕著です。**
また、標準ライブラリのコードを使用するため、自前の実装に比べてバグを入れてしまう可能性を下げることができることが利点になります。

コードを提出して AC した後、もっと他にいい方法や書き方ないかなと、他の方のコードの拝見させてもらうことがあるのですが、あまり正規表現を使っているコードを見かけません。
実際、公式の解説でも正規表現という文字をまあ見かけないです

元記事を表示

OTHERカテゴリの最新記事