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

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

Pythonで量子コンピュータを動かしたい

#はじめに
[Googleが量子超越性を実証した](https://mainichi.jp/articles/20191023/k00/00m/020/298000c)とのNewsが出て最近量子コンピュータが何かと話題だったので軽く調べていたのですが、誰でもお試しで量子コンピュータ(後述しますが、量子アニーリング方式の方でGoogleか開発を進めている方式とは異なる)を**誰でもお試しで動かせる方法**があったのでこちらにまとめました。
筆者は本領域の専門家ではないので、説明に誤りがある箇所があるかもしれません。その点はご了承ください。

##参考
量子コンピュータの理解と、実際に量子コンピュータを動かすに当たって下記を参考にさせていただきました。

– [量子コンピュータが変える世界](https://www.amazon.co.jp/dp/4274223728/ref=cm_sw_r_tw_dp_U_x_.hGXDbP05GB67) 寺部 雅能 (著), 大関 真之 (著) 出版社; オーム社
– [D-wave Leap](https://cloud.dwavesys.com

元記事を表示

tensorflow2.0 + VScodeでintellisenseが働かない問題

##概要
tensorflow2.0 + VScodeでコード補完が機能せず、その解決に手こずったという話。
[ここ](https://github.com/tensorflow/tensorflow/issues/32982)で報告されており、一応の解決法もあったので試したら上手くいきました。

開発環境
windows10
VScode==1.40.0
tensorflow==2.0.0

##詳細
1. tensorflowのインストールディレクトリ(ほとんどの場合site-packages/)にtensorflowとtensorflow_coreがあるのでtensorflowを適当にrenameし、(‘tensorflow → tensorflow_back’など)tensorflow_coreをtensorflowにrenameする。
2. tensorflow/\_\_init\_\_.py(元はtensorflow_core/\_\_init\_\_.py)に以下を追記。

“`
from .python.keras.api._v2 import keras
from

元記事を表示

MatrixLEDパネルをROSから制御する

# はじめに

秋葉原の[Shigezone](http://shigezone.com/)さんからMatrix LED(64×64)を購入しましたが、ROSで動作させてみようと思い立ちました。この記事では、「ImageトピックをSubscribeしMatrix LEDに画像を表示するROSノード」を作ります。

# 環境準備
## Raspberry Piの準備

今回はROSを取り扱うため、UbuntuをインストールしたRaspberry Pi3を利用します。
[こちら](https://wiki.ubuntu.com/ARM/RaspberryPi)のイメージをSDカードにフラッシュし、ROSをインストールします。arm64のUbuntu18.04.3をインストールしました。ROSは、ros-melodic-desktopを[こちらのサイト](https://camp.isaax.io/ja/tips-ja/raspberrypi3-ros-melodic-morenia)を参考にインストールしました。

## Matrix LEDパネル接続ボードの準備

MatrixLEDの

元記事を表示

オームの法則 with Python

#はじめに
Pythonを勉強していくうちに、複素数の計算が簡単にできそうということが分かったので、試しに電気工学で使われるオームの法則をPythonで本当に簡単に実装できるのかやってみました。

#オームの法則(直流)
電気工学では最も重要な法則のうちの一つで、一番初めに習う公式です。

**V = IR**
※V:電圧、I:電流、R:抵抗
上記、オームの法則をPythonで記述します。
V,I,Rのうち、空で入力したパラメータに関して計算するように組みます。

“`python:Ohm’sLawDC.py

# V = IR for DC circuit
print(‘Empty a parameter to calculate’)

strV = input(‘Input V : ‘)
strI = input(‘Input I : ‘)
strR = input(‘Input R : ‘)

if strV:
V = float(strV)
if strI:
I = float(strI)
if strR:
R = float(strR)

if no

元記事を表示

pythonで画像の縁取りする その1

## やりたい事ときっかけ
* 機械学習のデータセットづくりに輪郭を取る機会が多いけれどそれをなるべく自動化したい。
* openCV, numpy, matplotlib の学習
* ミリオタ成分強めの主が魚雷の誘導法(ウェーキホーミング)を知ったので、それを使ってみたかった。

まぁ、そんなこんなで色々やってみたことを備忘録を兼ねてまとめてみます。

## 環境

* ubuntu 18.04 LTS
* Anaconda 1.7.2
* python 3.7.3
* openCV 3.4.2
* numpy 1.16.2
* matplotlib 3.03
* Jupyter Notebook

## 前提となる知識
* pythonや各ライブラリの操作方法
* 極座標の数学

***

## テスト用の画像
![test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245455/6e483ec7-a0e1-3132-d8ab-9b26cc6902ea.png)

とりあえず画像処理を噛ま

元記事を表示

Djangoサクサクチュートリアル(Macで環境構築編)

はじめに

![F67A61D9-134B-471B-867B-BAF163845843.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269434/c06535ab-d16f-3362-3e4c-7f0a2aa903b1.jpeg)

こんにちは。杉本です。

「PythonでWEBサイトを作ってみたいなぁ。」「Djangoに関してのネットや参考書を読んだけど訳わからん。」というそこのあなたの為にこの記事を書きました。

初心者・初学者向けに書いているつもりなので深くは解説致しません。ご了承下さい。

あと、以下のことを前提としています。

  • Python3以上がインストールされている。
  • 少しばかりのLinuxコマンドを知っている。
  • VSCodeやAtomのようなテキストエディタ入ってます。
  • とりあえずDjangoを動かしてみたいなぁと感じている。
元記事を表示

WordPressから機械学習モデルの予測APIを呼び出してみた

# はじめに

先日、[機械学習モデルの予測値を返すAPIをDockerで作ってみた](https://qiita.com/dyamaguc/items/8d371a979cc70de80c7f)という記事を書きましたが、せっかくAPIで予測値を取得できるようになったのでWebページから予測を行いたいと思い、Dockerで構築してみました。今回構築するイメージは下図の通りです。

![D7DEB7E3-D41C-4632-9159-1681A1831A28.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/329888/6fe3b93c-baa1-2e6a-2472-9720b719c3bb.jpeg)

Docker上に3つのコンテナを立てて、ローカルのブラウザからWordPressにアクセスして、予測結果をWordPressで確認するところまで行いたいと思います。

# 環境
使用する環境は次の通りです。

“`
$sw_vers
ProductName: Mac OS X
ProductVersi

元記事を表示

PythonのRequestsのステータスコード

RequestsでHTTPリクエストを送ったあと、そのレスポンスのステータスコード確認することはよくある。

“`
import requests

response = requests.get(…)

assert response.status_code == 200
“`

などである。
しかし、このときRequestsの定数を用いて、

“`
assert response.status_code == requests.codes.ok
“`

などと書くことができる。
こうすることで、200というマジックナンバー使わずに済む。

元記事を表示

ScrapyをPyinstallerでexe化する

#概要
Pyinstallerでexe化まではできたが、exeファイルを起動するとクラッシュした。
完全に動作させる方法が分かったのでメモする。

#環境
OS:Windows 10
言語:Python3.7
scrapyバージョン:1.7.3

#前提
scrapyのspiderを作成済みで、さらにscrapyファイルを動かすスクリプトファイルがあること。

下記のような構成
demo_scrapy/
├── scrapy.cfg
├── lauch_demo.py ←これがscrapyファイルを動かすスクリプトファイル
└── demo_scrapy
    ├── __init__.py
    ├── __pycache__
    ├── items.py
    ├── middlewares.py
    ├── pipelines.py
    ├── settings.py
    └── spiders
        ├── __init__.py
        ├── demo_spider.py
        └── __pycache__

lauch_

元記事を表示

SikuliXのエラー対応

#SikuliXのエラー対応
SikuliXを使って1ヶ月、デバック時に躓いたエラーの対応をしたことを記録として残す

## SikuliXを実行しても画面の操作をしない
SikuliXを管理者として立ち上げていない可能性が高いです
管理者としてSikuliXを起動しましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265588/bddb736c-d2f5-eba5-22f0-7fe36526140b.png)

## ループ処理ではまったとき
“altキーとshiftキーとcキー”で止まる

参考
Sikuliの永久ループを止める方法
https://qiita.com/imtnd/items/fb2abaeed2d738599815

元記事を表示

Pythonの便利メソッドなど

#はじめに
Pythonは広く普及しており、開発者は多い。
一番の特徴はシンプルさだと思います。
例えば、hello worldを出力するのはただ一行でできるのです。ほかの言語ではなかなかできません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/346425/2966d15e-2d7e-5ded-c621-d5fe3bc65cfe.png)

出典:https://www.benfrederickson.com/ranking-programming-languages-by-github-users/

#hello worldを出力
“`python
print(“hello world!”)
“`
#計算の便利さ
“`python
print(2 * 3) //掛け算
print(2 ** 3) //べき乗

print(22 / 7) //小数あり
print(22 // 7) //整数
“`
>6
8
3.142857142857143
3

#変数値交換
Go言

元記事を表示

ランダムなページサイズのPDFファイルを作成する

仕事で各ページのサイズが異なる(1ページ目がA4で、2ページ目がB5 など)PDFファイルが必要になりました。

各ページごとにサイズが異なるPDFファイルを作成できるようなツールはパッと見た感じ手近にはなかったので、Pythonで自作しました。

# 準備するもの

なお、使用した環境はWindows 10 Home 1903Verです。

* Python(3.7.5)
* PyPDF2
* ReportLab
* tqdm(使わなくてもいいです)

PyPDF2は空のPDFページを作ることができます。ただし、作成したページに**文章や画像など任意のオブジェクトを書き込むことはできません**。

ReportLabは直接プログラムコードから文字や図形などを書き込んだPDFを作ることができます。ただし、**(自分の見た限り)各ページのページサイズが異なるPDFを作ることはできません**。

なので、大まかには

1. ReportLabで1ページだけのPDFファイルを作成する
2. PyPDF2.PdfFileReaderで1を読み込む
3. PyPDF2.PdfFileWriter

元記事を表示

python jupyter notebook データ前処理選手権(対象サイト:ビックカメラ)

# やること
こんな感じのことをやる。
今回は「3, データ前処理」をやっていく。
【データ分析基礎】
1, データ収集(スクレイピング)
2, データの保存
3, データ前処理
4, データの可視化および考察
5, データに対しての結論および施策

ちなみに前回はこちら「1, データ収集(スクレイピング)」。
[前回記事](https://qiita.com/LightSign/items/b5c3abf530f82797c7eb0)
[動画で見たい人用リンク](https://www.youtube.com/watch?v=PNX42aixBkY&list=PLzPCqF-heFHzsphoemA9v6_jYyRldM1aH)

上記スクレイピングで集めたデータを用いて、前処理を行っていく。
読んでない方は流れが把握しづらいと思うので、ざっくり前回の記事を読んでいただけるとよいかと。

# 作成背景
「python データ前処理」と検索しても、いっつも同じタイタニックやらのscikit-learnデータばかりで、
クソつまらんかったから、誰もやってないデータで、誰もやってないデータ

元記事を表示

Pythonにおける変数

# はじめに
ここでは、Python初心者向けに、「変数」について解説します。
Python3系の使用を前提とします。

# 変数の定義

変数を定義する際には「変数名 = 値」という書き方をします。 このとき、=(イコール)は左辺と右辺が「等しい」という意味ではなく、左辺と右辺を「等しくする」つまり左辺に右辺を代入するといった意味になります。 ‘=’の前後はスペースがあってもなくても良いですが、見やすくするため半角スペースを入れるのが慣習になっています。

“`python:variable_1.py
var_str = ‘Hello, World!’
var_int = 123
var_bool = True
“`

変数名には、半角英数字、半角記号が使えます。 変数名が2単語以上になる場合はアンダースコア(’_’)でつなぐのが一般的です。 どんな値が格納されているのか、誰が見てもすぐに分かるような変数名をつけるようにすると良いでしょう。
ただし、変数名を予約語(既にPython内部で定義されている単語)にしたり、先頭を数字にしたりしてはいけません。

“`python:va

元記事を表示

Pythonのfromとかimportとか

importについてあまりにも適当に済ませてきたので、
改めて、、

ことの発端は、datetime()という関数を使いたい!という所から始まりました。

(今思うとこの関数が曲者だった・・・)

“`python
import datetime
“`

**しかーし!!**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/518137/7d9f6016-cfb9-2798-177b-f1a303cc5c18.png)

なんでや!!!!

と思い調べてみました。

“`python
from datetime import datetime

myDate = datetime(2017,1,1)
“`
これならいけます!!

色んなパターンがあるみたいですが、以下を覚えておけば良さそう

**①import pandas as pd パターン**

これはPandasモジュールを読み込み、pdという名前で使えるようにする。
Pandasモジュールの中にたくさんの関数があるので

元記事を表示

多項式の係数のみ剰余を取る方法(Sympy)

# コード
“`python
import sympy as sym

def mod_coeffs(f, p):
f_vars = list(f.free_symbols)
f_coeffs = [f.coeff(var) for var in f_vars]
f_coeffs_mod = sym.Mod(sym.Matrix(f_coeffs), p)

ret = f_coeffs_mod.transpose() * sym.Matrix(f_vars)

return ret[0, 0]
“`

## 例

“`python
f = 123*x + 456*y

print(mod_coeffs(f, 13)) # 6*x + y
“`

## 条件
– 次数は1次のみ(定数や2次以上の多項式は正しい結果がでません)

# 背景
多項式の剰余をPythonの代数演算でよく用いられている`Sympy`を用いて計算すると以下のようになります。

## 例1
#### 数式

“`math
\begin{align}
f(x, y)

元記事を表示

micro:bit Pythonでプログラミング

# 概要
micro:bitをPythonでプログラミングする方法についてのメモ

# micro:bitにプログラミングする方法
micro:bitへのプログラミング方法は公式のサイトで2種類の方法が提供されています。

1つはMakeCodeエディターと呼ばれるドラッグアンドドロップできるブロックを使用したGUIベースのプログラミング方法で、子供がプログラミングをはじめる場合にはこちらがオススメだと思います。ただ、日本語で使う場合は漢字に振り仮名などはついていないので、小さいお子様の場合は一掃のこと英語でやってしまった方が将来的には良いかもしれません。

https://makecode.microbit.org/

もう1つは`Python Editor for micro:bit`を使ってPythonでプログラミングする方法。

https://python.microbit.org/v/2.0

いずれもブラウザ上で操作するツールとなっていますが、ファイルをアップロードすることもできるので、Pythonの場合はローカルで編集して、ファイルをアップロードしたものを使うという方法

元記事を表示

障害物(黒色)自動回避キャタピラ作ってみた。

#作ったもの
ラズパイ3b+とPiカメラを使って、撮った写真をSVMでリアルタイム「前進」「右折」「左折」「後退」に分類して進むキャタピラ。
![IMG_1029.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/333380/49369963-678c-d9d0-7379-b53640b61a98.jpeg)

百聞は一見に如かずということでこちらをご覧ください。
[YouTube: ラズパイを使った障害物回避キャタピラ試走](https://youtu.be/JuEdbxOq1cA)

#参考図書
[カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス) ](https://www.amazon.co.jp/%E3%82%AB%E3%83%A9%E3%83%BC%E5%9B%B3%E8%A7%A3-Raspberry-Pi%E3%81%A7%E5%AD%A6%E3%81%B6%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C-%E

元記事を表示

指定したURLのリンクが有効かどうかをチェックするpythonスクリプトを作成

# 目的
指定したURLのリンク先が有効かどうかをチェックするpythonスクリプトを作成したので備忘録です

# コード

###確認対象がURL1つの場合

以下を参考にさせて頂きました。(一部python3.0用に修正)
> [PythonでURLが存在しているか確認](https://qiita.com/fantm21/items/6996a4f681c53a1338e8)

“`python:sample.py
#-*- using:utf-8 -*-
import urllib.request, urllib.error

def checkURL(url):
try:
f = urllib.request.urlopen(url)
print (“OK:” + url )
f.close()
except:
print (“NotFound:” + url)

if __name__ == ‘__main__’:
url = “http://qiita.com/”
chec

元記事を表示

【G検定】JDLA Deep Learning for GENERAL 2019 #3【受験体験記・試験対策】

#はじめに
+ **JDLA Deep Learning for GENERAL 2019 #3** の受験体験記です。
+ 2019年11月9日に行われました。
+ いわゆる**G検定**です。
+ 問題の具体的な内容は書けないので、おおざっぱな話です。今後の**受験対策**にもどうぞ。
+ 学習プロセスでまとめたキーワード等は[こちら(【資格試験対策】ディープラーニングG検定【キーワード・ポイントまとめ】)](https://qiita.com/ksj555/items/58f651d2849bda86984a)です。

#受験直後の所感
合否はまだ出ていませんので、受験直後の所感です。

+ 実績として、226問を完答した時点で30分弱の残り時間。(わからない問題は積極的に飛ばした)
+ 欲張って「この問題をチェックする」(後でチェックするためのチェックボックス)をつけると**確実に時間が足りない**ため、回答しながら**チェックする問題を精査**しながら進めた方がよい。
+ 精査のポイントは、**回答の選択肢がキーワード系**であること(文章系でないこと)。理由は、キーワード系

元記事を表示

OTHERカテゴリの最新記事