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

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

Python/Django アプリでよく使うコード【都道府県】

# この記事の背景

例えば店舗情報を登録するようなアプリの場合、その店舗の都道府県を設定することがあると思います。

この機能をいつでも使えるように、備忘録的にこの記事に残しました。

# コード

“`
(models.py)

class Pref(models.Model):
code = models.CharField(max_length=2)
name = models.CharField(max_length=4)

def __str__(self):
return str(self.name)
“`

“`
(views.py)

def upload(request):
if ‘csv’ in request.FILES:
form_data = TextIOWrapper(request.FILES[‘csv’].file, encoding=’shift_jis’)
csv_file = csv.reader(form_data)
for line

元記事を表示

Raspberry PiのMathematicaでセンサを扱う

 ラズベリーパイ(以下、ラズパイ)はMathematicaが無償で利用できます。ラズパイ4になってCPUの処理能力が上がったので、3Dの描画も延々と待たなくて済むようになりました。ラズパイは、GPIOやI2C、SPIなどのハードをアクセスできるのが特徴のLinuxマシンです。現在は、Raspbian Buster が2019年6月から利用できるようになりました。
#ターミナルからMathematicaを立ち上げる
 sudo Mathematicaと実行すれば、root権限でMathematicaが立ち上がります。通常piユーザは、GPIO、I2C、SPIをroot権限がなくてもアクセスできます。ここでは、MathematicaでMEMSセンサのBME280から温度を読み出し、グラフ化します。
#BME280のデバイス・ドライバの登録
 ラズパイには、コンパイル済みのセンサのデバイス・ドライバがたくさん用意されています。詳細は、/boot/overlays/READMEに書かれています。といっても簡単な説明だけです。ドライバの多くはiioです。
 最初は、メイン・メニューのPrefer

元記事を表示

機械学習を無料で学べるサイトまとめ

# 手を動かす系
## Chainer チュートリアル
https://tutorials.chainer.org/ja/

何から学ぶべきか迷わない人はとりあえずこれやっとけというサイト
日本語表記だし分かりやすいと好評

## メディカルAI専門コース オンライン講義資料
https://japan-medical-ai.github.io/medical-ai-course-materials/#

同じくChainerが公開している。
実際のデータが使えるのが魅力。少し応用向け。

## 東大松尾研究室監修のエンジニア向け教育プログラム「DL4US」

DL4US コンテンツ公開ページ

画像分類から自然言語処理、強化学習、GANまで幅広く学べる。
ライブラリはKeras。

# 動画で学ぶ系
## Coursera

無料で始めるAIプログラミングオンライン講座11選


大学のコースを無償でオンライン提供されている。

## Amazon Machine Learning University
https://aw

元記事を表示

ubuntuインストールからkinectをdockerとrosで動かすまで(概要)

#まずはじめに,,,
関東の大学院の修士1年です。
自分は今までwindows+シミュレーションで研究を進めていました。

そろそろ就活とかインターンとかするかと思い,研究室の知り合いのつてで,ロボットのスタートアップにインターンしに行きました。

ある程度,プログラム書いてるしなんとか働けるだろうと思っていたのですが,現実は甘くなかったです。

聞いたことあるけどよくわからない単語が飛び交っているし,指示されたことの意味が分からないしと散々でした。
今まで勉強したことは何だったのかと感じました。

でも,それらを理解して実機を動かしている人たちがかっこよく見えたし,センサとかロボットが実際に動いてるのは近未来っぽくて楽しそうなので,勉強することを決意しました。

## 目標
**自分のPCにubuntuをインストールして,rosとdockerを用いてkinectを動かすこと**を目標にします。

この記事では,大まかな流れを説明していきます。

大まかな流れがわかれば,調べたり,エラーと戦うことができますが,そもそも流れを知らないと何をすればよいのかわからなくなりますし,自分はそう

元記事を表示

pythonでweb開発

# PythonでWEB開発
友達のために最初の取っ掛かりのためのカリキュラムを書きます。
これを見ながら勉強の方針を立て、それをもとに自分で検索して、いろいろな勉強サイトを使って勉強していく感じで。
全部やろうとしなくていいです。
随時更新予定。
環境はwindowsを想定してます。

## はじめに
プログラミングは挫折しやすいです。
すべてを理解しようとはせず、ある程度できたらアウトプットしてまた次の新しいものを学び、飽きたり挫折したりしないようにがんばりましょう。
ググってもわからないことがあったら、なるべく早めにできる人に聞くといいと思います。
時間を無駄にしている可能性が高いです。

## 開発環境構築
ますは自分のパソコンにプログラミングをする環境を作ります。

#### [VSCode](https://code.visualstudio.com)をインストール
これはエディタです。これを使ってプログラムを書いていきます。
便利な拡張機能を紹介
* Bracket Pair Colorizer
* ESLint
* HTML CSS Support
* HTML Sn

元記事を表示

Kaggle【HousePrices】に挑戦

# 概要

敷地面積、築年数などの特徴量から家の価格を予測するコンペに挑んでみた。

## ライブラリ定義

“`ruby:qiita.rb
import pandas as pd
“`

# 学習データ、テストデータの読み込み
“`ruby:qiita.rb
train = pd.read_csv(‘train.csv’)
test = pd.read_csv(‘test.csv’)
“`

# 学習データ、テストデータの分割
目的変数「SalePrice」とそれ以外の従属変数に分離する。

“`ruby:qiita.rb
train_x = train.drop([‘Id’, ‘SalePrice’], axis=1)
train_y = train[‘SalePrice’]
test_x = test.drop([‘Id’], axis=1)
“`

# カテゴリカル変数を数値に置き換える

“`ruby:qiita.rb
for column in train_x.columns:
labels, uniques = pd.factorize(train

元記事を表示

お手軽に日向坂46の顔分類!

# はじめに

[PyTorchを使って日向坂46の顔分類をしよう!](https://qiita.com/coper/items/b1fd51062642d624e26f) という記事などで、シンプルなCNNを用いて日向坂メンバーの顔分類を行っています。画像分類タスクではなく顔認識タスクとして捉えて、もっと手軽に高い精度でメンバーの顔を認識してみましょう。

![iine._label.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529001/9476d605-4d3c-dcaf-8e3b-f4ee22f27e03.jpeg)

## 使用するモデル
顔認識は非常に応用範囲の広い技術で、空港でのゲートに用いられたり、監視カメラシステムに導入したり様々な場面で活用されます。顔認証には非常に高い精度が要求され、非常にラベルの数が多いという特徴があります。
ラベルの数が可変で大量に存在している為、softmax等を用いたクラスタリングではなく、文書分類などと同様に顔画像の特徴量ベクトルに対する埋め込みを学

元記事を表示

Python初心者が「Python文法詳解」を読んだメモ #3

# バックナンバー
– [Python初心者が「Python文法詳解」を読んだメモ #1](https://qiita.com/usayomo/items/7024c619c5f72462cb10)
– [Python初心者が「Python文法詳解」を読んだメモ #2](https://qiita.com/usayomo/items/9c1537678bdde813a273)

今日は短めですが、少しずつでもやっていこうと思います。
写経メインでサクッと。

“`py:累積代入文
>>> spam = 10
>>> spam += 100
>>> spam
110
>>> spam -= 60
>>> spam
50
>>> spam *= 10
>>> spam
500
>>> spam /= 2
>>> spam
250.0
>>> spam //= 3
>>> spam
83.0
>>> spam %= 10
>>> spam
3.0
>>> spam **=4
>>> spam
81.0

# ビット演算
>>> spam = 1024
>>> spam >>= 2
>>>

元記事を表示

pythonメモ

pythonに学習したことを、
メモしていきます。

“`python:変数
x = 100
y = 200
print(x+y)
“`

“`python:関数
def fnc(x):
print(x)
fnc(100)
“`

元記事を表示

OpenCV入門(python)-(2)

以下の記事の続きです(インプットの記事ばかりになってきたので何か作りたいですね・・・)

https://qiita.com/tom_S/items/b85aee14f34dcc856e54

## ヒストグラム

画像の中に赤が多いのか、青が多いのかなどの画素値の分布を表現できる。

以下にRGB値のヒストグラムをグラフにして表示するプログラムを示す。

~~~
import cv2
import matplotlib.pyplot as plt # 画像プロット用のライブラリ
%matplotlib inline # 画像プロット用のライブラリ

img = cv2.imread(“ここに画像ファイルのパス”)

color_list = [“blue”, “green”,”red”]
for i,j in enumerate(color_list):
hist = cv2.calcHist([img],[i],None,[256],[0,256]) # blue, green,redの順に計算
plt.plot(hist,color= j)

~~~

また、

元記事を表示

【Python中級者への道】動的に実行メソッドを変数名で指定する

# まとめへのリンク

https://qiita.com/ganariya/items/fb3f38c2f4a35d1ee2e8

# はじめに

Pythonの勉強をするために、[acopy](https://github.com/rhgrant10/acopy)という群知能ライブラリを写経していました。

acopyでは、多くのPythonの面白い文法・イディオムが使われており、その中でも便利だなぁというのをまとめています。

今回は、動的に実行メソッドを変数名で指定する ことに着目します。

# getattr

Pythonには`getattr`という組み込み関数が存在します。

`getattr(インスタンス, インスタンスのメソッド名)`で、インスタンスからそのメソッドを取り出すことができます。

とりあえず、簡単な例で試してみます。

“`python

class A:

def __init__(self, msg):
self.msg = msg

def hello(self):
print(“hello “

元記事を表示

【Python】boto3でS3ファイル操作まとめ

## ディレクトリ構成

s3で以下のようにファイルが用意されている前提。

“`
line/
└── diagonal/
└── hoge.csv
“`

## 同バケット内でファイルをフォルダ間でコピー

`line/diagonal/hoge.csv`を新たに`line`フォルダ下に`straight`フォルダを作成しそこにコピー

“`python
import os
import boto3

BUCKET_NAME = ‘your_bucket’ # バケット名
COPY_FROM = ‘line/diagonal’ # コピー元ディレクトリパス
COPY_TO = ‘line/straight’ # コピー先ディレクトリパス]
FILE_NAME = ‘hoge.csv’ # ファイル名

s3 = boto3.client(‘s3’)

copy_from_path = os.path.join(COPY_FROM, FILE_NAME)
copy_to_path = os.path.join(COPY_TO, FILE_NAME)

s3.co

元記事を表示

PyTorchのDataSetとDataLoaderを理解する(2)

# 前回まで
[前回](https://qiita.com/typecprint/items/2d616b502dd063ba4e27)まででPyTorchのDataLoaderとDataSetの動きを理解してきました。
今回は、それを応用して、自分でdatasetを自作してみましょう。
多分に[こちら](https://github.com/adambielski/siamese-triplet)のソースを参考にさせていただきました。

# datasetを自作してみよう
前回までの内容でちょっと凝ったことができる気がしてきました。
datasetを自作することで、うまいことデータを返せるようにしてみましょう。

# MNISTのデータをペアで返すサンプルを作る
最近流行りのMetric Learningなどでは、画像をペアで作る必要があります。いろいろな方法が提案されていますが、とりあえずちょこっと試すのに良いコードが少ないように感じています。そこで今回は、例題としてdatasetを自作することで手軽にペアを扱えるようにしてみましょう。

## PairMnistDatasetクラ

元記事を表示

PyTorchのDataSetとDataLoaderを理解する(1)

# はじめに
気がつけばあまり理解せずに使っていたPyTorchのDataLoaderとDataSetです。
少し凝ったことがしたくなったら参考にしていただければ幸いです。

後編は[こちら](https://qiita.com/typecprint/items/233eec0c949cc5df29e3)。

# PyTorchのExampleの確認
PyTorchを使っていれば、当然DataLoaderを見たことがあると思います。
誰もが機械学習で使うMNISTのPyTorchのExampleでもこんな記述があります。

“`python
train_loader = torch.utils.data.DataLoader(
datasets.MNIST(‘~/dataset/MNIST’,
train=True,
download=True,
transform=transforms.Compose([
t

元記事を表示

Djangoアプリをherokuにアップロードしたい

お世話になります。

【環境】
Surface Laptop2
Windows 1809
Python 3.7.4 (コマンドラインで実行してるやつ)
Django 2.2.6

【実現したいこと】
Djangoで作ったアプリをherokuを使って公開したい

【状況】
HerokuにDjangoアプリでデプロイがうまくいかなく、ビルドが成功しません。

【行った手順】(参考にしたURLなど)
(1) https://qiita.com/frosty/items/66f5dff8fc723387108c
   https://qiita.com/RyuSA/items/0cbc7d5b0145585861a8
の二つのサイトを参考に、settings.pyを書き変えました
を以下の様に書き変えました
from socket import gethostname # これをすることでホスト名を取得することが可能***A
import django_heroku
import os
import dj_database_url

hostname = gethostname() #

元記事を表示

Proof of Workの確率的ファイナリティを計算しながら安全性について深掘りしてみた

公開されているブロックチェーンはパブリックチェーンと呼ばれています。このタイプのブロックチェーンでは、正しいデータを一意に決定するプロセスとして「Proof of Work」が採用されているものが多いです。そしてこの仕組みには、ファイナリティ(決済完了性)がないという性質があります。これは端的にいえば、資産を誰かに送ってもそれが確かに着金したと認めることができないという性質です。「え、それでお金として使えるの?」という疑問が出てきそうですが、その解決策として「確率的ファイナリティ」という概念が導入されています。今回は、確率的ファイナリティについて実際に計算をしつつ、深く掘り下げていきます。

#ファイナリティ(決済完了性)とは
ファイナリティとは「決済が確定したとみなせること」を指します。普段使っているお金であれば、100円玉をレジの店員に手渡すとその時点で100円玉の所有権が移るため、そこで決済が確定したとみなすことができます。銀行振込の場合でも、口座を管理している銀行がその送金を認めさえすれば、その決済は完了します。

しかし、パブリックチェーンではそのファイナリティが**確率的に

元記事を表示

結局、Embeddingって何者?

# はじめに
深層学習を用いた自然言語処理に触れると、
Embeddingとかいう耳慣れないヤツに遭遇します。

日本語に直訳すると **埋め込み** です。
![time_cupsule_kids_30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131499/3deca575-950e-6789-70d3-31b3f3110de0.png)

~~まるで意味が解らんぞ~~
よくわからないので調べました。

# どんな操作?
自然言語を計算が可能な形に変換することをEmbeddingと呼ぶようです。
多くの場合、**単語や文章等をベクトル表現に変換する操作**のことを指しています。

# なんのため?
大きく分けると二つ理由があります。

## 1. コンピュータが処理できるようにするため

基本的に現在の機械学習アルゴリズムは、文字列型を処理できるように作られていません。
そのため、計算可能な形に変換する必要があります。

## 2. 変換方法次第で精度の向上が見込めるため

また、単に計算可能な

元記事を表示

1行で複数代入する変数の型ヒントの書き方

関数の返り値を複数の変数に代入する時に型ヒントの書き方がわからなかったのでメモ.
こうするらしい.
ちなみに1行で複数行代入する構文の名前が不明なのだが, `unpacking a tuple` とかで出てくるっぽい.

– [Type hints when unpacking a tuple?](https://stackoverflow.com/questions/52082939/type-hints-when-unpacking-a-tuple)

“`python
from typing import Tuple

def foo() -> Tuple[int, float]:
return 1, 1.0

a: int
b: float
a, b = foo()

“`

元記事を表示

Freecadの忘備録(自分用)

自分用の忘備録です。

## プリミティブの球を作成してigesでエキスポートする(半径と位置を指定して)

“` Sphere.py
import FreeCAD as APP
import Part
freecad = APP.newDocument(“model”)
comp_1 = Part.Sphere()
comp_1.Radius=10
myPart = freecad.addObject(“Part::Feature”,”comp_1″)
myPart.Shape= comp_1.toShape()
myPart.Placement = App.Placement(App.Vector(100,0,0),App.Rotation(App.Vector(0,0,1),0))
freecad.recompute()
myPart.Shape.MatrixOfInertia
freecad.saveAs(“comp_1.FCStd”)
Part.export([freecad.Objects[0]],”comp_1.iges”)
“`

元記事を表示

JPX投資部門別売買状況のデータ(現物株式/先物)をHeroku Postgresqlのデータベースのテーブルに格納するまわり( あとPostgresqlでストアドプロシージャを使用する方法も合わせて調べてみた)

#1.概要
 [前回の続き](https://qiita.com/Fortinbras/items/0db2073fd784d0230528)で、JPXのHPに公開されている投資部門別株式状況のexcel/csvファイルをpandas(**read_excel()**ないし**read_csv()**)で参照してデータフレームオブジェクトを生成して夕凪氏がツイートしてるように集計するネタをもう少し考察し拡張していこうと思う。

yunagi_tweet.png

 例えばpandasでデータフレームオブジェトを生成したら、それを元にmatplotlibでグラフ描画するのがpyDataの大体の処理の流れだと思うが、matpoltlibでグラフ描画する前に、一旦それを[Herokuのadd-on「Heroku Postg

元記事を表示

OTHERカテゴリの最新記事