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

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

Python初心者がクイックソートを整理する

###これは備忘録です
ホントに忘れそう
#引用サイト
今回は先に整理するために拝見させていただいたサイトを紹介させていただきます

– [アルゴリズム参考](https://qiita.com/muijp/items/257e8b9b49d891137d56)
– [トレース参考](https://www.suzu6.net/posts/68-quicksort/)

それぞれ少しだけアルゴリズム自体が違いますが同じクイックソートなので@muijpさんのアルゴリズムを元に整理させていただきます

#プログラム
[@muijpさんのクイックソート](https://qiita.com/muijp/items/257e8b9b49d891137d56#%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88-quick-sort)に先日@shiracamusさんからアドバイスをいただいたランダム配列のプログラムとデバッグ用の出力を入れました

“`q_sort.py
def qSort(a):
print(a

元記事を表示

データサイエンス100本ノックをColaboratoryでやりたい

データ分析の練習コンテンツ[「データサイエンス100本ノック(構造化データ加工編)」](https://digitalpr.jp/r/39499)がデータサイエンティスト協会から公開されました。
動かすにはDockerの操作が必要なので、手軽に始めて見たい方向けにColaboratoryで動かす方法を残しておきます。
## 1.データをダウンロードする
まずは適当なノートブックを作成してColaboratoryを開きましょう。
開いたら以下のコマンドを実行して、GoogleDrive上にデータをダウンロードします。

“`python
from google.colab import drive
drive.mount(‘/content/drive’)

!git clone https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess.git ‘drive/My Drive/100knocks-preprocess’
“`
ドライブのマウントを初めて実行する方は、実行したセルの下に以下の表示が現れ

元記事を表示

【覚書】Windows環境でOpenCVチュートリアル(顔認識)をやってみた話

検索系の相談で、図面を全文検索できないかといった相談があり
実現確度の検証のためにOpenCVのチュートリアルをやってみた。

以下は自分が行った手順の覚書です

**前提**
OS: 
 Windows10 64bit

Python:
 Python3.7(Anaconda3)

**目標**
 OpenCV環境の構築から、簡単なチュートリアル実施まで(とりあえず顔認識くらいまでは実施したい)

# 準備

## アナコンダのインストール

https://www.anaconda.com/products/individual

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/b1fa2f95-22c1-6a6b-2f4a-eb845dcb7637.png)

## OpenCVのwhlをダウンロード

Releases

・上のタブからRELEASESをクリック。
・OpenCV – 4.2.0のSourcesをクリ

元記事を表示

Raspberry Piで温度を測定・比較し、グラフを自動生成する

Qiita 4回目の投稿になります。
IT業界未経験で言葉の定義が間違っている可能性があります。お気づきの点があればアドバイスいただけると助かります。

私の家は築25年の木造建築の一軒家で、冬は1階がとても寒く、夏は2階がそこそこ暑くなってしまいます。
また、木造建築であるためか、家の中の温度変化がゆるやかに感じています。
例えば、6月の朝9時~11時くらいは涼しいのですが、夕方19時くらいは家の中がじめじめします。

そこで、いろいろな季節・場所で温度データを測定したく、RasberryPiで温度データの取得・データの加工を行ってみました。

##はじめに
本当は複数ヶ所で同時刻に温度を測定し比較したかったのですが、予算の都合でRasberryPiを1つしか入手できなかったため、私の家の近くの気象庁のデータと測定データを比較することにしました。

1. DHT11という温度センサーで60分ごとに温度を測定する
2. BeautifulSoupで気象庁の気象データをスクレイピングする
3. matplotlibでグラフを作成する
を行いました。

なお、スクレイピングとはウェブサイト

元記事を表示

Python超初心者の超初心者のためのPython #リスト

環境
windows7 (Mac Book Pro 16inch欲しい)
Visual Studio Code
chrome
python ver3.8.3

この記事はプログラミング初心者かつPython初心者に向けて記述します。

##リスト(配列)

リストとは例えると箱の中に値(数値、文字列)を入れるモノです。
どのようにその箱(リスト)を作るかというと、Pythonでは角括弧の`[ ]`です。
この`[ ]`の中に値(数値、文字列)を入れてあげます。

“`python:list.py
[1,2,3,4,5]

[‘peach’,’princess’,’kuppa’,’mario’]

“`

このように個々の値を,(カンマ)で区切り箱(リスト)の中に入れていきます。

箱(リスト)を作っただけでは機能しないので、使い方は下記のように`変数`
と一緒に使います。

“`python:list.py
num_list=[1,2,3,4,5]

mmaker=[‘peach’,’princess’,’kuppa’,’mario’]

print(num_list)
#

元記事を表示

[ev3dev×Python] 表示、音声、LEDの制御

この記事はPythonでev3を操作してみたい人のための記事です。
今回はインテリジェントブロックを使ってテキストや数値を表示したり、音声を再生したり、LEDを制御していきたいと思います。

#目次
0 . 用意するもの
1 . 表示
2 . 音声
3 . LED
4 . プログラム例

#0.用意するもの
◯ ev3(インテリジェントブロック、タッチセンサ、ジャイロセンサ)
◯ パソコン(VSCode)
◯ bluetooth
◯ microSD
◯ [資料](https://buildmedia.readthedocs.org/media/pdf/python-ev3dev/latest/python-ev3dev.pdf)(これをみながら進めていくのがオススメです。)

#1.表示

####1-0 . 表示の基礎プログラム ①
“`display00.py
#!/usr/bin/env python3
from time import sleep

print(“HELLO WORLD”)
sleep(3)
“`

**Point** : インテリジェントブロッ

元記事を表示

【python】list操作の主要な破壊的メソッド一覧(追加・削除・ソート)

#【python】list操作の主要な破壊的メソッド一覧(追加・削除・ソート)

元のデータを上書きする、破壊的な主要メソッドの一覧。

**目次**

1. [insert](#insertメソッド)
2. [append](#appendメソッド)
3. [extend](#extendメソッド)
4. [スライスで追加](#スライスで追加)
1. [要素追加](#要素追加)
2. [置き換え](#置き換え)
5. [remove](#removeメソッド)
6. [pop](#popメソッド)
7. [clear](#clearメソッド)
8. [del文](#del文)
1. [インデックス番号を指定して削除](#インデックス番号を指定して削除)
2. [範囲を指定して削除](#範囲を指定して削除)
3. [すべて削除](#すべて削除)
9. [sort](#sortメソッド)
1. [昇順ソート](#昇順ソート)
2. [降順ソート](#降順ソート)
10. [reverse](#reverseメソッド)
11

元記事を表示

機械学習をなんとなく学習する

#機械学習について何も知らない工学部1年が勉強してみた<第0回>
今回は最近話題の機械学習についてなんとなくやってみたかったので挑戦してみました。
飽きっぽい性格なのでこんな感じで記事書いとけば復習にもなるし、少しは継続するかと思って書いてみました。
最近Qiitaでいろんな機械学習の記事を読んでいて
「アニメのゆるゆりの絵から制作会社を特定する」

などの面白い記事を何個か見つけたので、自分もこんなことを将来的に実装できるよう頑張ってみます。

#学習教材
いろんなサイトを見た感じTensorflowが情報量が多くてよさそうだったけど、自分の性格を踏まえて強制感のある物を探したところ、courseraというサイトにあるstanfordの講義が1ヶ月くらいで完了できて、毎週課題を提出する形式で、何よりも**無料**だったのでこのサイトだけで学んでみます。

次回以降もこんな感じでつらつらと書き連ねていきます。

元記事を表示

Python学習中に出会った記法

# Python学習中に出会った見知らぬ記法たち

## 配列の中にコロン [スライス]

hairetu = [“a”,”b”,”c”,”d”,”e”]

という配列がある状態で、

hairetu[1:3]

と指定すると、

“b”,”c”,”d” と帰ってくる。

また

hairetu[:2]とすると
“a”,”b”,”c” と帰ってくる。

コロンはコロン前のインデックスからコロン後のインデックスまでの配列を切り出せる。

Pythonではスライスと呼ぶらしい。

元記事を表示

【仮】Windows + Discord.pyで発生してるSSL関連のエラーの解決策([SSL: CERTIFICATE_VERIFY_FAILED])

**注: この記事はとりあえず見つけた解決策を記したものです。これが安全であるという保証はできませんので何が起きても自己責任でお願いします。またこの記事が正確である保証もいたしません。**

### 概要
Discord.pyのbotをWindows上で動かそうとしたらSSL関連のエラーを吐いた。

“`
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1108)
“`

### 環境
– Windows 10 Ver 1903 (Build 18362.900)
– Python 3.8.2
– Discord.py 1.3.3

### 原因・解決方法
https://github.com/Rapptz/discord.py/issues/4159 を見た。
5/30日にルート証明書が切れてたらしい。(参考: https://crt.sh/?id=1)

本来アプデで入るはずの証明書4

元記事を表示

pythonでGUIを作ってみる。

# はじめに
どうも。久しぶりに記事を投稿します。和麿です。最近事情があり、スクレイピングを隠れてやっております。昔は、スクレイピングと聞いて、『は?それが何?』っと思っていたのですが、今はスクレイピングしなければいけないという強い思いに駆られています。本当に人の考えは立場により、そして時代によって変わっていくんだなと感じております。
さてさて、そういうことで、すっかりおさらばしたプログラムを最近チビチビ進めている状況です。今更ながら、カプセル化とか、学びながらコードを誰に咎められることもなく書いています。
プログラムはあくまで道具だと言われます。だから目的がなければ書く意味もない。学ぶ必要もないわけです。そこで、狂人は無理やり目的を作り出す。そういう道理になっているわけです。
ということで今回は、pythonを使ってGUIを作っていきたいと思います。具体的には、会社コードと指定した期間を入力したら、その間の株価の推移を表示してくれるアプリ(というのははばかられる)のコードを書いていきたいと思います。

#環境
環境を以下に示します。
・windows10
・python3(anaco

元記事を表示

筑波大学の機械学習講座:課題のPythonスクリプト部分を作りながらsklearnを勉強する (15)

前回
[筑波大学の機械学習講座:課題のPythonスクリプト部分を作りながらsklearnを勉強する (14)](https://qiita.com/legacyworld/items/d8274455667555248353)
https://github.com/legacyworld/sklearn-basic

# 課題6.6 ロジスティック回帰と対数尤度
Youtubeでの解説は第8回(1) 20分あたり
この課題自体は非常に簡単だったので、ロジスティック回帰の理解のために自分でちょっと追加でプログラムを組んでいる。
訓練サンプル($x_{1i},x_{2i} ,i=(1,2,\cdots,10)$)に対して$E(w)$をそれぞれ求める問題。
$E(w)$は以下のようにあらわされる。

“`math
E(w) = -\sum_{n=1}^{N}{t_n\,ln\hat t_n + (1-t_n)\,ln(1-\hat t_n)}
“`
今回の例だと
$N = 10$
$t_n = (1,0,0,1,1,1,0,1,0,0)$

$E(w)$を求めた後にロジスティック回帰を

元記事を表示

Pyhtonの基礎復習はこれだけ ~2~

#4.リスト [ ]

###リストの使い方

– リストの値の出力方法。

インデックスは0から数える

“`Python
spam = [‘cat’, ‘bat’, ‘rat’, ‘elephant’]
spam = [0]
cat
spam = [1]
bat
spam = [2]
rat
spam = [3]
elephant
“`

– 負のインデックス

“`Python
spam = [‘cat’, ‘bat’, ‘rat’, ‘elephant’]
spam = [-1]
elephant
“`

– リストの中のリストの値の出力方法。

初めの[ ]でリストを指定し、次の[ ]で値を指定する。

“`Python
spam = [[‘cat’, ‘bat’, ‘rat’, ‘elephant’], [‘1’, ‘2’, ‘3’]]
spam = [0][1]
bat
“`

– 部分リストの出力方法

スライスを用いることで部分リストを取得できる。
__第1引数は開始インデックスを表し、第2引数は終了値の1小さい値を表す。__
__値を省略すると0になる。

元記事を表示

Formatter autopep8 is not installed. Install? の解決

# 起きてた問題
VScodeでpythonファイルのlint&formattingの設定をしたかった。
`python vscode lint`などと検索すると[このような記事](https://qiita.com/psychoroid/items/2c2acc06c900d2c0c8cb)に引っかかって、とりあえず書かれるがまま以下のコードを`setting.json`にそのままコピペしました。

“`json:setting.json
“python.linting.enabled”: true,
“python.linting.pylintEnabled”: false,
“python.linting.flake8Enabled”: true,
“python.linting.lintOnSave”: true,
“python.formatting.provider”: “autopep8”,
“editor.formatOnSave”: true
“`

これで何となく保存時に整形を走らせてくれそうだと期待し、保存を試みたところ、VScodeから以下の警告が。

元記事を表示

ゼロから始めるLeetCode Day58 「20. Valid Parentheses」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

フィボナッチ数に出てくる数字に偏りはあるのか。

#初めに

・プログラム歴1か月ちょいのペーペーです。
・大学では農学学んでます。
・大学2年生です。

##今回の記事について
フィボナッチ数列に出てくる数字に偏りがあるのか愚直に調べていきます。
総当たりで調べるので数学的根拠などは与えません。(与えられません)
ちなみに
F_0=0
F_1=1のフィボナッチ数列で考えていきます。

##プログラムについて
プログラムの勉強を兼ねて自作したプログラムで調べます。
まず桁数を調べました
###フィボナッチ数列の桁数
調べた結果以下のようになりました。

“`
F_10 : 2桁
F_100 : 21桁
F_1000 : 209桁
F_10000 : 20899桁
F_100000 : 208988桁
“`
桁数/nは収束してそうですね。(調べたら面白そうかも)
以下調べるのに用いたプログラム

“`
def fibo(N):
A=0
B=1
if N==0:
return 0
elif N==1:
return 1
for i in range(1,N+1

元記事を表示

python3での競プロの標準入力部分のテンプレートらしきもの

#初めに
最近、自分のスキルアップのためにAtCoderで競技プログラミングを始めてみました。
正直、周りのつよつよエンジニアの解く速度に圧倒されていますが、少しずつ解けるようになってきて楽しいです。

始めたての時にまず詰まるのが、与えられたデータの入力をどう処理するかです。
初心者用の問題でよくあるのが、整数の入力だったり、N個の数値が入力されたり…。
Pythonを使っている側からすると、正直あんまり標準入力とか使わないんですよね(私だけではないですよね…?)
そこで、最初の入力系でよく使う個人的なテンプレートみたいなのをまとめたいと思います。

#Pythonでの標準入力
私が実際に使っているのは、sys.stdin.readline()で、一行ずつ読み込んでくれます。
改行コードも読み込みますが、使いやすいので使っています。
事前にinputにsys.stdin.readlineを代入しておくと、input()だけで使えるので便利です。
このinputでは、文字列が得られます。

“`python:input.py
import sys

input = sys.s

元記事を表示

【Pandas入門】データ補間で為替データを増やしてみた♬

データ補間については通常の時系列データについて、以前取り扱った。
今回は、それをバックテスト目的に日足データを補間することにより、6時間、4時間、1時間、そして10分データを作成してその精度を見た。
###やったこと
・ラグランジュ補間公式
・Pandasデータの補間
・6時間~10分データ作成
・精度を見る
###・ラグランジュ補間公式
【参考】
・[【補間】線形補間から二次補間、ラグランジュ補間で補間する♬](https://qiita.com/MuAuan/items/fb984277e1fe3f958a91)
まず、(x0,y0),(x1,y1)を通る1次補間関数は、以下の関数で計算できる。

“`py
def interpolation(x0,y0,x1,y1,x):
dn = (x0-x1)
return y0*(x-x1)/dn + y1*(x0-x)/dn
#Lagrange interpolation
# y0*(x-x1)/(x0-x1)+y1*(x-x0)/(x1-x0)
“`
3点(x0,y0),(x1,y1),(x2,y2)を通る2次補間関

元記事を表示

Pillowで画像をnearest neighborでresizeするときの各ピクセル値を検証

# 概要
Pillowモジュールを使って画像をnearest neighborでresizeするとき、
どのピクセルから値を取得するのか(最近傍とするのか)を検証してみました。

各アルゴリズム(ニアレストネイバー、バイリニア、バイキュービック)で
画像がどのようになるのか(滑らかになるのかどうかなど)
について言及した記事はよく見ますが、
各ピクセルの値がどうなるのかについての情報が少なかったので書いてみました。

# ニアレストネイバー(Nearest neighbor、最近傍補完)について
アルゴリズム自体は単純。
下のリンク先などが参考になります。
詳しい内容はここでは割愛しますが、
要は一番近い場所のピクセル値をそのまま持ってくるアルゴリズムです。
https://algorithm.joho.info/image-processing/nearest-neighbor-linear-interpolation/

# 検証してみる
## 画像サンプルの作成
検証用として画像サンプルを作ってみました

“`python
import numpy as np
from PIL

元記事を表示

OpenCVでの色検出方法の比較 inRange , numpy , cupy

#はじめに
OpenCVで遊ぶときに、色をベースに物体検出がしたくなるときがあります。
多くの場合、OpenCVで色検出をするときに

– cv2.cvtColorをつかって、RGB色空間からHSV色空間へ変換
– cv2.inRangeでHSV色空間の範囲を指定して2値化
– 出てきた画像からfindContoursして形でフィルタリング

という方法が紹介されています。
一方で同様に、Numpyを使って画素毎の条件で2値化する方法が考えられます。
ここでは、この2つの方法のメリット、デメリットとcupyでの実装も含め速度をXavierNX上で比較しました。

#やったこと
HSVに変換したあとinRangeで2値化する方法を含め以下の4条件を比較しました
1、inRangeを使って緑のボールを検出する方法
2、numpyで条件を指定して2値化する方法
3、numpyでinRangeだとできない条件で検出する方法
4、3をCUPYで高速化した場合
1と23で結果の画像を 1234で速度をそれぞれ比較してみました。
python3で試したソースは後半に4通りつけています。

#ソース画

元記事を表示

OTHERカテゴリの最新記事