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

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

[Python]チームのために簡単なコーディングルールをまとめる

ある小さなチームのPython3での開発のコーディングルールをまとめる。
タイトルにある「簡単な」は、言い方を変えるとあまりスキルが高くないチーム向けということなどで内容は基本的なことのみ。
チームの進行度やスキルレベルの成長に合わせて進化させられたらいいな。

# 環境
– Python 3.7.4
– pytest 5.2.2

# フォルダ構成
– フォルダ構成を一定にしてプログラム開発する習慣をつける
– プログラムとセットでテストも作成する習慣をつける

“`
(project name)
├── (project name) ………… プログラムのソースコード
│ ├── logs ………………. ログ出力先フォルダ
│ ├── data ………………. 連携ファイル格納先フォルダ
│ └── *.py
└── tests ………………… 単体テストのソースコード
└── test_*.py
“`

# 命名規則
– Pythonの標準的な考え方やルールに則るのが原則

元記事を表示

機械学習用の画像収集する(Bing Search API)

## はじめに
自分が実施したことの備忘録のメモとなります。

## やること
機械学習の勉強を実施しようとすると大量の画像が必要になるときがあります。画像収集には、Bingが一番適しているようだというのと、Microsoft Azureはやってことがなかったので、これも勉強ということで実施してみました。画像収集でつまずくと地味にツライと参考URL先の投稿でもありますが、激しく同感です。

【参考URL】Yahoo、Bing、Googleでの画像収集事情まとめ
https://qiita.com/ysdyt/items/565a0bf3228e12a2c503

## 前提
Microsoft:Bing Search APIのキーの取得(参考URLにて取得方法を確認)
https://azure.microsoft.com/ja-jp/

有効期限:無料で使えるのは30日間

## 参考URL
・Bing Web Search APIで画像自動収集プログラムを作る

・Bingの画像検索

元記事を表示

初心者のためのPython基礎文法

  

#はじめに#
Pythonに触る機会があったので、自分の復習も兼ねてPythonの基礎文法を簡単にまとめてみました!

