- 1. coverage で _sqlite3 のエラーが起こったとき
- 2. 今更ながらロジスティック回帰をNumPyで実装
- 3. 【Python】Switchのアルバムをゲーム別にフォルダ分けする
- 4. kaggleを題材に、Kaggleスタートブックで勉強してみた【前編】
- 5. Pythonでのチームアプリ開発に参画するための学習履歴~Djangoチュートリアル1・2・3~
- 6. Djangoの管理サイトでオブジェクトを追加する際に保存前処理を追加する方法
- 7. Pythonでひらがなをローマ字に変換する(ベータ版)
- 8. [EV3DEV Python]Mortorクラス①
- 9. DHT11とRaspberry Piで温湿度を取得
- 10. TypeError: ‘int’ object is not subscriptableでハマった話
- 11. VQEをBlueqatで実装してみた
- 12. あとで後悔しないPythonのディレクトリ構成をつくってみる
- 13. Python 内包表記
- 14. Ubuntu + Hangoutでバ美肉したいのでゼロから実装中
- 15. 言語処理100本ノック 2020 第7章: 単語ベクトル
- 16. 言語処理100本ノック 2020 第8章: ニューラルネット
- 17. PythonのEnumを関数と紐付け、Callableにする
- 18. AtCoder Beginner Contest 162の復習, E問まで(Python)
- 19. AtCoder Beginner Contest 162 復習
- 20. plotlyでアニメーションするグラフを作ったメモ
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 modelsclass 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 adminfrom .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上でのみ動かす場合に適したアーキテクチャとなっています。顔の方向はそこそことれる。あとは口の形状とハンドトラッキング。モデルはどうしようか。 pic.twitter.com/BKcU51pjk8
— Xiong Jie (@_xiongjie_) 言語処理100本ノック 2020 第7章: 単語ベクトル
先日,[言語処理100本ノック2020](https://nlp100.github.io/ja/)が公開されました.私自身,自然言語処理を初めてから1年しか経っておらず,細かいことはよくわかっていませんが,技術力向上のために全ての問題を解いて公開していこうと思います.
すべてjupyter notebook上で実行するものとし,問題文の制約は都合よく破っていいものとします.
ソースコードはgithubにもあります.[あります](https://github.com/nymwa/nlp100/blob/master/chapter07.ipynb).6章は[こちら](https://qiita.com/nymwa/items/774ca6c542c1eaff160d).
環境はPython3.8.2とUbuntu18.04です.
#第7章: 単語ベクトル
> 単語の意味を実ベクトルで表現する単語ベクトル(単語埋め込み)に関して,以下の処理を行うプログラムを作成せよ.必要なデータセットは[ここ](https://nlp100.github.io/ja/ch07.html)か
言語処理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 復習
#今回の成績
#今回の感想
パフォーマンス的には悪くないんですが(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 pxdef 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’,