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

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

【PyQt】QLabelのテキストカラー変更

# 環境
+ Windows 10
+ Python 3.7.3
+ PyQt5 5.13.1
+ Qt Designer 5.11.1

# QLabelのサンプル作成
Qt Designerを使って、適当なラベルを配置した画面を作ります。
Designerを使った画面の作り方は[こちら](https://qiita.com/grinpeaceman/items/54b439bfa52640c444e1)を参考。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404447/e64f6b91-8e09-75da-5dac-25f3129be1f1.png)

“`python:hoge_label_ui.py
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file ‘hoge_label.ui’
#
# Created by: PyQt5 UI code generator 5.13.

元記事を表示

続・ソートってなんだよ(哲学)

残念ながら[前回の記事](https://qiita.com/BlueRayi/items/81722b5d72bcfce30b15)は思いっきり**ダダかぶり**をしていたためにゴミと化した。

ここは再起をかけてもう一度ソートとはなんなのかの哲学を提示し、あらためて新しい~~ネタ~~ソートを提案したい。

## 最低限「ソートされている」と言い張るための条件

「**自称ソーティングアルゴリズム**」あるいは「**スターリンソートらの集団**」などと呼称されるアルゴリズムたちは一様に「ソートできた」と主張しているので、おそらく結果が「**昇順に並んで**」されて**さえ**いればソートされていると言っていいのだろう。 **ソートってなんだよ(哲学)**(タイトル回収)

念の為テストメソッドを用意してみたが、嫌になるくらい「正しくソート」されている。 ~~クソが~~

“`py:sort_check.py
import numpy as np

def is_sorted(data):
for i in range(len(data) – 1):
datu

元記事を表示

ソートってなんだよ(哲学)

[スターリンソート](https://qiita.com/Sirloin/items/c9e5c74be3366df65bce)や[アベソート](https://qiita.com/scivola/items/942a36ddb6aeda172a54)や[コミューンソート](https://qiita.com/fugahogeds/items/b16680e60b2ece206c3a)で腹を抱えて笑ったわけだが、**ソートという概念**に**要素数や要素そのものに頓着しない**というフウチョウを持ち込むなら、以下のアルゴリズム(実際の処理は知らん)が最速になるはずだ。

## 実装

“`py:sort.py
from typing import List, Any

def sort(data):
# type: (List[Any]) -> None
data.clear()

def main():
# type: () -> None
data = [1, 2, 1, 1, 4, 3, 9,]
print(F’Before Data

元記事を表示

手製の bot がいつ鳴くかを Pushover でスマホに通知してみる

とある Mastodon インスタンスで、知り合いが「[定期的に『ぽんぽこ』とトゥートするだけの bot](https://mstdn.kemono-friends.info/@ponpoko)」を動かしていたのですが、使用していた bot サービスがうまく動かなくなったらしくしばらく死んでいました。

先日その bot について話題になったので、その bot アカウントの持ち主に「ほんなら手前で bot 作ってぽんぽこさせればええやん」と話をつけて共同でそのアカウントを動かすことにしました。

[![akusiroyo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241027/419b4f0a-49b0-1588-5280-26d3d7d85f28.png)](https://mstdn.kemono-friends.info/@laphroaig55/102236247435385237)

はい。

早速[^saQsoku_toha]手製の bot を作り[^code_of_bot]動かしていた

元記事を表示

【Python】マルチスレッドについて初歩的なことをまとめる

# Pythonのマルチスレッド

本稿では,マルチスレッドについて学んだことをまとめ,理解を深めるために記述する.

## マルチスレッドについて

>[マルチスレッドとは、一つのコンピュータプログラムを実行する際に、複数の処理の流れを並行して進めること。また、そのような複数の処理の流れ。](http://e-words.jp/w/%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89.html)

プログラムをスレッドに分割すると,メモリコンテキストを共有しながら並行に実行できる.外部リソースを利用していない場合,シングルコアCPU上では,マルチスレッド化しても高速にならない.マルチコアCPU上でマルチスレッド化すると,各スレッドが別々のCPUに割り当てられ同時に並列して実行することでプログラムの速度が向上する.

## スレッドとプロセスとの比較
簡易な定義,メモリ空間,コンテキストスイッチからの観点で特徴をまとめる.

### 定義
* プロセスは実行されたプログラムの実体
* スレッドはプロセスをさらに

元記事を表示

Ruby初心者がいきなりRailsするときのMemo

## 初めに
これまではPHPかPythonでの開発がほとんどだったのですが、様々な事情により、Ruby on Railsの案件に取り組むことになりました。これまでよくやっていたPython + Flask構成と比較しながらRuby on Railsを勉強しているのですが、その試行錯誤を残しておきたいと思います。内容は随時更新します。

## 目次

* Rubyの環境構築
* Railsの導入

## Rubyの環境

Pythonでは、以下の環境を使っていました。

“`
* pyenv(Pythonのバージョン管理)
* pipenv(仮想環境構築+Packageの管理)
“`

Rubyでそれぞれに対応するのは、(というかPythonのそこら辺のツールはRubyのツール群に触発されて開発されたものが多いので、こちらのほうが大元というべきなのですが、)

“`
* rbenv(Rubyのバージョン管理)
* bundler(gemの管理)
“`
です。一般的なRubyプロジェクトは、bundlerを用いて

“`shell
mkdir PROJECT_DIR
cd PR

元記事を表示

初心者の仮想環境

#なぜ仮想環境を作るのか
買ったdeeplearnigの本通りに開発環境を整えているとエラーがでて、調べた結果Tensorflowを使うにはpython3.6.0を使わないといけないことが分かった。 そのためにはなにやら、仮想環境というものを構築しないといけないことが分かったので初心者なりに色々実験しながらまとめてみようと思う。

#anacondaで開発環境構築

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281797/daffa1e6-187b-cc45-fcac-aeb5fb0c93f4.png)
ANACONDA NAVIGATORのCreateから仮想環境を作ることができる。(名前はtensorflowにした)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281797/9083447e-408a-6a18-9df5-2e765fe217ea.png)
コマンド con

