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

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

coverage で _sqlite3 のエラーが起こったとき

この前まで coverage で python の unittest のカバレッジをを評価していたのに、急にビルド環境が変わったらcoverageでエラーが出るようになった。

調べてみたら coverage のパッケージのエラーらしい。
参考 https://github.com/nedbat/coveragepy/issues/887

$ sudo pip uninstall coverage
$ sudo pip install -U “coverage < 5" で5以下のバージョンがインストールできる。

元記事を表示

今更ながらロジスティック回帰をNumPyで実装

scikit-learnを使えば一瞬だけど、勉強として自力で実装するのも良いです。

元の記事では多クラス分類やtrain_test_splitをスコープ外としていたので、

2クラス問題に簡易化して、学習データと同じデータで評価しています。

詳しくは下記の記事をご参照ください。
[ゼロから始める機械学習 第4回「ロジスティック回帰」](https://kakedashi-engineer.appspot.com/2020/03/29/machine-learning-4/)

“`python
from sklearn.datasets import load_iris
import numpy as np
iris = load_iris()
X_org = iris.data
y_org = iris.target
# 問題の簡単化(前回記事を参照)
idx = [y_org != 2]
X = X_org[idx][:,:2]
y = y_org[idx]
“`

“`python

class LogisticRegression:
def __init

元記事を表示

【Python】Switchのアルバムをゲーム別にフォルダ分けする

# 概要

– ファイルの名前を取得し、ファイルをディレクトリ毎に仕分けする

# ゲーム、楽しんでますか?

どうも、JoyconでSplatoon2を1000時間やったのを知り合いに頭おかしいよ…と蔑まれるSotonoです。
最近はスプラしてないんですが、他のゲームプレイしてると**スクショとか動画とか溜まってSDがパンパンになったり**してる日々です。~~新しいSD買えや~~

それではいけないな、でも消すの嫌だな…というわけでSDカードをPCにうつしてスクショを管理してるのですが、**日付別でしか分類されていない**のでちょっとこれが気に食わない…

というわけでファイルの名前をよく見るとゲーム毎で違うIDが振り分けられているので、これを使ってゲーム別にフォルダ分けしたほうが個人的に管理が楽チンだな!

では早速やっていきましょう。

# 画像の名前の分析

Switchのアルバム内に記録されているファイル名は、だいたい次の形式になっています。

> `[日時]-[ゲームID].[拡張子]`

– 日時
– 見たまんま、桁数が多すぎるのでコンマ秒まで記録してると

元記事を表示

kaggleを題材に、Kaggleスタートブックで勉強してみた【前編】

#1.目的

以前の投稿で、kaggleのKickstarter Projectsを題材に、各モデルの精度検証を行いました。
[kaggleを題材に、機械学習モデルの精度比較をしてみた]
(https://qiita.com/Hawaii/items/4f0dd4d9cfabc4f6bb38)

※kaggleのKickstarter Projectsのサイトはこちら
https://www.kaggle.com/kemical/kickstarter-projects

今回はそちらも参考にしつつ、**3月に発売されたKaggleスタートブックを用いてより精度を向上させる過程を発信することが目的です**。
今回は新しいことの学びが多いので、前編・後編に分けていこうと思い、
本日の投稿は前編です。

###◆扱う題材
主には、私が知らなかった箇所に絞って取り組みたいと思います。
具体的には**「Pandas-Profiling,LightGBM,アンサンブル学習」**の3つです。

→今回はこの中のPandas-Profiling,LightGBMに取り組みます。

###◆その他

元記事を表示

Pythonでのチームアプリ開発に参画するための学習履歴~Djangoチュートリアル1・2・3~

# はじめに

前回、DockerでDjango環境を作り、簡単に触ってみたので今度は前回の補足を兼ねつつ公式チュートリアルを通してDjangoを少し掘り下げていきます。
今回はチュートリアルの1~3から個人的に大切だなと感じたところをPUしています。

[Djangoチュートリアル](https://docs.djangoproject.com/ja/3.0/intro/tutorial01/)

# include()について。

`include()`はURLconf(ここではurl.py)への参照を表す関数です。
引数に`urls.py`があるパス、第2引数に参照する`url.py`の名前を設定する。
ここではpollsの`urls.py`を参照したいので、`polls.urls`を設定することになります。

`path()`の引数は`route、view、kwargs、name`の4つを設定できます。
`route`はそのアプリケーションのルートアドレスになります。
`view`は呼び出したい`view関数`を指定します。
`kwargs`は任意のキーワードを辞書として`v

元記事を表示

Djangoの管理サイトでオブジェクトを追加する際に保存前処理を追加する方法

## 開発環境
– Python 3.7.3
– Django 3.0.5

※Class-Basedで開発していきます。

## models.py

“`python:models.py
from django.db import models

class Word(models.Model):
“””単語モデル”””

word = models.CharField(max_length=15, unique=True)
# 文字数フィールド
word_count = models.PositiveSmallIntegerField(blank=True, null=True)

def __str__(self):
return self.word

“`

## admin.py

“`python:admin.py
from django.contrib import admin

from .models import Word

class WordAdmin(admin.ModelAdmin):

元記事を表示

Pythonでひらがなをローマ字に変換する(ベータ版)

## 最初に
PyKakasiという日本語→ローマ字変換モジュールがあるので、忙しい方はそちらの導入をオススメします。

– 自分で書いてみたい!
– モジュール使うほどのものではない
– 後々自分でカスタムしたい

という方向けの記事です。

## 開発環境
– Python 3.7.3

## コード

“`python:chars_dict.py
hiragana = {

# vowel
‘あ’: ‘a’,
‘い’: ‘i’,
‘う’: ‘u’,
‘え’: ‘e’,
‘お’: ‘o’,

# consonant K
‘か’: ‘ka’,
‘き’: ‘ki’,
‘く’: ‘ku’,
‘け’: ‘ke’,
‘こ’: ‘ko’,

# consonant K”
‘が’: ‘ga’,
‘ぎ’: ‘gi’,
‘ぐ’: ‘gu’,
‘げ’: ‘ge’,
‘ご’: ‘go’,

}

“`

“`python:main

元記事を表示

[EV3DEV Python]Mortorクラス①

# Motorクラス

EV3の**MモーターやLモーターの制御**、**タンク**、**ステアリング**に関するクラス

## M,Lモーター単体(1つだけ)

### Mモーター
#### Mモーター(ON)

“`python:m_motor.py
from ev3dev2.motor import MediumMotor,OUTPUT_A

# 1.MediumMotor(ポート名) ・・・ ポート指定してMモーターを定義
m_motor = MediumMotor(OUTPUT_A)

# 2. on(スピード[0~100], ブレーキ方法[True/False]=True, 実行方法[True/False]=False)
# ? 引数名[値]=xxxxと書いてあるものはデフォルトの値が設定されているものです。コードで書くときには省略することができます。
# ?『実行方法』とは、この制御が実行されている間プログラムを先に進めるか、処理が終わるまで止めるかどうか
m_motor.on(100)
“`

**Mindstormでは・・・**
![image.png

元記事を表示

DHT11とRaspberry Piで温湿度を取得

DHT11は3ピンタイプを使用。

配線は下図のように。
GPIO14から温湿度を取得。

![lchika_ブレッドボード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/96507/1ccd39aa-c48f-ee03-aeb6-9d4b5ddec777.png)

下記リポジトリのコードを利用。

“`bash
$ git clone https://github.com/szazo/DHT11_Python
$ cd DHT11_Python
$ python3 -m pip install .
“`

サンプルコードを実行。

“`bash
$ python example.py
Last valid input: 2020-04-13 23:25:23.831141
Temperature: 21.1 C
Humidity: 50.0 %
Last valid input: 2020-04-13 23:25:29.914568
Temperature: 21.1 C
Humidity:

元記事を表示

TypeError: ‘int’ object is not subscriptableでハマった話

今までわりとフラットに処理を記述してプログラムを書いていました。言い換えれば、思いつくままに処理を書いていたという感じ。アジャイルどころか、「こんなコードかな?」と思いついたままに、頭の中、思考がダダ漏れるままに処理を記述していたという感じです。プログラムを書いているというよりは、原稿書いてるというイメージだったのかも。

多少なりとも勉強が進んで、これじゃいかんと。別に繰り返し利用する処理じゃなくても、関数で書くようにしてみようと。データも、変数に入れ込むときにいちいち考えながら加工するんじゃなくて、まずは生データをわりとそのまま取り扱うようにプログラムに取り込み(いや、変数に代入するだけですが)、必要なデータはそこから取り出して使うようにしようと。

# 余計なこと考えながらデータを入力すると絶対ミスするからです!

どちらも、あとからプログラムを書き換えたり、読み直すときにわかりやすい構造にしたかったからです。で、できるところからやってみようと思ったわけです。そしたらハマりました……。

### 配列なのにintってどういうことよ?
今回ハマった沼については、原因は後者でした。ま

元記事を表示

VQEをBlueqatで実装してみた

NISQ時代はVQEがくるんじゃない?(ホントにくるのかな・・・?)って事で、簡単な問題をBlueqatで実装してみた。なお今回はプログラム動作確認という意味で、トリビアルな組み合わせ最適化問題を解いてみる。
## 今回解いた問題
以下のハミルトニアン$H$が最小となる$q(0)$、$q(1)$の組み合わせを解く。
$$
H = 1 – q(0) – q(1)
$$
なお、$q(0)$、$q(1)$は0もしくは1のどちらかの値となる。この問題設定では、$q(0)=q(1)=1$のときハミルトニアン$H=-1$で最小の値をとる。

## 補足情報
ちなみに、すべての$q(0), q(1)$の組み合わせについてハミルトニアンは以下の値をとる。

– $q(0)=0,q(1)=0 \rightarrow H = 1$
– $q(0)=0,q(1)=1 \rightarrow H = 0$
– $q(0)=1,q(1)=0 \rightarrow H = 0$
– **$q(0)=1,q(1)=1 \rightarrow H = -1$**

## ソースコード
“`python

元記事を表示

あとで後悔しないPythonのディレクトリ構成をつくってみる

## はじめに

Pythonでプログラミングをはじめて少し経ち、ディレクトリ構成について理解したことがあったのでまとめておきます。
最初はまったくわからず、かなりググりながら進めていたので、初心者でもわかるようにステップだてて執筆してみました。

なお以下はPythonでの開発を半年ぐらいやったエンジニアによるメモです。
**よりベターな方法のご教示やご提案、初心者の方からの質問など、ぜひたくさんいただければ嬉しく思います。**

Pythonを触った当初は、とりあえず hoge.py にたくさんメソッドを書き、そのうちファイルが複数になり、ディレクトリが増えていきました。
しかしこのようにすると自作プログラムの中の依存関係の解決に失敗したり、どんどん訳の分からない構成になってしまい、あとで正すことも難しく感じました。

そのためよっぽど緊急なプログラミングでないかぎりは、最初に**「ライブラリ化しやすいようにディレクトリ、ファイルを準備する」**ことが重要かと思っています。
そのテンプレートを、本記事でつくってみます。

## まずはsetup.pyから書いてみる

まずプロジェ

元記事を表示

Python 内包表記

##経緯

ATcoderのサンプル問題を解いていた時にどうしても処理制限時間が超えられず、
内包表記を使うと解決できたので、忘れないようにまとめておく

##構文

“`
[リストに組み込みたい文字列 for 変数 in 範囲やリスト]
“`

範囲の後に条件式を記載することで条件式に当てはまったものだけリスト化することもできる

例)

“`
//期待する結果=>[0,2,4,6,8,10]
l = [i for i in range(11) if i%2 == 0]
print(l)
//[0,2,4,6,8,10]
“`

条件式はfor文の中に入れることもできれば、for文の中で取り出した値を条件式に掛けることもできる

“`
//期待する結果=>[‘リンゴ’,’ブドウ’,’リンゴ’,’ブドウ’,’リンゴ’,’ブドウ’]
l = [‘リンゴ’ if i%2 == 1 else ‘ブドウ’ for i in range(11)]
print(l)
//[‘リンゴ’, ‘ブドウ’, ‘リンゴ’, ‘ブドウ’, ‘リンゴ’, ‘ブドウ’]
“`

##利用するシチュエー

元記事を表示

Ubuntu + Hangoutでバ美肉したいのでゼロから実装中

Hangoutへの配信部分と、
WebカメラのRGBデータを使って顔の向きとまばたきを認識する機能と、
認識した結果を使ってUnityでVRMのキャラクターを実装する部分を実装しました。

今回のアーキテクチャは、ZeroMQを使って、
認識ロジックをPythonで実装しており、
PythonやC++など他の言語が得意な人がさくっとプロトタイピングする場合や、
他のシステムでも使いたい共通なコンポーネントを作りたい、
かつ、UnityのプログラムをPC上でのみ動かす場合に適したアーキテクチャとなっています。

言語処理100本ノック 2020 第8章: ニューラルネット

先日,[言語処理100本ノック2020](https://nlp100.github.io/ja/)が公開されました.私自身,自然言語処理を初めてから1年しか経っておらず,細かいことはよくわかっていませんが,技術力向上のために全ての問題を解いて公開していこうと思います.

すべてjupyter notebook上で実行するものとし,問題文の制約は都合よく破っていいものとします.
ソースコードはgithubにもあります.[あります](https://github.com/nymwa/nlp100/blob/master/chapter08.ipynb).

7章は[こちら](https://qiita.com/nymwa/items/9963968568b9dbfc2e78).

環境はPython3.8.2とUbuntu18.04です.

# 第8章: ニューラルネット
> 第6章で取り組んだニュース記事のカテゴリ分類を題材として,ニューラルネットワークでカテゴリ分類モデルを実装する.なお,この章ではPyTorch, TensorFlow, Chainerなどの機械学習プラットフォーム

元記事を表示

PythonのEnumを関数と紐付け、Callableにする

いくつかの選択肢からアルゴリズムを選ばせるような時、列挙型の各値に関数を紐づけたいことがある。

Javaなら列挙型の各値にメソッドを設定できるのだが、Pythonではできない。Enum自体をCallableにする方向性で、なんとかキレイな書き方がないか考えてみる。

## 値はどうでもいい場合

PythonのEnumは値を自由に設定できる。だから値そのものを関数にしてしまえばいい。

だがEnumを継承したクラスの中で定義された関数はメソッドと判断され、列挙される値に含まれなくなってしまう。

“`python
class Dame(Enum):
# 値を定義したことにならず、メソッドを定義したことになる
A = lambda: print(“A”)

list(Dame)
# 空リスト
“`

そこで、[このstackoverflowのアイデア](https://stackoverflow.com/questions/31907060/python-3-enums-with-function-values)を借りて、関数が含まれるタプルを値に使うことにする。

元記事を表示

AtCoder Beginner Contest 162の復習, E問まで(Python)

競プロ初心者の復習用記事です。

ここで書く解は解説や他の人の提出を見ながら書いたものです。自分が実際に提出したものとは限りません。

# [A – Lucky 7](https://atcoder.jp/contests/abc162/tasks/abc162_a)

与えられた3桁の数字が7のつく数字か答える問題です。

どう書いても通ると思いますが。文字列のまま扱い、`in`で存在チェックするのが一番きれいでしょうか。

“`python
S = input()
if ‘7’ in S:
print(‘Yes’)
else:
print(‘No’)
“`

# [B – FizzBuzz Sum](https://atcoder.jp/contests/abc162/tasks/abc162_b)

与えられた数字KまでFizzだったりBuzzだったりしない数字だけを数え、合計するといくつになるか答える問題です。

そのまま書いたら通りました。$N=10^6$での$O(n)$なら特別に効率化する必要はないですね。

“`python
count = 0
n =

元記事を表示

AtCoder Beginner Contest 162 復習

#今回の成績

スクリーンショット 2020-04-12 22.55.35.png

#今回の感想

パフォーマンス的には悪くないんですが(1時間かけたのに)EもFも解けそうで解けなかったので、非常に無念です。とりあえずEもFも何が足りなかったか見極めて復習していきたいと思います。

#[A問題](https://atcoder.jp/contests/abc162/tasks/abc162_a)

7が入ってるかは文字列で扱えば良いです。なぜリストに変換しているのでしょうか。頭が悪すぎます。

“`python:A.py
n=list(input())
print(“Yes” if “7” in n else “No”)
“`

#[B問題](https://atcoder.jp/contests/abc

元記事を表示

plotlyでアニメーションするグラフを作ったメモ

# Plotlyでアニメーションするグラフを作ったメモ
## 概要
* np.arrayを入力するとアニメーションするグラフを作成する(時系列データ)

## ソースコード
“`python
import pandas as pd
import numpy as np
import plotly.express as px

def create_animation_graph(input_array: np.array, start: str = ‘1900-01-01 0:00’, g_type: str = ‘line’, y_label: str = ‘value’,
x_label: str = ‘time’) -> object:
“””
np.arrayを入力すると、plotlyのアニメーションするグラフを返す
:param input_array:データのnp.array
:param start:開始時刻
:param g_type:グラフタイプ ‘line’,’bar’,

元記事を表示

OTHERカテゴリの最新記事