#目次#
[1.出力](#1出力)
[2.変数](#2変数)
[3.文字列の結合](#3文字列の結合)
[4.if文](#4if文)
[5.for文](#5for文)
[6.while文](#6while文)
[7.forとwhileでbreak, continue](#7forとwhileでbreak-continue)
[8.list](#8list)
[9.辞書](#9辞書)

#1.出力#
print( )で( )の中の値を出力することができます。
( ‘ )シングルコーテーションか( ” )ダブルコーテーションで囲うことで文字列が表示されます

“`python

print(‘123’)
>>>123
print(“123”)
>>>123
“`
数値はシングルコーテーションなどで囲う必要はありません。

“`python
print(123)
>>>123
“`
Pythonのプログラムでは123は数値、’123’は文字列として扱い

元記事を表示

NHKから国民を守るプログラミング言語

#はじめに
先日、[【数学】NHKから国民を守る党からNHKを守る党からNHKから国民を守る党を守る党](https://qiita.com/MirrgieRiana/items/da7dade622770a04d8f7)という記事がQiitaに投稿されました。

この記事の中で**NHKから国民を守る党文法**というものが定義されています。
これを読んだ私はこう思いました。

*「この文法でプログラムを書ければ、どんなに素晴らしいだろう」*

#コンビネータ論理
NHKから国民を守る文法は、**NHK**と**国民**という2種類の葉を持つ2分木を曖昧さなく表記できます。

このようなシンプルな構文を持つプログラミング言語として、[Lazy K](https://ja.wikipedia.org/wiki/Lazy_K)に注目しました。

Lazy K は[コンビネータ論理](https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%93%E3%83%8D%E3%83%BC%E3%82%BF%E8%AB%96%E7%90%86)に基

元記事を表示

AtCorderわからん日記_2 ABC148E

#はじめに
DができたからEもちょっと覗いてみよかな~と思って、パっと見難しすぎる数式がある感じでもないしいけるかな? と思ってやってみました。結論から言うと、全くわからなかったです。これがE問題……アルゴリズムの基本をきちんと勉強するまでは、がんばるのはDまででいいかもしれないですね。
問題は[ABC148](https://atcoder.jp/contests/abc148)のE問題より。以下引用です。

# E – Double Factorial
0以上の整数nに対し、f(n)を次のように定義します。
f(n)=1(n<2のとき) f(n)=nf(n−2)(n≥2のとき) 整数Nが与えられます。 f(N)を10進法で表記した時に末尾に何個の0が続くかを求めてください。 ## 考えたこと ①とりあえず掛けて、末尾の0が何個あるか考えるか 振り返って書いてても恥ずかしくなるぐらい愚かですね。昨日計算量について教えてもらったばっかりなのに……。 ###1回目 ```py import re n = int(input()) i=n-2 while i >= 2:
n

元記事を表示

ポケモンで学ぶ機械学習

## はじめに
先月、ポケットモンスター ソード・シールドが発売されました。ちなみに、みなさんはポケモンをプレイしたことはありますか?ポケモンをやったことがある人ならわかると思うのですが、ポケモンには、HP、こうげき、ぼうぎょ、とくこう、とくぼう、すばやさ、からなる能力値が存在します。能力値が高いポケモンほど強いポケモンであると言えます。能力値は、種族値と個体値と努力値の三つの値から算出されます。(計算式は下に書いときます)**種族値**とは、ポケモンの種類ごとに与えられた値のことです。**個体値**は、個体ごとに与えられた値です。同じポケモンでも強さが異なるのを表してます。**努力値**は、後天的に与えられた値です。個体値は、生まれた時に決まるのに対して、努力値は、戦闘によってあげることができます。今回は、pythonで種族値からポケモンのタイプを判定していきたいと思います。

< 能力値算出の計算式 >
・HPの能力値 = (種族値×2+個体値+努力値÷4)×レベル÷

元記事を表示

【Pytorch入門】Cifar10のカテゴライズをVGG16でやってみた♬

ちょっと前からPytorchが一番いいよということで、以下の参考を見ながら、MNISTとCifar10のカテゴライズをやってみた。

###やったこと
・Pytorchインストール
・MNISTを動かしてみる
・Cifar10を動かしてみる
・VGG16で動かしてみる
###・Pytorchインストール
以下の参考⓪のページに自分の環境に合わせて入力すると自動的に、コマンドを指定してくれる。
【参考】
⓪[https://pytorch.org/](https://pytorch.org/)
![pytorch_install.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233744/05358f02-4671-7c8c-c540-3f3bd563ae29.jpeg)
ということで、ウワンの環境だと以下のコマンドでインストールできました。

“`
(keras-gpu) C:\Users\user\pytorch>conda install pytorch torchvision cudatoolk

元記事を表示

ラズパイ3B+でRGB LEDmatirix電光掲示板の表示を自在に操る

#環境
ラズパイ3B+(SDカード含む)
RGB LEDmatrix(6mmピッチ 32×32) 6枚
LEDmatrix用コネクタ
MAXWELL スイッチング電源
LEDパネル用電源コード 3本
IDCフラットケーブル 6本
ジャンプワイヤー オスメスとオスオス 50本ずつ
ブレッドボード
ラズパイ以外は秋葉原のLEDピカリ館で購入しました。
[LEDピカリ館](https://www.akiba-led.jp/)
#実現したいこと
ラズパイを使って、LEDmatrixの得点表示を自由に切り替えてみたい。
LEDmatrixをラズパイで扱うことができれば、ネット接続でスマホからの切り替えも可能になるので、応用の幅は広いはず!

#LEDmatrixって何?
LEDmatrixとはLEDの集合体のことを言います(そのまま笑)
よく駅で見る電光掲示板と同じです。
いろいろな種類がありますが、基本的に違いはピッチ(LED同士の距離)と表現できる色、そして縦横のLEDの配置数です。今回は6mmピッチでRGB (全色表現可能)の32×32のLEDmatrixを6枚使用しました。

#配線

元記事を表示

matplotlibのsubplotsをfor文で使うと便利

**subplot と subplots を間違えないように気をつける**

## subplotsをfor文で使うと便利

“`python
import numpy as np
import matplotlib.pyplot as plt
plt.style.use(‘seaborn-whitegrid’)
%matplotlib inline

# データを用意
t = np.linspace(-np.pi, np.pi, 1000)
x1 = np.sin(2*t)
x2 = np.cos(2*t)
x3 = np.tan(2*t)
x4 = 1 / x1
x5 = 1 / x2
x6 = 1 / x3
“`

– (例1)6つのデータを2行3列でプロット

“`python
fig, axes = plt.subplots(2, 3, figsize=(16,12))
l = [[x1, x2, x3], [x4, x5, x6]]
for i in range(2):
for j in range(3):
axes[i][j].plot(t

元記事を表示

学習記録 その13(17日目) Kaggle3

#学習記録(17日目)
勉強開始:12/7(土)〜

教材等:
・大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年):12/19(木)読了
・Progate Python講座(全5コース):12/21(土)終了
・Andreas C. Müller、Sarah Guido『(邦題)Pythonではじめる機械学習』(オライリージャパン、2017年):12月23日(土)読了

#Kaggle
参加コンペ:[Real or Not? NLP with Disaster Tweets](https://www.kaggle.com/c/nlp-getting-started)  12/24(火)〜

・色々と勘違いしていたようで、昨日まで抱えていた問題(引数に2値が取れないなど)は解決

・しかし、SVCやxgboostで学習してもscoreが0.5付近となる問題が発生。
 課題は0か1かの分類なので、つまるところ正しい学習ができていない模様。

・ベクトル化と学習データ・テストデータの分割はできているので、再度モデルが正しいかどうかの見直しを実施中(現在進行形)

元記事を表示

深層学習/正則化の効果を見える化する

#1.はじめに
 深層学習の勉強を始めました。今回は、正則化について、簡単にまとめてみます。

#2.データの作成
 方程式 $y=-x^3+x^2+x$ を元に、x は -10〜10を50分割した値、y は方程式にそのxを代入した結果に 0〜0.05の乱数を加えた値としてデータを作成します。

“`python
from sklearn.preprocessing import PolynomialFeatures
from sklearn import linear_model
import numpy as np
import matplotlib.pyplot as plt

# データの生成
np.random.seed(0)
X = np.linspace(-10, 10, 50)
Y_truth = 0.001 * (-X **3 + X**2 + X)
Y = Y_truth + np.random.normal(0, 0.05, len(X))

plt.figure(figsize=(5, 5))
plt.plot(X, Y_truth, color=’gray’

元記事を表示

言語処理100本ノック-76(scikit-learn使用):ラベル付け

[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)の76本目「ラベル付け」の記録です。
ノックの設問内容は訓練データに対する予測でラベル付けですが、今回はあえてテストデータで実施しています。
今までは基本的に[「素人の言語処理100本ノック」](https://qiita.com/segavvy/items/fb50ba8097d59475f760)とほぼ同じ内容にしていたのでブロクに投稿していなかったのですが、[「第8章: 機械学習」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#ch8)については、真剣に時間をかけて取り組んでいてある程度変えているので投稿します。[scikit-learn](https://scikit-learn.org/)をメインに使用します。

# 参考リンク

|リンク|備考|
|:–|:–|
|[076.ラベル付け.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/08.%E6%A

元記事を表示

量子情報理論の基本:量子状態トモグラフィ

$$
\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}
$$

## はじめに

「量子情報理論の基本」と題して、これまでいろんな話題を取り上げてきましたが、量子状態を表現するために、いつでも登場するのが「密度演算子」というものでした。特に、混合状態になっている量子系を考える際に、使わざるを得ない非常に便利な理論的な道具なので、もうこれなしでは生きていけません。とても便利なので、未知の物理系があったときに、「この量子状態はいかなる密度演算子で表せるものであるか?」ということを思わず問いたくなるわけです(なってください!)。実は、「量子状態トモグラフィ(quantum state tomograpy)」という手法を使うと、それが推定できます。今回の記事では、まず、その手法について説明した後、量子計算シミュレータ[

元記事を表示

電場の数値解析:有限差分法(FDM) -実践編-

# 前書き
前回の『[電場の数値解析:有限差分法(FDM) -基礎編-](https://qiita.com/atily17/items/b4e0976867e81a181709)』の続き。

今回はやっと数式だけでなく、pythonで有限差分法を書いていく。
それにしてもネット上にプログラムを書いていくのは、下手なのがバレそうでちょっと恥ずかしい。
特に、pythonはスクリプトの綺麗さがそのまま高速化・最適化につながっていたりするので、色々と突っ込まれそうだ……。

そういう意味で、C,C++やFortranなどはforループなどを脳筋に回しても高速になってくれて、最近はこっちのほうが好きになってきた。
……話がそれた。それでは数値解析を始めよう。

実際に作ったプログラムはまとめの項にgithubを載せているので、とりあえず一度動かしたい方はそちらをまずダウンロードして動かしてみて欲しい。

# 問題設定
最初からあらゆる問題を解けるようなプログラムを書くのは難しいので、まずは問題設定をしていこう。

ポアソン方程式
$$
\nabla \cdot \nabla u = f
$$

元記事を表示

Google Nest Hub に草を表示

Pixel 4 を買ったら Google Nest Hub が届きました。デジタルフォトフレームとしてもいい感じに使えそうです。せっかくなので、GitHub の草画像を表示させてみることにします。

![nesthub.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123106/2bd0bd55-4959-7f82-6e20-e4e4a352a9c6.jpeg)

# Google Nest Hub の設定
購入直後の Nest Hub は、Google が用意したアートギャラリーを表示するようになっています。これを、好きな画像を表示できる設定に変更します。

1. iOS または Android 端末で Google Home アプリを起動
* Nest Hub を買ったら、インストールしているはず
2. Nest Hub > フォトフレーム に移動
* 表示する画像の設定を Google フォトに変更
3. 「個人的な写真の整理」の設定を「リアルタイム共有アルバムのみ」に変更
* この設

元記事を表示

毎朝 LINE に天気を通知するアプリを作成

## はじめに

2 歳の子がいるので、毎朝 E テレを観てるのですが、E テレでは天気が出ません
天気を確認するためだけにニュース番組にチャンネルを変えたり戻したりしてるので、天気 API から天気を取得して LINE に Push する簡単なアプリを作ろうと思います
年末の暇つぶしです
もちろん無料の範囲内で

## 構成

 2019-12-26 14.41.32.png

GitHub Actions を使ったことがなかったので、試しに使ってます
ただ、cron 機能しか使ってないので、これだけであれば GAS のトリガー機能とかの方が簡単で良いと思います

## LINE の Developer アカウントの作成及び、アプリの登録

こちらから作成
https://developers.line.biz/

元記事を表示

php 連続 文字 一つに

# やりたいこと

ABBCCCAAのような文字列をABCAにしたい

# これでおk

PHP

“`php
>>> preg_replace(‘/(.)\1+/’, ‘\1’, ‘ABBCCCAA’)
=> “ABCA”
“`

JS

“`javascript
‘ABBCCCAA’.replace(/(.)\1+/g, ‘$1’)
=> “ABCA”
“`

ruby

“`ruby
“ABBCCCAA”.gsub(/(.)\1+/, ‘\1′)
=> “ABCA”
“`

python

“`python
import re
print(re.sub(r'(.)\1+’, ‘\\1’, ‘ABBCCCAA’))

=> “ABCA”
“`

おわり

類似記事

https://qiita.com/nena3/items/b5fec48c8eecb2353ab1

元記事を表示

Mojave(10.14.6)でTensorflowやpymc3と一緒にpymatgenやaseを使える環境をAnacondaで構築する

# Mojave(10.14.6)でTensorflowやpymc3と一緒にpymatgenやaseを使える環境をAnacondaで構築する

MacのMojave(10.14.6)でTensorflowやpymc3と一緒にpymatgenやaseを使える環境をAnacondaで構築する手順です。自分用のメモをアップしています。

Mojaveでは、tkのバージョンが8.6.8だとase guiなどのtkスクリプトを実行するとMacが落ちます。Anacondaでインストールするpythonでは、3.6.7以上のバージョンはtk8.6.8以上を必要とします。したがって、Anaconda3-5.1.0(python 3.6.4)より新しいバージョンは使えません。Anaconda3-5.2.0だと、condaのアップデートのときにpython 3.6.6のバージョンアップと同時にtkも8.6.7から8.6.8にアップデートされてしまいます。その状態からtk8.6.7に戻してもパッケージ依存に微妙な問題があるので5.1.0が無難です。

ここでは、pyenvを使ってanacondaをインストー

元記事を表示

AtCoder Beginner Contest 072 過去問復習

すでに解いたことのある過去問、二回目

#所要時間

スクリーンショット 2019-12-26 10.10.55.png

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

砂なくなるかどうかで場合分け

“`python:answerA.py
x,t=map(int,input().split())
print(max(x-t,0))
“`

#[B問題](https://atcoder.jp/contests/abc072/tasks/abc072_b)

奇数の文字を取ってくれば良いだけ
二つ目のようにステップを設定する事でより簡潔に書ける(Pythonの文字列操作
優秀すぎ)

“`python:answerB.py
s=input

元記事を表示

【Python】文まとめ【try, del, assert, yield, raise, pass】

# はじめに
知っているようで全ては知らない,しかし使えると便利なPythonの「文(statement)」をまとめます.

#単純文と複合文
Pythonには二種類の「文」があります.

## 複合文(compound statement)
`if`文,`while`文,`for`文等の文中に他の文などを入れることができる文を**複合文**と呼びます.

“`python:example
n=3
if n==3:
print(‘Yes’) # 複合文中ではインデントを下げる
else:
print(‘No’)
“`

複合文には`if`文などの他にも,`class`文,`def`文,`with`文,`try`文などがあります.今回は,複合文は`try`文について扱います.

### try (except)

「このコードを実行するとバグが起きるかもしれないから,バグが起きたときだけ例外として処理したい…」のような場合,`try`文と`except`文が便利です.使い方は以下の通りです.

“`python:how_to_use
try:
例外が発

元記事を表示

OTHERカテゴリの最新記事