元記事を表示

goとpythonで始めるgRPCの事始め

gRPCってなんだって思って調べてたら実装してしまっていたので備忘録として残します。

## ゴール

このようなディレクトリ構造でpythonクライアントとgoサーバー間でgRPCを実装していくことをゴールとします.

“`
$GOPATH/src/pygo-grpc/
├ client/
| ├ app.py
| ├ hello_pb2_grpc.py     (gRPC自動生成)
| └ hello_pb2.py        (gRPC自動生成)
├ protos/
| └ hello.protc
└ server/
├ grpc-server/hello.pb.go (gRPC自動生成)
└ server.go
“`
## プロトコルを定義

– `$GOPATH`の配下に新しいワーキングディレクトリを作成し、プロトコルを定義します。

“`
~ $ cd $GOPATH/src
src $ mkdir pygo-grpc;cd $_
pygo-grpc $ mkdir client protocs server serve

元記事を表示

完全初心者でも動かせるじゃんけんbotの作り方(解説)

#まずはじめに
大前提としてpythonの基礎知識が無いと少し難しいかもしれません。
全くないよ!~~Python?なにそれ美味しいの?~~って人は以下のサイトで少し勉強すると何となく理解出来ると思います。僕自身も初学者なので完璧に理解なんてしてませんしこう書いたらこう動くのか~~程度にしか分からないですが忘備録として残します。
まぁめんどくさい人は適当にコピペして動かしてください

– [Python3入門編 (全11レッスン)](https://paiza.jp/works/python3/primer)
– [Progate Python講座](https://prog-8.com/languages/python)

#筆者の環境
– Windows10
– PyCharm Community Edition
– pythonのバージョン (3.7.4)
– discord.pyのバージョン (1.2.4)

## 前提条件
お使いのエディターでpythonとdiscord.pyが動く前提で進めていきます
動かないよ!って方は他の方が上げて下さっている記事を元に動くようにして

元記事を表示

SQLのメモ

# なにこれ
やっほ
python経由でsqlite db遊んでたときに遊ぶどころじゃなくなった事案をメモするところ

# パラメータ指定
`?`と`:`のパヤーンがある。
特定のカラムの情報だけしか無いときに使う。(カラムいちいち全指定するの嫌)

query = (‘INSERT INTO table (columnA) VALUES (:columnA)’)
cursor.execute(query, {‘columnA’:’hogehoge’})

## 未確認
なんか~~`:=`~~ **`=:`**みたいな指定どっかで見たんだよなぁ・・・
こいつ使ったらパラメータで渡す内容、順番関係なく出来ないだろうか

# 試してダメだったやつ
query = (‘INSERT INTO table (columnA, columnB) VALUES (columnA=:hogeA, columnB=:hogeB)’)
cursor.execute(query, {‘hogeB’:’hogehoge’.’hogeA’:’hogege’})

>

元記事を表示

手の込んだクラスタリングを実現するパッケージを紹介する

# この記事で紹介すること

– いくつかのクラスタリング手法を併用しながらクラスタリングを進めてくれる[パッケージの紹介](https://pypi.org/project/flexible-clustering-tree/)
– ↑こういうクラスタリングのユースケース
– ↑こういうクラスタリングをやってみた実例

# てか,なんでクラスタリング必要?

データに関わる研究やお仕事に関わっていると,新しいデータに出くわす場面はたくさんあります.

新しいデータというのは,そもそも中身がよくわからないわけですから,研究方針・分析方針などを考える前にまずはデータを理解しなくちゃいけません.

こういうときにクラスタリングは必要になります.[^1]

例えばどんなクラスタリングのユースケースがあるの?

私は調査業で自然言語処理の業務をやってきました.調査業でのNLPというと,テキストマイニングとも言えるかもしれません.

調査業での基本は__データ集計__です.集計したデータと業界知識に基づいて,調査レポートを作成する・

元記事を表示

PythonでPPOを実装してみた

#PPOについて
 PPOは深層強化学習のアルゴリズムの一つで、その中でも方策ベースのものです。方策ベースは環境を与えられた時に行動確率を出力する方策関数を直接最適化するようなアルゴリズムのことです。方策ベースのアルゴリズムには、他にA3CやTRPOなどがあります。方策ベース以外のアルゴリズムは、DQNなどに代表される価値ベースのアルゴリズムなどがあります。

 PPOの特徴としては方策を更新する際に、大きく更新しすぎてしまうのを防ぐためにclipingという操作を行います。この操作は、例えばclip(x,-1,1)というようにxについてclipingを行うと、xが−1より小さかったら−1が出力され、xが1より大きかったら1が出力されるような感じです。

#実装
 実装の際には以下のサイトを参考にしました
[【強化学習】実装しながら学ぶPPO【CartPoleで棒立て:1ファイルで完結】](https://qiita.com/sugulu/items/8925d170f030878d6582#brain)

“`python
import argparse
import tenso

