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

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

Cloud9とApache Httpdでflaskアプリを動かす

# はじめに
Coud9で使用しているEC2上でflaskアプリを動かして、動作検証したいケースがある。
その際に参照するための手順を残しておく。

# Apache Httpdの設定
Apache HttpdはCloud9上にデフォルトでインストールされている。
そのため、自動起動の設定だけ入れておく。

– 起動設定の現状確認

“`
$ sudo chkconfig –list httpd
“`

– 自動起動設定

“`
$ sudo chkconfig httpd on
“`

– 設定確認

“`
$ sudo chkconfig –list httpd
“`

# 必要なパッケージのインストール
– apache-devとgccのインストール

“`
$ sudo yum -y install httpd24-devel
“`

※ gccはもともとインストール済みだが、Cloud9以外でインストールするなら以下。

“`
$ sudo yum -y install gcc
“`

# mod-wsgiのインストール
– pipのバージョンアッ

元記事を表示

whereメソッドの統一感がない残念なお知らせ

numpyとpandasの`where`の挙動が反するように感じたので、共有します。

条件に応じて値を代入するメソッドに`where`と`mask`があります。
メソッドの詳細は[こちら](https://note.nkmk.me/python-pandas-where-mask/)にございます。
(いつもお世話になっております:pray:)

以下に適当な例を出してみます。

“`py
import numpy as np
import pandas as py

test = np.array([1,2,3])
“`

この`2`を`200`に置換したいとします。

`np.where`でやってみましょう。

“`py
>>> pd.Series(np.where(test == 2, 200, test))
0 1
1 200
2 3
dtype: int64
“`
目的の結果が得られます。

では、`pd.where`では?

“`py
>>> pd.Series(test).where(test == 2, 200)
0 200

元記事を表示

Python初心者が機械学習を用いたWebアプリを公開する 【その1】はじめに

###この記事の目的
[産婦人科医とみー](https://twitter.com/obgyntommy)先生の記事[『【独学可能】Python初心者のための機械学習に向けた学習ロードマップ』](https://obgynai.com/self-study-python-machine-learning/)を参考に自分でロードマップを作成してみました.

この記事は、メモ記事群の第一回目です.
読みやすさを第一に, 記事は細かく分割しています!
(執筆終了後に、全てをまとめた記事を公開します)

###自己紹介
TsubaMukkuと申します.
九州大学卒業後, 国立大学医学部医学科へ再入学しました.
医学部卒業・医師国家試験現役合格を目指しながら, 純粋数学とコンピュータサイエンスもかじってます(数学類と情報科学類の授業も履修してます).

手持ちスキル
・[競技プログラミング](https://atcoder.jp/users/TsubaMukku)
・[Github](https://github.com/TsubaMukku)

###想定読者
1. Progate修了レベルの

元記事を表示

【言語処理100本ノック 2020】第6章: 機械学習

## はじめに
自然言語処理の問題集として有名な言語処理100本ノックの[2020年版](https://nlp100.github.io/ja/)が公開されました。
この記事では、以下の第1章から第10章のうち、[第6章: 機械学習](https://nlp100.github.io/ja/ch06.html)を解いてみた結果をまとめています。

– [第1章: 準備運動](https://qiita.com/yamaru/items/6d66445dbd5e7cef8640)
– [第2章: UNIXコマンド](https://qiita.com/yamaru/items/b809e6d66f9efcfb34d7)
– [第3章: 正規表現](https://qiita.com/yamaru/items/255d0c5dcb2d1d4ccc14)
– [第4章: 形態素解析](https://qiita.com/yamaru/items/e06014b146a18e97ca59)
– [第5章: 係り受け解析](https://qiita.com/yamaru/items/48dc

元記事を表示

コードテストで力を付ける④

# チャレンジした問題 C76

結果:21点
時間:60分

再チャレンジ:100
やはり時間に追われると思考能力が低下することが分かった。

# 次回へ
やはりこのような問題で一番気を付けるのが**条件の境界**でした。
条件の境界をクリアすれば成功できました
ヒントとして没コードを記す。

# 没コード

没コード

\“`python
# coding: utf-8
# 自分の得意な言語で
# Let’s チャレンジ!!

x_time,y_time,z_time = input().split()
#print(x_time, y_time, z_time)

day = int(input())
#print(day)

import sys
line = sys.stdin.readlines()

result = [] #ghsfrh

“””
for i in range(day):
start, end = line[i].split()

dayss = []

元記事を表示

Pythonの並列計算サンプルをF#に移植

Python のドキュメントにある並列計算のサンプルを F# に移植してみました。書き方を比較することで、取っ掛かりになると思います。

# GIL

Python でマルチスレッドを試しました。

* [[Python] スレッドで実装する](https://qiita.com/tchnkmr/items/b05f321fa315bbce4f77)

並列計算を試しましたが、ほとんど速度が向上しませんでした。以下の記事に言及があります。

* [PythonのThread(並列処理)は速度改善効果がないらしいので確認する。 – “BOKU”のITな日常](https://arakan-pgm-ai.hatenablog.com/entry/2019/05/02/000000)

Pythonにはプログラム実行の一貫性を保証する仕組みとして「Global Interpreter Lock(GIL)」を採用しています。

どうも、PythonのThreadはシステムコールを行う際の「ブロッキングI/O」を扱うためにサ

元記事を表示

よくあるset HTTP_PROXY=~に苦労した話

# はじめに
私の会社は認証プロキシを経由して外部ネットワークに接続するようになっています。
数か月ぶりにWindows10のマシンでpythonを使うことになり、コマンドプロンプトからpipを実行しようとして認証プロキシ設定にハマってしまったので、自分用メモとして残します。

# 例のコマンド
いろんなサイトに出てる例のコマンドです。

~~~
set HTTP_PROXY=http://:@:
set HTTPS_PROXY=http://:@:
~~~

※以下は自分の環境に置き換えが必要です。<>は不要です。
 \:認証プロキシのユーザー名
 \:認証プロキシのパスワード
 \:認証プロキシサーバのホスト名
 \:認証プロキシサーバのポート番号
サイトによって=の後を””で括っているものもありますが、自分の環境では(結果的に)無くて問題ありませ

元記事を表示

Python×fitbitAPIを使って心拍数をリアルタイム(?)にSpreadSheetsへ保存する!

# はじめに
fitbitを使い始めて1年近くになりますが、時計盤やアプリ開発ばかりでAPI周りをあまり触っていなかったことや、自身の研究のためもあり、今回はアクティビティデータのリアルタイム取得をやってみました。

データベースへ書き込んでも良かったのですが、知識がまだまだ赤ちゃんレベルなのでさくっとシートへ書き込みを選びました。(そろそろ勉強したい)

リアルタイムの後ろに(?)がついている理由は後ほど。。

# 実装ステップ
ざっくり分けて以下の手順で進めていきます。

#### 1. fitbitAPIの利用登録
#### 2. GoogleCloudPlatform(GCP)の利用登録
#### 3. APIを叩いてfitbitデータ取得
#### 4. シートに書き込み
#### 5. (簡単に)可視化

さっそく進めていきます!

※STEP1,2は素晴らしい記事がたくさんあるのでほとんどそちらを参考にさせて頂いています。

# STEP1: fitbitAPI利用登録

初っ端から他力本願ですが、[こちら](http://sakanaaas.hateblo.jp/e

元記事を表示

Django で factory_boy のシード値を固定する

## 結論
`TestCase` を継承したカスタムクラスを作成して `setUp()` にシード値を設定する。
各アプリではカスタムクラスを継承してテストを書く。

## 背景
Djangoで `factory_boy` を使う際に、テストの再現性を担保したかった。

## 手順

### 環境

“`text
factory-boy==2.12.0
“`

### `BaseTestCase` クラスの定義

シード値を固定する `BaseTestCase` クラスを定義する。
自分は `base` アプリケーションを作成して、抽象クラスはそこに書くようにしている。

“`python:./base/tests.py
from django.test import TestCase
import factory.random

class BaseTestCase(TestCase):
def setUp(self):
factory.random.reseed_random(0)
return super().setUp()
“`

元記事を表示

筑波大学の機械学習講座:課題のPythonスクリプト部分を作りながらsklearnを勉強する (9)

前回
[筑波大学の機械学習講座:課題のPythonスクリプト部分を作りながらsklearnを勉強する (8) 確率的最急降下法を自作](https://qiita.com/legacyworld/items/663fcd8189f0bdf38f64)
https://github.com/legacyworld/sklearn-basic

# 課題 5.3 ヒンジ損失と二乗損失
2つの塊を分類するのだが、塊から大きく外れた外れ値がある場合とない場合で問題が分かれている。

## 外れ値無しのヒンジ損失
Youtubeの解説は第6回(1)の54分あたり
外れ値が無い方のヒンジ損失は実はscikit-learnのexampleそのままである。
SVMの部分よりもmatplotlibの使い方の方が難しかった。
元ネタはこれ https://scikit-learn.org/stable/auto_examples/svm/plot_separating_hyperplane.html#sphx-glr-auto-examples-svm-plot-separating-hyperplane

元記事を表示

PEP 612 (Parameter Specification Variables) を読んだよメモ

Microsoft の Python 向け型チェッカーの [pyright](https://github.com/microsoft/pyright) の README を流し読みしていたら、初めて聞く PEP が登場したシリーズ第二弾です。
今回は [PEP 612 (Parameter Specification Variables)](https://www.python.org/dev/peps/pep-0612/) について書きます。

## 概要

* 汎用のデコレータを書こうとすると、型を書くのが非常に難しい
* **指定された関数と同じ引数を持つ関数** を表現する方法がほしい

## アプローチ

* `ParameterSpecification` という引数を表す型を追加すると解決する

引数を表す型として `ParameterSpecification` を追加する。
`ParameterSpecification` は `Callable` と一緒に用いることで callable object のジェネリクスっぽく振る舞うことができる。 `TypeVar`

元記事を表示

Qiskit: 任意の状態を作成する回路が作りたい!!

# はじめに

任意の状態を作成する回路を簡単に作りたい!と思うことはありませんか?
例えば…

“`math:
\frac{|0>+|1>}{\sqrt{2}}
“`

まあ,これは簡単ですね.以下の回路で作成できます.

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558839/0ef466a2-24cb-db70-c9bc-a98114484404.png)

しかし,Hadamard gateを知らなくてもこの状態を作成することができるツールがあるのです!
それが,StateVectorCircuitです.

# StateVectorCircuit

先ほどの状態を作る回路をStateVectorCircuitを用いて作成してみましょう.

まずは,使用するパッケージをimportします.

“`python:
import numpy as np
from qiskit.aqua.circuits import StateVectorCircuit
from qiskit

元記事を表示

djangoのadmin画面で”calendar.day_abbr”の更新に失敗する話

# djangoのadmin画面からモデルの追加・更新削除ができなくなった

画面表示や操作はできるが、更新ボタン押下時、以下の例外が発生する。

“`
“AttributeError: ‘calendar’ object has no attribute ‘day_abbr'”
“`

# アプリケーション名`calendar`が原因

結論を言うと`calendar`という名前のアプリケーションが存在したため。

これが既存のcalendarとバッティングを起こして、失敗していたらしい。

クラス名で失敗ならわかるけど、アプリケーション名で失敗は想定していなかったので、原因判明にちょっと時間がかかってしまった……

元記事を表示

t-SNEを理解して可視化力を高める

#はじめに
今回は次元削減のアルゴリズム**t-SNE**(t-Distributed Stochastic Neighbor Embedding)についてまとめました。t-SNEは高次元データを2次元又は3次元に変換して可視化するための**次元削減アルゴリズム**で、ディープラーニングの父とも呼ばれるヒントン教授が開発しました。(ヒントン教授凄い)今回はこのt-SNEを理解して可視化力を高めていきます。

##参考
t-SNEを理解するに当たって下記を参考にさせていただきました。

– [Visualizing Data using t-SNE (元論文)](https://lvdmaaten.github.io/publications/papers/JMLR_2008.pdf)
– [t-SNE clearly explained](https://towardsdatascience.com/t-sne-clearly-explained-d84c537f53a)
– [StatQuest: t-SNE, Clearly Explained](https://youtu.be

元記事を表示

Pandas Plotのバグ

#1 この記事の説明

Pandasのplotを使い時系列グラフを描写したところ日付の変換が正しく動作しない。
例えば、2020-01-01が0051-01-01と誤って表示されてしまう。

80.JPG

#2 内容
Pandasで生成したデータフレームに関して「データフレーム.plot(・・・・)」のコマンドでグラフを表示し、「mdates.DateFormatter(‘%Y-%m-%d’)」にて「フォーマットをY-M-Dにした場合、日にちが正しく表示されないことが分かった。下記のコードを実行すると横軸日付が正しく表示されない。

“`python:/home/sampletest/sample.py
import datetime
import matplotlib.pyplot as plt
impo

元記事を表示

「14日で作る量子コンピュータ」を読んでみる。3日目

# はじめに
 今回は重ね合わせの原理と、電子波束についてまとめる。

# 3 電子波束の観察
## 重ね合わせの原理
 重ね合わせの原理は、シュレディンガー方程式を満たす複数の解を、足し合わせてできる関数もまたシュレディンガー方程式の解となっていると言う原理です。例えば以下のようなある分布にしたがって、$\psi_k$を重ね合わせた波動関数を用意する。

$$
\psi(x,t)=\int_{-\infty}^{\infty}a(k)\varphi_k(x)e^{-i\omega(k)t}dk=\int_{-\infty}^{\infty}a(k)e^{ikx-i\omega(k)t}dk
$$

 これをシュレディンガー方程式に代入してみる、この時自由空間なのでポテンシャルは0したがって

$$
i\hbar\frac{\partial}{\partial t}\int_{-\infty}^{\infty}a(k) e^{ikx-i\omega(k)t}dk=\frac{\hbar^2}{2m}\frac{\partial^2}{\partial x^2}\int_{-\infty

元記事を表示

PEP 604 (Complementary syntax for Union[]) を読んだよメモ

Microsoft の Python 向け型チェッカーの [pyright](https://github.com/microsoft/pyright) が最新の仕様に対応していると聞いて README を流し読みしていたら、今までウォッチしていなかった [PEP 604 (Complementary syntax for Union[])](https://www.python.org/dev/peps/pep-0604/) というのがリストアップされていたので目を通してみました。
ちなみに次の記事で PEP-612 についても書く予定です。

## 概要

* 毎回 `Union[int, str]` って書くのうざくない?
* Scala みたいに `int | str` って書けるようにしようよ
* 型アノテーションだけじゃなくて、 `isinstance()` や `issubclass()` でも使えるようにしようよ

## アプローチ

* 型同士を `|` でつなぐと型集合をつくれるようにする

以上。

## 例

PEP にあるサンプルを見ると一目瞭然なので説明は省

元記事を表示

Pythonの関数入門

# まえおき

– この記事は執筆中の[やさしくはじめるPythonプログラミング](https://github.com/simon-ritchie/python-novice-book-preview)の本の特定の章の部分抜粋です。
– 入門本なので初心者の方向けです。
– 関数の章の内容が主になります。
– Qiita記事にマッチしていない箇所(「章」や「ページ」といった単語が使っていたり、改行数が余分だったり、リンクが対応していない等)があるという点はご留意ください。面倒なのでQiita用に調整するのやりたくない。気になる方は↑のリンクの電子書籍版をご利用ください。
– コメントなどでフィードバックいただいた場合、書籍側にも活用・反映させていただく場合があります。

# 同じ処理のコードを使いまわす : 関数入門

この章ではPythonの関数について学んでいきます。そもそも関数ってなんだ?という感じですが、その辺りの説明を含めて説明していきます。

関数をうまく使いこなすとコードを書く量を減らせたり、同じコードを何度も書かずに済んだり、読みやすいコードにしたりと

元記事を表示

mglearn.plots.plot_nmf_facesで動作が止まってエラーかな?と思った話

#はじめに
引き続き「Pythonではじめる機械学習」の勉強をしています。
本日はmglearnのデータセットを利用したときに異変がありましたので共有しておきます。

#問題
mglearn.plots.plot_nmf_faces(X_train, X_test, image_shape)
plt.show()
でコマンドプロンプトにエラー?が表示されて調べたがなかなかみつからない。
cmdには

[Memory] Calling mglearn.plot_nmf.nmf_faces…
nmf_faces(array([[0.899346, …, 0.146405],
…,
[0.09281 , …, 0.639216]], dtype=float32),
array([[0.179085, …, 0.420915],
…,
[0.317647, …, 0.888889]], dtype=float32))
C:\Users\com\.conda\envs\tensorflow\lib\site-pa

元記事を表示

ペットボトルの底のあの形状を生成する

誰しも必ず見たことがある、炭酸飲料のペットボトルの底の、あの5角形のやつ、あれをプログラミングで作ってみようと考えました。

結論から言うと、だいたい自己評価で70点くらいの出来の形状ができました。結果が気になる方は先に一番下までスクロールして完成画像を見てから、この先を読むかどうか判断してください。

## 炭酸飲料のペットボトルの底の形

この5角形のやつです。
![pet01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235258/728119f5-c019-ce8c-ac6d-a7e93fa3f9bc.jpeg)

この形状は一般的に**ペタロイド**と呼ばれています。「花の形に似たもの(petal-oid)」という意味です。下から覗いたときに花弁のように見えることでそう呼ばれています。

ご自宅に炭酸のペットボトルがあれば、一度底を眺めてみてください。

### なぜこの形なの?

ペットボトルにはいろいろな形がありますが、この底部形状をとっているのは基本的に炭酸飲料だけです。炭酸飲料は

元記事を表示

OTHERカテゴリの最新記事