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

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

Pythonを始めるときに読む資料

他の言語をある程度使える人が、これからPythonを始めるというときに便利な資料を集めました。
Pythonのセットアップから基本的な言語仕様がわかるようになります。

# はじめに

[Pythonを書き始める前に見るべきTips – Qiita](https://qiita.com/icoxfog417/items/e8f97a6acad07903b5b0)

Pythonは2系と3系で後方互換に影響がある変更が入っています。そのあたりの情報から、セットアップ方法、言語の特徴などがまとめられています。まずは一通り読んだあとに、他の記事とも比較して知識を固めるのが良いと思います。
特にセットアップまわりは複数の方法があるので、いくつかの記事を読んで、自分好みの方法で進めることで、のちの後悔を軽減できます。

# セットアップ

[Pythonの開発環境を用意しよう!(Mac)](https://prog-8.com/docs/python-env)

画像入りで非常に分かりやすく書かれています。

## venv

[venv: Python 仮想環境管理 – Qiita](http

元記事を表示

argparseのhelpに “%” を含めると死ぬ

下のようなPythonスクリプトを作ったとする。

“`python
import argparse

parser = argparse.ArgumentParser(description=”)
parser.add_argument(‘–zoom’,
action=’store’,
type=float,
default=1.0,
help=”拡大率(%)”)
args = parser.parse_args()

print(“zoom is {}”.format(args.zoom))
“`

これは普通に実行できるが、

“`
$ python hoge.py –zoom 2.0
zoom is 2.0
“`

ヘルプを表示しようとするとValueErrorが出てしまう。

“`
$ python hoge.py -h
Traceback (most recent call last):
File “hoge.py”, line 9, in
args = parser.parse_args()

元記事を表示

20代エンジニア格付けチェックCODING ~定時後の勉強会スペシャル~ 開いてみた【社内勉強会・Paiza編】

前提

自分の現在の所属はシステム開発部、既存パッケージの改修・保守を行っている部署です。
かなり息の長い自社パッケージ(LAMP構成)を2か月に一度改修しリリースするサイクルで活動しています。
開発部メンバーは、エンジニアとしての経験が深い方から、新卒入社の社員まで様々です。

そんな中でPaizaを使って格付けチェックしてみたので、その報告と感想です。

なぜ勉強会をやろうと思ったか?

* 自社パッケージの改修・保守に傾注しているため、スクラッチでコードを書く機会がない
* 中途社員はともかく、新卒社員が自社パッケージの言語以外に触れる機会がない
* メンバー間で各人の得意なスキルを知る機会がない

やったこと

20代の開発メンバー5~6人に声をかけて、だいたい週2回のペースで[Paiza](https://paiza.jp/)の問題を解きました。
Paizaとは、出された問題をオンライン実行環境でコーディングし、コーディング速度と実行速度を計測できるサイトです。
オンライン実行環境が準備されており、ソフトのインストール不要でだれでもすぐ参加できるため、

元記事を表示

『ベイズ推論による機械学習入門』Pythonのnumpyだけで実装するポアソン混合モデルの近似推論

先月読破した[『ベイズ推論による機械学習入門』](https://www.amazon.co.jp/機械学習スタートアップシリーズ-ベイズ推論による機械学習入門-KS情報科学専門書-須山-敦志/dp/4061538322)をPythonで実装してみました。

内容は、Chapter 4 の「4.3 ポアソン混合モデルにおける推論」です。
![BayesianInference.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/357086/f4a699bf-3a78-0075-9363-dc6592f80351.jpeg)
お花柄の緑本。これで入門って…機械学習深すぎ。笑

## データの作成
今回は多峰性の1次元データとして、二峰性ポアソン分布を作成していきます。

“`python
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline

plt.figure(figsize=(12, 5))
plt.tit

元記事を表示

Kaggle関連まとめ

Kaggle攻略に役立つ情報集をまとめます。
(随時更新予定)

◾️本
Kaggleで勝つデータ分析の技術

◾️Booth
kaggleのチュートリアル第4版
https://booth.pm/ja/items/1567594

◾️まとめ記事
kaggle api関連
https://qiita.com/uni-3/items/f1fdbeeddd08ca22c80f

https://qiita.com/shunkakinoki/items/1f58e218f8f6b31ad0bf

元記事を表示

Materials Informatics関係者必見!周期表&ヒートマップで化合物データを可視化する。

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

**INPUT**: 周期表中の各元素に対して任意の値があるデータ

“`
{‘H’: 772, ‘He’: 4, ‘Li’: 1822, ‘Be’: 129, ‘B’: 511, ‘C’: 458, ‘N’: 755, ‘F’: 1756,
‘Na’: 1214, ‘Mg’: 905, …, ‘Np’: 58, ‘Pu’: 57}
“`

に対して、

**OUTPUT**: 以下のようなヒートマップ

![periodic_table_heatmap.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367470/054308a1-6bc2-c671-3c77-b04e8628554c.png)

が得られるツールを紹介いたします。

## どういう方々向け?

![053b6d93.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367470/ef5d96da-c3cb-cf44-

元記事を表示

pythonでDMM(FANZA)のAPIにリクエストを送信する方法

## もくじ

– きっかけ
– ソースコード

## きっかけ
アフィリエイトなんかではよく利用されているDMMのAPI。
これにpythonでリクエストを送信して検索結果を取得してみたいと思ってコードを書いてみたので、メモしておきます。
(実際に書いて利用したのは結構前です)

## ソースコード

同人作品情報を取得するサンプルです。

“`
# dayUtil
import datetime
# htmlUtils
import requests
from urllib.request import urlopen
# JsonParser
import json

# リクエスト電文で使用するドメイン
DOMAIN = “https://api.dmm.com/affiliate/v3/ItemList”
# リクエスト電文で使用するAPI_ID
API_ID = “xxxxx”
# リクエスト電文で使用するAFFILIATE_ID
AFFILIATE_ID = “xxxxx”
# リクエスト電文で使用するSORT_VALUE
SORT_VALUE = “date”
# リ

元記事を表示

OpenCVの画像をPygameで描画する方法

PythonでOpenCVを動かし、解析・加工した結果を表示したい場合、`cv2.imshow()`メソッドを使うのが一番簡単です。
しかし、ただ表示するだけ以上のことをしたい場合、OpenCVのウィンドウでは機能不足です。
このような問題を解決する方法の一つとして、PythonのGUIフレームワークであるPygameを使うやり方[^Pygameの選択理由]があります。
この投稿では、OpenCVの画像をPygame向けの画像に変換するやり方について書きます。

[^Pygameの選択理由]: なぜPygameなのかといえば、Raspbian Liteでも描画できるからです(超重要)。ほとんどのGUIフレームワーク(OpenCVのウィンドウ機能を含む)はX Window Systemに依存しており、GUIが組み込まれていないRaspbian Liteでは表示できません。しかし、PygameにはSDLを使用して描画する機能も存在するため、Raspbian Liteでも動作します。

## 環境

ハードウェア

競馬サイトをクローリング&スクレイピングしてみた その2

###はじめに
「Pythonクローリング&スクレイピング[増補改訂版]―データ収集・解析のための実践開発ガイドー」第3章までの知識を用いてオリジナルプログラムを作成する。

今回はnetkeibaの競走馬検索機能の検索結果から個別ページのURLを取得し、そのURLにアクセスして各馬の情報を取得し、データベースに保存する、というプログラムを作成した。

###検索結果ページの構造
検索窓は基本netkeiba内の最上部にあるので割愛。
詳細検索機能では血統、毛色、表示順などいろいろな検索条件が指定できるが、
今回は検索窓を使用せず、[ディープインパクトの詳細ページ](https://db.netkeiba.com/horse/2002100816/)の繁殖成績欄から検索結果ページに飛んだ(この辺、のちに記述するJavaScript絡みと関係あり)
pandasでデータいじりのベストプラクティス

機械学習で、データの前処理が終わったあとに、仮説を持ちながら、
データと戯れる?弄る?フェーズがあると思うのですが、
そのときにpandasを如何に自由自在に操れるかというのが、
大切になってくると思っています。

私自身、少しだけプログラミングの経験や、データベースの知識がある中で、

***pandasのDataFrameの [] ←これややこしすぎ!!***

特に、条件で絞り込むのがつらいなと。

“`Python
train[train[“company_id”] == 1088][“meter_reading”]
“`

この時点でややこしいけど、これがtrain_weather_dfだったら、もうまじで破滅する

“`Python
train_weather_df[train_weather_df[“company_id”]==1088][“meter_readings”]
“`

さらに、条件が二つになると、より恐ろしいことが起こります・・・

なので、少し複雑なことをやるには、
***.query()を使う***のが良いと思う。

“`Python
tra

pandasで数値の変数を、閾値を決めてカテゴリカルに変換する

自分の備忘録として書いていこうと思います。

初記事からすごくピンポイントですが、機械学習の特徴量エンジニアリングとして、

・0~1は1,1~3は2
・3~10は3
・10~20は4 …………

 のように、特徴量を区分したい時ってあると思います。

すごく分かりやすい例だと、
[ビューフォート風力階級](https://ja.wikipedia.org/wiki/ビューフォート風力階級)

“`Python:
beaufort = [(0, 0, 0.3), (1, 0.3, 1.6), (2, 1.6, 3.4), (3, 3.4, 5.5), (4, 5.5, 8), (5, 8, 10.8), (6, 10.8, 13.9),
(7, 13.9, 17.2), (8, 17.2, 20.8), (9, 20.8, 24.5), (10, 24.5, 28.5), (11, 28.5, 33), (12, 33, 200)]

for item in beaufort:
train.loc[(train[‘wind_speed’]>=item[1

元記事を表示

Djangoで掲示板アプリを1から作るの。(その2)

>その1
https://qiita.com/TuruMaru/items/4df41577fb9f722c7864

#データベースの作成
データベースを作っていくんですが、そのためにはまず`models.py`にテーブルに内容を書き込んでいく必要があります。

“`python:posts/models.py

from django.db import models
#timezoneを使うためにインポート
from django.utils import timezone

# Create your models here.

#models.Modelを書くのはお決まり
class Posts(models.Model):

#Metaとかobjectとかはおまじない
class Meta(object):
#作成されるテーブル名を指定
db_table = ‘posts’

#カラム名=データの形式(管理画面に表示される名前,その他の制約)
text = models.CharField(verbose_n

元記事を表示

Python+Django+AWSでスクレイピングアプリを作って転職

ITベンチャーの経営企画室在職のmogkenです。
ここ最近転職を考えるようになり、その際のアピールになればとプログラミングの勉強をしています。
口で勉強していると言うだけでは大したアピールにならないので、簡単なWebアプリをPythonとDjangoで作ってAWS上に構築&Githubにソースを公開しました。

今回は自分の中での知識の定着のためのアウトプットを兼ねて自分で書いたプログラム(Python)の解説を行いたいと思います。作った時期としてはPythonを勉強して3ヶ月目で、一からこうしたものを作るのは初めてです。もし、コードの改善点などアドバイス頂ける方がいましたらコメントして頂けると嬉しいです。

## 今回の完成物
企業口コミサイト2つ+上場企業情報をスクレイピングしてきて表示、という感じのWebアプリを転職の時の企業比較の一助になればと願いを込めて作成。
最終的にあんまり使いませんでした…orz
![img80.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521142/22b91

元記事を表示

pipやJupyter Notebook使用する際のProxy設定

#はじめに
社内ネットワーク等Proxyサーバ経由する環境で以下に困っている方。
①pipでproxy経由する設定方法がわからない
②Jupyter Notebookでproxy経由する設定方法がわからない
③プロキシのURL設定値が分からない。(←個人的にココにはまりました)

#必須情報
プロキシの以下情報を把握していること。
・プロキシユーザ
・プロキシパスワード
・プロキシサーバホスト
・プロキシサーバポート

#①pipでproxy経由する設定方法
Anacondaプロンプトを起動し、以下を実行

“`py
# プロキシURL設定
set HTTPS_PROXY=http://{プロキシユーザ}:{プロキシパスワード}@{プロキシサーバホスト}:{プロキシサーバポート}
# インストールライブラリ
set INSTALL_LIB_NAME=opencv-python

# pipコマンド
pip install –user %INSTALL_LIB_NAME% –proxy %HTTPS_PROXY%
“`
#②Jupyter Notebookでproxy経由する設定

元記事を表示

【Ubuntu 18.04】pyenv+pipenvでPython環境構築

# はじめに
pyenvとpipenvを使った仮想環境管理環境(?)を作る.
Python自体のバージョン管理をpyenvで行い, プロジェクト毎の仮想環境の構築やパッケージ管理をpipenvで行うようにする.

# 環境
– Ubuntu 18.04
– `apt install`が使える

# インストール
“`install.sh
#!/bin/bash

# Install dependencies
echo “ユーザのパスワード” | sudo apt update && sudo apt install -y –no-install-recommends \
build-essential \
libffi-dev \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
git

# Download pyenv
git clone https:/

元記事を表示

[ゼロから作るDeep Learning]sigmoidレイヤ・Reluレイヤの実装をしてみた

#はじめに
この記事は**ゼロから作るディープラーニング 6章誤差逆伝播法**を自分なりに理解して分かりやすくアウトプットしたものです。
文系の自分でも理解することが出来たので、気持ちを楽にして読んでいただけたら幸いです。
また、本書を学習する際に参考にしていただけたらもっと嬉しいです。

#sigmoidレイヤの実装

“`python
class Sigmoid: # シグモイド関数のレイヤ実装
def __init__(self):
self.out = None # シグモイド関数の逆伝播処理では順伝播処理の出力信号が必要になる

def forward(self, x):
out = 1 / (1 + np.log(-x))
self.out = out # 順伝播の出力保存

return out

def backward(self, dout):
dx = dout * self.out * (1 – self.out) #

元記事を表示

Python Openpyxlを使用したエクセルファイル列追加、行削除処理

# 概要

業務でちょっとエクセルファイルを加工する機会があったので、その時の処理のうち
エクセルファイルに列を追加したり、特定の条件の行を削除する処理をまとめてみました。
テンプレートや元になるデータにをちょっと加工する必要がある時に使えるかもしれません。

## 必要なもの

* python 3.7.2
* pandas
* numpy
* openpyxl

今回はexeはないです。

## 公開場所

[github](https://github.com/snowpff14/etcresource)で公開しています。

## 使い方

* inputディレクトリの `基準データ.xlsx` に対し各種操作を行います。
* inputディレクトリの `定義ファイル.xlsx` をもとに `基準データ.xlsx` の内容を修正します。

* 各項目配下のようになっています

|項番|シート名|カラム名|説明|
|—|:——-|:———|:———|
|1|追加列|項目名|基準データのカラム名に対応設定した値を
カラム名として追加する|

元記事を表示

最小限の持ち物で勉強できるのか?iPadで開発 《第3弾》~救世主現る~

# おさらい
## 目的
– 机の上には最小限のものだけで勉強する!!
– iPad Pro でどこまで開発の勉強ができるか?

## こんな人向け
– iPad ひとつでなんでもやりたい人
– 持ち歩くものを減らしたい人
– PCの買い替えはもう嫌な人
– 新しい勉強の仕方を開拓したい人

# 環境
– iPad Pro 2018 11inch
– Apple 純正 Smart Keyboard
– モバイルルータ
– さくらのVPS (CentOS7)

# 更新が遅れていた理由
簡単です。全部うまくいかなかったからです(つω-`)
でもご安心ください。iPad に救世主が現れました。

# 救世主とは
iPad OS です!!
さらにいうと、、、
**Safari が PC版の表示** となったことです。

# 何がそんなにいいの
何がそんなにいいのと疑問かと思いますが、
今までですと、web ブラウザ経由で使う
**Cloud9** や **Jupyter Notebook** での操作がうまくいかなかったのですがこれが改善されます!
(Smart Keyboard のカーソル

元記事を表示

SikuliXのclick関数を使いやすくする

# SikuliXのclick関数を使いやすくした

## click関数の問題点
click関数とsleep関数を並べていくとソースコードが長くなる
https://qiita.com/JINPLAYSGUITAR/items/0fdadac1ebb7e9289f2d

## 対応
自分で関数を用意する

### 機能概要
– 指定した画像をクリックすると指定した時間待つ
– 引数は画像と数値(秒数)とする
– 最速で画像の有無を判断する
– 画像が見つからない場合はループする
– 5回ループしたらエラーを返して終了する

### ソースコード
“`python:pricone.py
#共通関数
def waitClick(cap, time):
index = 0
while 1:
if exists(cap):
waitClick(cap)
sleep(time)
break
index = index + 1
if index == 5:

元記事を表示

東京大学大学院情報理工学系研究科 創造情報学専攻 2014年度 プログラミング試験

2014年度の院試の解答例です
[問題リンク](https://www.i.u-tokyo.ac.jp/common/file/edu/course/ci/2013-8-program.pdf)

※記載の内容は筆者が個人的に解いたものであり、正答を保証するものではなく、また東京大学及び本試験内容の提供に関わる組織とは無関係です。

### 出題テーマ
– 再帰
– 多角形の点の内包

### (1)
“`python
from numpy import sqrt

# (1
def R0_num(d):
return (int(10.0 / d) + 1)**2
“`
### (2)
“`python
def checkInside(x, y):
return abs(x – 5.0)**2 + abs(y – 5.0)**2 <= 25.0 def R1_num(d): ret = 0 col = row = int(10.0 / d) + 1 for i in range(0, col): for j in ran

元記事を表示

OTHERカテゴリの最新記事