元記事を表示

Django でデータをプロジェクト的単位に分ける

# 前置き

### 記事の内容

– タスク管理ツールに見られるような複数の “プロジェクト” を作成し、各プロジェクト内でアイテムを管理するというのを、Django で実装しました。
– プロジェクトごとにアクセスできるユーザも変わります。

### 作っているもの

– 演劇の稽古プランを補助するツールです。
– タイトルで言っている「プロジェクト的単位」は、ここでは「公演」になります。
– 各公演ごとに、稽古日程、役者、登場人物、シーンなどを管理します。
– -> [GitHub のリポジトリ](https://github.com/satamame/pscweb2) (Python 3.6.9, Django 2.2.6)

### 記事のコンセプト

– やりたいことのサンプルがネットで見つからなかったので、自分で考えて実装しました。それを共有します。
– もっと良いやり方をご存知の方は、教えて頂けると嬉しいです。

# 基本的な部品

まず “公演” と “公演ユーザ” を作って、ログイン中のユーザが関わっている公演の一覧を出すところまでです。

### 公演 (プロジェ

元記事を表示

【Python】APDS9960の環境光RGBを測定するコード

## RGBを調べるサンプルコードがなかったので作りました。
今回は、こちらのライブラリを使っています。
https://github.com/liske/python-apds9960
今回はMicroPythonではないプログラムです。

“`APDS9960
from apds9960.const import *
from apds9960 import APDS9960
import RPi.GPIO as GPIO
import smbus
from time import sleep

port = 1
bus = smbus.SMBus(port)

apds = APDS9960(bus)

try:
apds.enableLightSensor()
oval = -1
print(“LoggingStart”)
while True:
sleep(0.1)
print(“RedLight={}”.format(apds.readRedLight()))
print(“GreenLigh

元記事を表示

CenterNetを使ってテニスの選手,ボール,コートの位置を検出してみた

# やったこと
CenterNet (https://arxiv.org/abs/1904.07850) を使ってテニスの動画から選手,ボール,コートの四隅の位置を検出しました.

「マクドナルド(マック)」で「価格あたりのカロリー」が高いハンバーガーランキングを作ってみた

## 目次
* [マクドナルド(マック)で一番「得」な商品の定義](#section1)
* [調査方法](#section2)
* [結果(値段あたりのカロリーランキング)](#section3)
* [結局、コスパ上位のハンバーガーは?](#section4)
* [まとめ](#section5)

# マクドナルド(マック)で一番「得」な商品の定義

昼飯にとって最も重要なのは「コスパ」=「値段あたりのカロリー」です。

本当は小麦粉からすいとん等を作るのが一番ですが、外食を余儀なくされる機会も多いと思います。

代表的な良コスパ外食チェーン、「マクドナルド」でコスパの高い商品を調査してみました。

### 元ネタのブログ

* 価格あたりのカロリーが高い「マクドナルド(マック)」のハンバーガーランキング
*
https://0cell.blogspot.com/2019/10/blog-post.html

stackeditの

元記事を表示

pythonの標準ライブラリ

#はじめに
今日はpythonの標準ライブラリを一通り見てみたいと思います。
理由は、python検定の受験を考えているから。しかし、忙しくてそれどころじゃないかもしれない、、、。とりあえずやっていく!

#環境
python3.6.6
Windows10

#それでは
pythonのドキュメントを参考にアルファベット順に10個ずつまとめていきます。
また、今回はクラスや関数を作らないと実行できないものは省略してあります。

| | |
|:-:|:-:|
| abs(x) | 絶対値を返す |
| all(x) | すべてTrueならTrue |
| any(x) | どれか1つTrueならTrue |
| ascii(x) | str型でないものをstr型にして返す |
| bin(x) | 先頭に0bをつけた2進数を返す |
| bool(x) | 真偽値 |
| bytearray(x) | 0から256までのバイト配列を生成 |
| bytes(x) | 0から256までのバイト文字列を生成 |
| chr(x) | intで与えた値の

元記事を表示

標準偏差の不偏推定量はホントに不偏なのか、「コインを一万回投げて」確かめてみた

筆者の学生時代[^major]、数学で統計の分野を触ったときに、このようなことを教わりました。

> 母集団からいくつかの標本をピックして、そこから母集団の傾向を推測する **(標本調査)** とき、
>
> * 確率的に**標本の平均は母集団の平均をよく表す**が、
> * 標準偏差のような**『ばらつき』を示す尺度**は、**標本のそれは母集団のそれよりも確率的に少なくなりがち**である。

要するに、

> **標本の標準偏差は母集団より小さくなる**んだよ! ΩΩΩ

ということです。

その後すぐに標本数 $n$ ではなく $n – 1$ で割る**「不偏分散」**の式を教わったりしたものですが、まあ当時は「ほーん」と聞き流していたその情報、確かめたいと思ったことはないでしょうか?

ちゃんとした代数学の証明で「不偏分散の期待値は母集団の分散に等しい」なーんて言われても、確かにそれはそうなのでしょうが、やはり**具体的なデータ[^abstraction]を見ないといまいちスッキリしない**、なんて経験はないでしょうか?

とはいっても、**それを確かめるためのデータなんて

元記事を表示

ディープラーニングG検定【キーワードまとめ】

#はじめに
+ ★適宜更新中★

+ ディープラーニングG検定に向けた情報整理を行う。
[JDLA Deep Learning for GENERAL 2019 #3](https://www.jdla.org/business/certificate)

+ 構成はシラバスに従う
[JDLA Deep Learning for GENERAL 2019 #3 シラバス](https://www.jdla.org/business/certificate/#G)

+ 参考図書
[ディープラーニング G検定(ジェネラリスト) 公式テキスト](https://www.amazon.co.jp/dp/4798157554)

+ 模擬テスト
[Study-AI G検定 模擬テスト](http://study-ai.com/generalist/)

+ 注意事項
学習後の知識確認を目的とします。テスト前の確認程度でご活用ください。
受験者は必ず公式テキスト等により自ら学習を行うようにしてください。
※記載内容に誤りがありましたらご指摘ください。

#1.人工知能(AI)とは(人工知能の定義

元記事を表示

OTHERカテゴリの最新記事