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

Python関連のことを調べてみた2020年05月09日
目次

【悲報】連休が終わる【Vue.js + Django REST frameworkで作るカレンダー】

## はじめに

ああ…長かった連休が終わる…。月曜から仕事なんて考えられない…。ずっとゴロゴロしてたい…。
  

12連休が終わりに近づき、**絶望的な心境**の中、せめて次はいつ祝日がやってくるのかという**一筋の希望**を原動力にしないともう生きていけないという考えに至り、**あと何日で次の祝日がやってくるか表示できるカレンダー**を作成しました。
  

今回はVue.jsとDjango REST framework(DRF)を使い、簡単なAPIを実装してみました。
  
  

## 完成版

以下の gifです。 ※GitHubは[こちら](https://github.com/aloabtshk/django_calendar)
![ezgif.com-video-to-gif (2).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568173/629fd813-ec18-6ade-69ab-18ac9861dfd2.gif)

テーマは**「連休が終わるという悪夢」**です。

ボタン

元記事を表示

Ruby と Perl と Java と Python で解く AtCoder ARC 098 C 累積和

# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder Regular Contets C – Attention](https://atcoder.jp/contests/arc098/tasks/arc098_a)*
Difficulty: 641

今回のテーマ、累積和
# Ruby
入力例 2 の`WEWEWEEEWWWE`を考察しますと、`WEWEWEEiWWWE`となり`i`の左側の`W`の個数と右側の`E`の個数の合計が求める人数となります。
文字列の左`0`から右`n-1`に向かって、`E`は単調減少、`W`は単調増加ですので、計算量を抑える手法として**累積和**を使用します。

“`ruby.rb
n = gets.to_i
s = gets.chomp

元記事を表示

[English ver.] [Tensorflow Lite] Various Neural Network Model quantization methods for Tensorflow Lite (Weight Quantization, Integer Quantization, Full Integer Quantization, Float16 Quantization, EdgeTPU). As of May 05, 2020.



元記事を表示

その数は整数と等価か?

# はじめに

1.23や34.5などの数値は小数ですよね。整数ではありません。
1.0や34.0も小数ですが、まあ整数ともいえるのかもしれません。

1/3などの分数も、整数ではありません。
3/3の分数は、整数ともいえそうです。

ここでは整数をこのように定義します。
“1や34などの他、1.0や3.0のように小数点以下が0である数と、分子・分母が共に同じ数である分数”

この記事では、分数や小数でありながら整数でもあるリテラルを判別する方法について考察していきます。

# そもそも、分数の表現方法とは

純粋な整数や小数は以下のように、変数に数値を入力するだけで済みます。

“`Python

a = 123
b = 123.4
print(a)
print(b)

# 123
# 123.4
“`

一方で分数はというと、上記と同様に”1/4″などと記述すると計算処理が自動的に行われてしまうため、表現できません。
そこでPythonの標準ライブラリ fractionsを利用します。

“`Python
from fractions import Fraction

f =

元記事を表示

【Python/Tkinter】Menuにキーボード・ショートカットを結びつける

## はじめに
TkinterのMenuでは,コマンド付きのメニューボタンを加える際にacceleratorオプションを指定することでいい感じの見た目で表示させることができますが,実際にはこれだけでキーボード・ショートカットを有効にすることができません。メソッドと紐付ける作業が必要となります。そのためのサンプルを示します。

##サンプル

“`py
import tkinter as tk
from tkinter import ttk

class Application(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.pack()
self.master.geometry(“300×300”)
self.master.title(“Menubar Sample”)
self.create_menubar()

def create_menubar(self):
menubar =

元記事を表示

Omron環境センサの値をRaspberryPiでロギング(USB型)

#はじめに
本記事は、**[Omron環境センサ(BAG型)の記事](https://qiita.com/drafts/ed2ffde4c87001111c12/edit)**と同内容を、
Omron環境センサ(**USB型**)で実施した記事です。

#環境センサとは?

Omronの環境センサは、温度、湿度、照度、気圧、騒音など、
複数のセンサーをひとまとめにしたデバイスです。
![オムロン環境センサ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/35831ff1-4d87-660a-71f4-5172bc462c81.png)
(左:BAG型の2JCIE-BL01、 右:USB型の2JCIE-BU01)

今回は、右側のUSB型のデータをRaspberryPiから取得します。

#必要なもの
**・RaspberryPi**(今回はPi3Model Bを使用)
**・Python実行環境**(今回はpyenvでPython3.7.6使用)
**・Googleアカウント**(スプレッド

元記事を表示

型ヒントを使ってソースの可視性をアップする

# 型ヒントとは

型ヒントでは、プログラム内に引数や戻り値に型を定義し、あたかも静的型付け言語のようなコーディングができる。
型ヒントはメタ情報のように扱われるため、実行されるプログラムには影響がない。

pythonでは基本的に型を書くことはない。それはpythonが動的型付け言語とされているためである。
動的型付けとはプログラム実行時にpythonが型を判別し、適切な型を選択していることである。
⇔静的型付け・・・コンパイル時に型を判定する。対象言語はCやJava。

# 型ヒントを使用する目的

## ソースコードの可視性向上

pythonにも型の概念はあるものの、型を意識せずにプログラムを書ける。
しかし、型を意識しないでプログラムを書くと、データの構造が漏れていたり処理内容が間違っていることに気付きにくい。
実行時に想定外のエラーが発生しても原因を特定しづらい。
レビューにおいても作成したプログラムの本質や目的が第三者にも伝わりにくい。

型ヒントを用いることで、クラスや関数の引数がより明確になる。プログラムの意図がより伝わりやすくなる。
ソースファイルが多ければ多いほど

元記事を表示

【自然言語処理】Slackコミュニティで今週盛り上がった話題を可視化してみた

## 本記事について

この記事では、Slackコミュニティである一定期間(ここでは1週間)内にどんな話題で盛り上がったのかをWordcloudを用いて可視化する手法について紹介します。

ソースコードは[こちら](https://github.com/sota0121/slack-msg-analysis)にあります :octocat:

あわせて読みたい:【自然言語処理】Slackコミュニティにおける各メンバーの発言を可視化してみた(作成中)

## 目次

1. 使い方と出力例
2. Slackからメッセージを取得
3. 前処理:メッセージマートテーブル作成
4. 前処理:クリーニング
5. 前処理:形態素解析(Janome)
6. 前処理:正規化
7. 前処理:ストップワード除去
8. 前処理:重要語句抽出(tf-idf)
9. Wordcloudで可視化処理
10. おまけ

## 1. 使い方と出力例

### 1.1. 使い方

詳細は、[README](https://github.com/sota0121/slack-msg-analysis/blob/master

元記事を表示

『ゼロからFlaskがよくわかる本』読書メモ

# 概要

以下の書籍を読み進めた際の読書メモです。
所要時間は約15時間。(うち環境構築周りの作業や調査が3時間程度)
触れ込み通り、非常に軽量でサクサク開発でき、拡張も容易なフレームワークという印象でした。

# 書籍概要

– 書籍名:ゼロからFlaskがよくわかる本
– 著者 :本田崇智
– 発刊日:不明(2018年7月頃?)
– 頁数 :214ページ
– 備考 :Kindle版のみ

# 環境構築

## Python環境構築

– brewでインストールしていたPythonのアンインストール
– “`$ brew uninstall python“`
– “`$ brew uninstall python3“`

– 公式インストーラでインストールしていたPythonのアンインストール
– [Macにインストールした公式Pythonをアンインストールする方法](https://code-graffiti.com/how-to-uninstall-official-python3-on-mac/#toc1)

– pyenvのセットアップ

元記事を表示

【Python】Region Covariance: 分散共分散行列とコンピュータビジョン

分散共分散行列を特徴量として,オブジェクト検出 (object detection) やテクスチャ分類 (texture classification) のようなコンピュータビジョン分野の課題に取り組むという論文「Region Covariance: A fast descriptor for detection and classification[^1]」 のまとめとオブジェクト検出の簡単な Python での実装.

## Introduction

検出や分類問題において,特徴量選択は非常に重要である.実際,RGB 値や輝度値,その勾配などがコンピュータビジョン分野ではよく用いられているが,これらの特徴量は照明の当たり具合に頑健でなく,画像サイズによっては高次元な特徴量になってしまうなどの問題点がある.また,画像のヒストグラムを用いる手法も存在するが,ヒストグラムのビンの数を $b$,特徴量の数を $d$ とすると,ヒストグラムの次元は $b^d$ となり,特徴量の数について指数的に次元が増加してしまう.以下は RGB 値を特徴量とした $b=4, d=3$ の例.

元記事を表示

APIを利用してGAのアカウント、プロパティ、ビューの一覧を縦持ちデータで取得する

Qiita記事初投稿です。
APIの利用が初めてだったのも含めて、至らない点もあると思いますがよろしくお願いします。

– [概要・やりたいこと](#概要やりたいこと)
– [Try this APIを利用してみる(非エンジニア向け)](#try-this-apiを利用してみる非エンジニア向け)
– [開発環境・モジュールのバージョン](#開発環境モジュールのバージョン)
– [事前の作業内容](#事前の作業内容)
– [実装コード](#実装コード)
– [今後の展望](#今後の展望)

## 概要・やりたいこと
私の会社ではサイト上の数値をGoogle Analytics(以降GA)を利用して計測しています。
社員もある程度おり数年以上利用を続けていたのですが、運用保守までしっかりと手が回らず、
様々なアカウントやプロパティが乱立してしまいました。

GAの管理画面上では、アカウントやプロパティの一覧をスクロールしながら表示することは可能です。
その結果をスプレッドシート上などで閲覧できる状態にしたい、というのが今回のゴールになります。

## Try this APIを利用してみる

元記事を表示

フリーランスエンジニアが独学で論文を読み解いていく方法(1/n)

 社会人になってから必要に駆られて論文を読むようになりましたが、まだまだ戸惑う事も多々あります。
近年、DeepLearningや機械学習といった分野が実用化されて来る中、
最新情報にアクセスしようとするとどうしても論文を紐解いていかなければならない事が多々出てくると思います。

そんな中、自分が調べたい分野があった時にどんな風にして調べていったら良いのか、
分野全体の流れはどうなっているのかをどうやって把握していったら良いか等、

あくまでも独学で自分なりにということなのですが、少しずつ紹介していけたらと思います。

#1.論文著者から流れを観る

まずは自分が気になる論文を観つけた際に最も上に書いてあるのはタイトルにつづいて著者です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631693/9614888e-04cf-fe3f-026d-a9e9eecfc33b.png)

著者名からどんなことが解るかを考えていきたいと思います。

参考になるページがありましたのでURLを紹介

元記事を表示

Django フォルダ構成を考える

へっぽこエンジニアながら今回、作成したサービスのDjango構成を公簡単に開します。

#ルートフォルダ
![スクリーンショット 2020-05-09 1.01.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634341/a125a8d9-dd14-1fb2-e964-d67654157227.png)

|フォルダ名 |説明 |
|—|—|
|account |ユーザ認証用のアプリケーション |
|ajax |ajaxの処理をまとめたアプリケーション |
|media |開発用のメディアファイルの格納場所 |
|project |設定フォルダ(settings.py) |
|static |PWAに必要なmanifest.json等の格納場所 |
|twitterapi |twitterapiの処理をまとめたアプリケーション |
|youdev |メインのアプリケーション |

##viewsファイル等の分割

![スクリーンショット 2020-05-

元記事を表示

pythonによるGCSへのバケット・ファイルの操作(転送・取得・削除・読み込み等)まとめ

※以下のコードはJupyter Notebookで書いて使用するものとなります。

※GCP、GCSに対する環境構築や設定が行われていることを前提とします。

“`最初に実行している.py
import os
import pandas as pd
from io import BytesIO
from pathlib import Path
from google.cloud import storage
from google.oauth2 import service_account

def get_project_credentials():
credentials = service_account.Credentials.from_service_account_file(
“xx/xx/xx/xx.json”,#サービスアカウントキーのjsonファイルが置いてあるパス
scopes=[“https://www.googleapis.com/auth/cloud-platform”],
)
return cre

元記事を表示

世界の国別の人口を知りたい。

## 目標

Screen Shot 2020-05-09 at 0.11.02.png

こういう感じに、年、地域、サブ地域、国、国番号、人口が書いてある表が欲しい時どうするかという話。

“`
LocID,Location,Time,PopTotal,SubRegName,GeoRegName
392,Japan,2019,126860299,Eastern Asia,Asia
“`

## 結論

https://population.un.org/wpp/ から必要なデータをダウンロード出来ます。

* [All variants (CSV, 21.35 MB) WPP2019_TotalPopulationBySex.csv](https://population.un.org/wpp/Downloa

元記事を表示

Omron環境センサの値をRaspberryPiで定期ロギングする

#環境センサとは?

Omronの環境センサは、温度、湿度、照度、気圧、騒音など、
複数のセンサーをひとまとめにしたデバイスで、
センサメーカの大御所らしい充実した機能が魅力です!
![オムロン環境センサ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/e0f17e76-010a-2e43-8847-a92994fc50b0.png)
(左:BAG型の2JCIE-BL01、 右:USB型の2JCIE-BU01)

本記事では、RaspberryPiから環境センサの値を取得し、
Googleスプレッドシートにアップロードしてみました。

実際に試してみて、センシングからロギングまで、
**安価な汎用機器だけでここまでの機能が実現できるのか!**
と驚いています。
(‥その代わり、心が折れそうになるハマりポイントも多いですが笑)

#必要なもの
**・RaspberryPi**(今回はPi3Model Bを使用)
**・Python実行環境**(今回はpyenvでPython3.7.6使用)
*

元記事を表示

scikit-learnのLogisticRegression()のmax_iterについて

#発端
私は今、udemyの「pythonで学ぶ機械学習:scikit-learnで学ぶ識別入門」を受講している。このコースは、各テーマでサンプルコードが配布されているため、わざわざ書く必要が無くてありがたいのだが、警告文が出る。
#環境 
jupyter-lab:1.2.6
python:3.7.7
scikit-learn:0.22.1

#問題の箇所

“`python
from sklearn import linear_model
clf = linear_model.LogisticRegression()
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import LeaveOneOut
loocv = LeaveOneOut()
scores = cross_val_score(clf, X, y,cv=loocv)
“`
を実行したところ、

“`python
ConvergenceWarning: lbfgs failed to converg

元記事を表示

yukicoder contest 247 参戦記

# yukicoder contest 247 参戦記

## [A 1046 Fruits Rush](https://yukicoder.me/problems/no/1046)

正の新鮮さの果物があるのであれば、正の新鮮さの果物だけ大きい方から順にK個採用する(K個無い場合は全部). 0以下の果物しか無いのであれb、一番0に近いやつを1つだけ採用する.

“`python
N, K = map(int, input().split())
A = list(map(int, input().split()))

A.sort(reverse=True)
print(A[0] + sum([a for a in A[1:] if a > 0][:K – 1]))
“`

## [B 1047 Zero (Novice) ](https://yukicoder.me/problems/no/1047)

分からないので、多めにループを回して0になるかどうか確認するだけのコードを書いたら AC した(酷い). A, B が大きいので、105 回したら TLE

元記事を表示

Pythonで書くガチャ-BOXガチャ-

#内容
BOXガチャを作成してみます。
下記のソースを流用します。
([Pythonで書くガチャ-データ設計-](https://qiita.com/saib-ryo/items/1309c4c94d9f6629ba6d))

##BOXガチャとは
抽選箱(BOX)の中に、決められた枚数のくじが入っていて、**全て引ききる**とガチャが終了となる仕組みです。(自動的に下位レアリティのくじを補充するようなBOXガチャはインチキですのでご注意ください。大炎上します)

##BOXガチャの確率
抽選においてアイテム毎の重みの設定はありません。
一つのアイテムを引く確率は、BOX内にある全体の枚数(n)を母数とした確率になります

“`math
p = \frac{1}{n}
“`
1枚引いた後の確率は以下のようになります

“`math
p = \frac{1}{n-1}
“`

##BOXガチャの実装
“`python:gacha_box.py
import random

# BOXの状態を保持するためクロージャを使います
def gacha_box(gacha_ite

元記事を表示

自作モジュールをpip installできるように公開してみた

# 要約
自作モジュールを

“`python
pip install my_awesome_module
“`
できるように公開するには、`setup.py`と一緒にGitHubで公開すればOKという話

**GitHub page**: https://github.com/kyohashi/model_selection

# そもそもpip installってなにしてるの?
PyPI(Python Package Index, パイピーアイ)へモジュールを探しに行っています。
例えば、[PyPI.org](https://pypi.org/)へアクセスしてnumpyを検索すると↓

*https://pypi.org/*

たしかにnumpyがありますね。↓

  • OTHERカテゴリの最新記事