Python関連のことを調べてみた2019年12月05日

Python関連のことを調べてみた2019年12月05日

matplotlibのcolor cycleをいい感じにしてみる

# color cycleって?
![スクリーンショット 2019-12-05 10.39.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/828b566b-415c-cd5d-fe52-010df53963b1.png)

こんな感じで、デフォルトで一つの図に複数プロットすると、色が「青→橙→緑→赤…」というふうに変化していきます。
プロット数が10を超えると一周してまた青に戻ります。

これをcolor cycleと呼びましょう[^1]。

だいたいはskotaroさんの記事[^1]を参考にしています。凄い。

# 何でこの色なの?
これもskotaroさんの記事に[^1]よると、かつてのtableauのデフォルトカラーだそうです[^2]。

![tableau10_palette.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196857/ed6f8b7e-97c3-c7c7-d063-57f

元記事を表示

関数化について悩んだ時にラムダ式に出会った

## 1️⃣ 概要
普段から「今書いているコードは関数化すべきなのか、それともメインに直で書くべきなのか:thinking:」と頭を悩ませることが多かったのですが、そんな時にラムダ式に出会い、それがとても扱いやすく、かつ、コード全体を見渡した時にコンパクトにまとめることができたので、備忘録がてら記事を書いてみようと思います。:writing_hand:

## 2️⃣ ラムダ式について
ラムダ式についてコードを交えながら説明していきたいと思います。
また今回は、あくまで簡単な例として足し算を扱っていきますが、実践的なコードの書き方は次項で説明したいと思います。

“`python:python
def hoge(num1: int, num2: int):
num = num1 + num2
return num
“`
こんな感じで、簡単な足し算をする関数であっても最後に“`return“`をつける必要があります。
また、上の関数を実行する場合は、

“`python:python
print(hoge(2, 6))
# 8
“`
その関数が正しく処理されて

元記事を表示

まゆんごのPython学習記第9話:金の斧と銀の斧

今回はこれまでの復習も兼ね金の斧と銀の斧のプログラムを書いていきます。

[よろしければ動画でもご覧ください。](https://youtu.be/o7d6hiQJHUQ)

まずはanswerという変数にinput()を入れます。

()の中に何か書き込むことで入力を求めるときに文言のようなものを表示することができます。

次にifで条件を入れていきます。

一つ目の条件を書く時はifを使います。

ここではanswerに入っているものが文字で「金」である場合「本当に?」と返すように指示を出しています。

ifで出した条件と別で二つ目以降の条件が必要な場合にはelifを使います。

ifの時と違い何個かある分には問題ありません。

ifやelifでどれにも該当しないものを一律で処理する場合にはelseを使います。

実際に動かしてみます。

“`python
answer = input(“あなたが落としたのは金の斧ですか?銀の斧ですか?”)
if answer == “金”:
print(“本当に?”)
elif answer == “銀”:
print(“嘘つい

元記事を表示

SystemdでPythonのウェブアプリをデーモン化して永続化する – Ubuntu 18.04.3 LTS

## 準備
“`
$ cd /etc/systemd/system
$ sudo vim app.service
“`

## Systemd実装
“`
[Unit]
Description=App

[Service]
ExecStart=/bin/bash -c ‘/home/ubuntu/.pyenv/shims/python /opt/theme/app.py’
WorkingDirectory=/opt/theme
Restart=always
Type=simple
User=ubuntu

[Install]
WantedBy=multi-user.target
“`

## 実行
“`
$ sudo systemctl daemon-reload
$ sudo systemctl start app.service
$ sudo systemctl status app.service
“`

## 参考

[SystemdでGo言語のウェブアプリをデーモン化して永続化する方法](https://off.tokyo/blog/systemd%e3%81%a7

元記事を表示

気象庁から情報を取得して東京23区の気象警報をSlackに通知する

どーも、おはこんばんちわ!

これは[Zapier Advent Calendar 2019](https://qiita.com/advent-calendar/2019/zapier) 5日目の記事です。

今回は、

– 23区の気象警報をいち早く察知したい!
– サードパーティのAPIではなく、より確からしい情報を参照したい!

という要望のもと、ちょっとしたZapをつくったので紹介させてもらいます。

こんなのをSlackに流してます :point_down:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/611/aa4689a8-01ec-3528-53c2-2ec155aae8b9.png)

## Zapの全体像
気象情報の取得には気象庁提供のデータを使い、フィルタリングしたりPythonでうまいことパースしたりしてSlackに通知します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazon

元記事を表示

【Spark DataFrame】あるカラムを横持ちから縦持ちにする(Scala)

##はじめに
SparkDfで、DFのあるカラムついて横持ちから縦持ちにする場合、ちょっと手間取ったので備忘録をかねて記録しておきます。
一応、ソースコードはScalaですがPythonとかでもそんなに変わらないはずです。

##データフレーム操作

###テストDataFrameの作成

“`scala:testDf.scala
val testDf = Seq(
(1,”a”,30,20),
(2,”a”,40,30),
(3,”c”,50,40),
(4,”d”,60,50),
(2,”d”,40,70),
(2,”d”,20,10),
(1,”a”,60,90)
)
.toDF(“Column1”, “Column2”, “Column3″,”Column4”)

/*
+——-+——-+——-+——-+
|Column1|Column2|Column3|Column4|
+——-+——-+——-+——-+
| 1| a|

元記事を表示

言語処理100本ノック-72(StanfordNLP使用):素性抽出

[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)の72本目の記録です。
「素性」は「すじょう」ではなく「そせい」と読むそうで、言語処理用語のようです([Wikipedia「素性構造」参照](https://ja.wikipedia.org/wiki/%E7%B4%A0%E6%80%A7%E6%A7%8B%E9%80%A0))。機械学習をしている人に馴染みの深い言葉としては「特徴」(Feature)を意味します。
今回は文章ファイルを読み込み、[前回ノック(ストップワード)](https://qiita.com/FukuharaYohei/items/60719ddaa47474a9d670)の内容であるストップワード以外のレンマ(辞書見出し語)を素性として抽出しています。

|リンク|備考|
|:–|:–|
|[072_1.素性抽出(抽出).ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/08.%E6%A9%9F%E6%A2%B0%E5%AD%

元記事を表示

ラズパイでpython3にopencvを入れたらエラーが出た【対処法】

opencvをインストールもアンインストールも上手く出来ず困っていたところなんとかインストールすることが出来たので,経緯を書きます。

# エラー状況

“`
pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Apr 3 2019, 05:39:12)
[GCC 8.2.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import cv2
Traceback (most recent call last):
File ““, line 1, in
File “/home/pi/cv2/__init__.py”, line 3, in
from .cv2 import *
ImportError: /home/pi/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __a

元記事を表示

code-server (5) DBなども含めたMVC環境を用意してみよう (2)

これは、2019年 code-server に Advent Calender の 第4日目の記事です。今回も、code-server って何だろう?と言う事を解説していきます。

(1) [code-server って何?](https://qiita.com/kyorohiro/items/35bab591cd4a6b975c80)
(2) [Dockerで独自のcode-server 環境を作って見る](https://qiita.com/kyorohiro/items/d991f6fbf77a425525c5)
(3) [VSCode の Plugin を 利用してみる](https://qiita.com/kyorohiro/items/11a13d32c8748f3d7002)
(4) [DBなども含めたMVC環境を用意してみよう (1)](https://qiita.com/kyorohiro/items/4ed279dd91e39321ed20)
(5) [DBなども含めたMVC環境を用意してみよう (2)](https://qiita.com/kyorohiro/it

元記事を表示

PythonとTkinterでGUI三目並べ作ってみた

##初めに
python学習のために、そこらに転がっている「PythonでCUIオセロ!」みたいなやつを見様見真似でコピペしたはいいけれど、見返すと何がなんやら、ちんぷんかんぷん。一個一個理解しようにも初心者には量が多く(多くない)げんなり。

やはり、知識を自分のものにするには、手を動かして悩みながらコツコツ覚えるのが一番!
ということで、既存のコードに頼らずCUIオセロをGUIにしてみようと思い立ったのもつかの間。
何から手を付けていいのかさっぱりさっぱり・・・

初心者が身に余るものに挑戦して挫折するのはよくある話なので、とりあえず三目並べに方向転換。
少しレベルを下げてあげるだけで、なんだかできそうな気になる。単純なものである。

作る前からあれこれ考えるとやる気がなくなるので、必要に応じて調べて実装する、コード継ぎ足し方式で三目並べを作ってみました。

途中に出てくるコードは完成品を切り取っているので少々見づらいかもしれませんが悪しからず。
ページの一番下に全体像を載せています

出来上がり像
![Tictac.gif](https://qiita-image-store.s

元記事を表示

住所と郵便番号検索が可能な対話式コンソールアプリケーション

# はじめに
AdventCalendar初投稿です。
python枠が空いていたので、僭越ながら1件投稿させていただきます。

# 背景
早いもので今年も12月。
12月といえばクリスマスですが、年賀状を用意する時期でもありますね。

年賀状を出そうと思ったとき、住所はわかるけど郵便番号何だったっけ・・・?と思ってしまうこと、ありませんか?(逆もまた然り)

今だと、住所をgoogle検索すれば郵便番号が出てきますが、
ネット環境が無くても住所・郵便番号が検索できるツールがあればと思い、
pythonの習熟がてら簡単なコンソールアプリを作ってみました。

郵便番号から住所を検索する事例は結構ありますが、
住所から郵便番号を検索する事例はあまりないと思ったので、どちらの場合でも対応できるようにしてみました。

# 環境
・Mac OS Mojave
・python3
・pyinstaller

# 処理仕様
フローチャートは下記の通りです。
基本的には、入力した郵便番号の住所をダンプするか
入力した住所(一部地名だけでも可)に対応する郵便番号をダンプするかをユーザに対話式で選んでもらう

元記事を表示

code-server (4) DBなども含めたMVC環境を用意してみよう (1)

これは、2019年 code-server に Advent Calender の 第4日目の記事です。今回も、code-server って何だろう?と言う事を解説していきます。

(1) [code-server って何?](https://qiita.com/kyorohiro/items/35bab591cd4a6b975c80)
(2) [Dockerで独自のcode-server 環境を作って見る](https://qiita.com/kyorohiro/items/d991f6fbf77a425525c5)
(3) [VSCode の Plugin を 利用してみる](https://qiita.com/kyorohiro/items/11a13d32c8748f3d7002)
(4) [DBなども含めたMVC環境を用意してみよう (1)](https://qiita.com/kyorohiro/items/4ed279dd91e39321ed20)
(5) [DBなども含めたMVC環境を用意してみよう (2)](https://qiita.com/kyorohiro/i

元記事を表示

06. 集合

## 06. 集合
“paraparaparadise”と”paragraph”に含まれる文字bi-gramの集合を,それぞれ, XとYとして求め,XとYの和集合,積集合,差集合を求めよ.さらに,’se’というbi-gramがXおよびYに含まれるかどうかを調べよ

###Go
“`go
package main

import “fmt”

// n-gram
func nGram(target string,n int) []string {
var result []string
var len = len(target) – n + 1
for i := 0 ; i

元記事を表示

「大石泉すき」と表示するQRコードをスクラッチで作成する

# 「大石泉すき」と表示するQRコードをスクラッチで作成する

[「大石泉すき」アドベントカレンダー](https://qiita.com/advent-calendar/2019/ohishi-izumi-suki) 5日目を担当させていただきます。
はじめてのアドベントカレンダー参加です。気合が入ります。

今回はQRコードを既存のライブラリに頼ることなく、一から作成する手順を紹介していきます。既存のライブラリが充実している今では特に役立つというわけでもありませんが、QRコードってこんな感じに作られるんだなーという感じの読み物としてご覧ください。

## 本記事の内容について

データとして「大石泉すき」というテキストを格納したQRコードを作り、それを既存のQRコードリーダーで読み取らせるところまでを解説していきます。QRコードの仕様については必要な部分だけに絞って解説します。

## 参考にしたサイト

まず、この記事はオリジナルではなく、webで似たようなことをやっているサイトの情報を元に後追いでチャレンジしたものになります。

[QRコードをつくってみる(http://w

元記事を表示

ラズパイとMESHで始めるお手軽IoT

Ubiregi Advent Calendar 2019 4日目はラズパイとMESHを使ったお手軽IoTを紹介します。

# 作るもの
MESHブロックの「ボタン」を押すと、Slackに決まったメッセージが投稿される、という非常に簡単なものを作ります。
応用としてはラズパイにモニタを付けてドアホンとして使う、見たいのはアリかなとか思っています。一人暮らしだと留守の間、人が訪問してきてるか分からない問題があり、代わりにMESHボタンを配置しておけば人が来たことをスマホに通知する、みたいなことができてよさそうです。

# 用意するもの(今回使ったもの)
* MESHのボタンブロック
* Raspberry Pi Zero WH(以下ラズパイ)
* スマホ

# 前提条件
* ラズパイでRaspbianが動くようになっていること
* MESHアプリがスマホにインストールされていること
* Slackのアカウントを持っていること

# 手順
## ラズパイを「MESHハブ」にする
これに関しては公式が非常に手厚いので、そちらを参照した方がよいです。

[Raspberry Piに「MESH ハ

元記事を表示

pythonで色の変わる時計を作成する

#目的
1秒毎に回転し、60秒で1周する秒針(時計)を作成します。
ただ秒針を描くだけではつまらないので、時計の色が0~60[s]の範囲で、青色から赤色へ次第に変化するようにします。最後にgifとして保存して完成です。

#完成品
![20191204second_hand.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503979/657fdc29-d941-337f-dcdc-4e83e1364658.gif)

#コード
“`second_hand.py
%matplotlib nbagg

import matplotlib.pyplot as plt
import matplotlib.animation as animation
import matplotlib.patches as pat

fig = plt.figure()
ax = plt.subplot()

def clock(i):
circle = [ax.add_patch(pat.Wedge(center=(

元記事を表示

Pythonらしいコードを書く(辞書編)

# はじめに
Pythonを学習するにあたって、せっかくなので、Pythonらしい書き方というものを調べてみました。
Pythonらしさは、Pythonの効率の良いコードと同意だからです。

参考にしたスライド

## 辞書の使い方
これぞ`Python`らしさというもので、辞書の使い方は非常に重要かつ基本的なテクニックです。
何かとお世話になる辞書には、うまいやり方がありそうです。

### キーでループ

辞書を指定しても、辞書オブジェクトの`keys`メソッドを使っても、キーでのループが可能です。

“`
d = {‘kaijo’: ‘red’, ‘shinmei’: ‘blue’, ‘ooiwa’: ‘yellow’, ‘pegie’: ‘pink’, ‘as

元記事を表示

Ansibleのテキストパース用フィルタープラグインを自作してみた

# はじめに

以前の記事で、TTP(Template Text Parser)というPythonのパーサーライブラリを使って、L2SWのConfigファイルをパースし、ポート管理表の自動生成を行いました。
[L2SWのConfigからポート管理表を自動生成してみた](https://qiita.com/tech_kitara/items/75ec526ff9a27932c565)

今回は、このパーサーをAnsibleのカスタムフィルターとして取り込み、`xxx_command`モジュールで取得したshowコマンド結果をパースできるようにしてみました。

※ フィルタープラグイン自作例は、以前[こちら](https://qiita.com/tech_kitara/items/9bcf2ca6900ef76f6324)でも紹介しています。
※ 私が知る限り、パース用フィルタープラグインとして、他にもTextFSMを利用した`parse_cli_textfsm`や、pyATS/Genieを利用した`parse_genie`(Ansible Galaxyからインストールが必要。詳細は[Gi

元記事を表示

画像処理?のためにPythonを始めた話

Pythonを始めました。目的は、アートのために動画から画像を生成するプログラムを作りたいから。

Pythonは、[Anaconda](https://www.anaconda.com/)でインストールしました。Anacondaというのは、Pythonとその他もろもろを一発で入れてくれる便利パッケージのようです。

バージョンはPython3です。なんでもPython2は業務上の理由がなければ入れる必要がないとか。要は移行期間であって、2はやがて廃れる運命のようです。

AnacondaでPythonをインストールした後は、処理を楽ちんにするためのサブ武器的なやつを入れていったとおもいます(試行錯誤しまくっていたので、他にも何かしてたかも)。正確には何という名称なのかわかりませんが…

入れる方法は二つ。
– pip
– conda
pipはすべてのPythonで利用可能なサブ武器インストールツール。condaは名前の通りAnaconda専用のようです。pipでしか入れられないサブ武器もあれば、condaでしか入れられないサブ武器もあるようですね。
今回は画像を扱いたいので、open

元記事を表示

Java で DataFrame を使う

### DataFrame ご存知ですか?

DataFrame は Python や R言語でデータを扱ったり、機械学習したいときによく使われるとても便利なライブラリ・オブジェクトです。表形式のデータや2次元の配列のデータを扱うための様々な機能が揃っています。

どのくらい便利かというと、Excel や CSV から一気にデータを読み込んだり、2次元配列の任意の行列を抽出したり、表同士を SQL 操作のごとく join したりと、とにかく 2次元データを使う際には欠かせないというレベルです。

でも Java だとこれという DataFrame 相当の実装が無くて、ありがたい DataFrame の恩恵を受けられない、データ処理に時間がかかる、なんで Python じゃないんですかと暴言(?)を吐かれるなどの悲しい目に合うわけです。

### Morpheus data science framework

しかし、そこに一筋の光が。
Morpheus data science f

元記事を表示

OTHERカテゴリの最新記事