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

Python関連のことを調べてみた2020年08月01日
目次

conda Numpyのようにscikit-learnも高速化する方法

最近、condaで入れるNumpyの方が、pipで入れるNumpyより動作が早いことが少し話題になっています(元記事は最近ではないのですが)。本記事では、scikit-learnもインストールを工夫すれば、より高速に動作することを解説します。

## はじめに

記事、「Anaconda の NumPy が高速みたいなので試してみた」

を最近Twitterのタイムラインで何度も見かけました(元記事は20年3月に記載されたものですが)。

condaでインストールするNumpyの方が、pipでインストールするNumpyより早い、というお話です。

## なぜ早いの?

上記の記事では、CPUで「Intel Core i7-9750H」を使用しています。

このCPUの仕様は以下です。
https://www.intel.co.jp/content/www/jp/ja/products/processors/core/i7-processors/i7-9750h.html

この仕様の*

元記事を表示

『統計検定準1級対応統計学実践ワークブック』をR, Pythonで解く~第17章回帰診断法~

[日本統計学会公式認定 統計検定準1級対応 統計学実践ワークブック](https://amzn.to/3jw3Rmi)
RPAでキーボード入力を使って右クリックするには?

# モチベーション
pythonに限らず、RPAをやっていると、

“`
「画像認識してマウスで右クリックさせるより、キーボードのあれ使ったほうが速くない?」
“`
って時があります。
ですが、その概念の抽象度が高く、検索しても見つかりにくいです。

また、「キーボードで右クリックできる」ということが、
どのくらい認知されているか「LGTM」数で感じられるかもしれません。

これらのことから、Qiita貢献度の高い情報と考えて記事化に踏み切りました。

# 方言
Ubuntuだと「メニューキー」
Windowsだと「アプリケーションキー」
日本語だと「右クリックメニューが出てくるキー」「コンテキストメニューが出てくるキー」
Windowsのキーボードショートカットだと「`Shift`+`F10`」

# コードサンプル
キーボード入力で右クリックメニューを出す

“`py:sample.py
import pyautogui

pyautogui.hotkey(‘apps’)
“`

# おまけ
Windowsでは、ウィンドウ最大化や最小化、ウィンドウを閉じるなどの右クリックメ

元記事を表示

【Python】データサイエンス100本ノック(構造化データ加工編) 001-010 所感+解説リンクまとめ

# 所感
– データサイエンス100本ノック(構造化データ加工編)の10問目までを解説して感じたことを3つ書きます。

## Pandasは「構造化されたデータを条件指定して抽出する」のに非常に便利
– 構造化されたデータは、あくまで**必要と思われるすべての情報を表形式で整理したもの**です
– 目的に応じて、見たい情報を抽出する必要があります
– そのために、条件指定をして抽出するのですが、**Pandasは条件指定のコードを簡潔に記載することができるという点で非常に便利**です

## 「どういった条件を」「どういったコードで表現するのか」がポイント
– Pandasの特徴として、条件指定とコードが対になる点が挙げられます
– 例えば、「先頭の10件を表示する」という条件指定は「.head(10)」というコードで表現されます
– このパターンを知り、100本ノックを通じて理解を深め、使えるようになるまで繰り返すことが習得の近道です
– **条件指定とコードの対を覚えることがPandasを習得する際のポイント**になります

## 実務では「何のために」「どういったデータを抽出した

元記事を表示

【動画でも】タダで学べる有名大学レベルのデータサイエンス【そう、couseraならね。】

#0. 対象読者

・データサイエンス,統計,機械学習,AIに興味あり
・大学時代に専攻していなかった
・学習に大金を費やすのは難しい
・独学が厳しい領域だと感じている
・中学生の初級レベルの英語ならわかる

**この記事を読むのに向いてない方**

・英語を一切学ぶつもりはない
・データサイエンス分野に興味が無く、簡単に概要だけ知りたい
(この場合はお金をかけて入門講座や家庭教師を頼んだ方がいい)

#1. はじめに
##1-1. まだまだ自学しよう

2020年の5月に[タダで学べるデータサイエンス名著5冊](https://qiita.com/Ringa_hyj/items/5e5a7f3f5ad6c89aec6a)を記事として書きました。
続編です。

この頃にはウイルスも8月までには収まっているだろう。という根拠のない予測をしていましたが、
まだ自粛ムードが漂う。

きっとデータサイエンティストを目指して入社した新卒の方もいらっしゃるでしょう。
採用した側としても早く教えて一人前にしたいわけですが、
蔑ろにしている、手持ち無沙汰を感じている方もいらっしゃるのでは?

##1

元記事を表示

【Python】データサイエンス100本ノック(構造化データ加工編) 017 解説

##Youtube
[動画解説](https://youtu.be/3dhUuiD97_0)もしています。

##問題
P-017: 顧客データフレーム(df_customer)を生年月日(birth_day)で高齢順にソートし、先頭10件を全項目表示せよ。

##解答
“`:コード
df_customer.sort_values(‘birth_day’, ascending=True).head(10)
“`

“`:出力
customer_id customer_name gender_cd gender birth_day age postal_cd address application_store_cd application_date status_cd
18817 CS003813000014 村山 菜々美 1 女性 1928-11-26 90 182-0007 東京都調布市菊野台********** S13003 20160214 0-00000000-0
12328 CS026813000004 吉村 朝陽 1 女性 1928-12-14 90 251-004

元記事を表示

Pythonnetを使って.NetからPythonコードを実行してみました(Hallo World編)

[こちらの記事](https://qiita.com/hogegex/items/3743225a7af13e93df78)で.NetからPythonを実行できると知り、[Pythonnet](https://github.com/pythonnet/pythonnet)を使ってみようと試してみました。
速攻でハマったので、備忘録としてメモしておきます。

## 環境
開発に用いている環境やPythonのバージョン、Pythonnetは以下の通りです。
– Windoiws 10 64bit
– Anaconda 3.8
– Visual Studio 2019
– Pythonnet 2020/7/31時点のソースコード

## 準備
まずは、[Pythonnet](https://github.com/pythonnet/pythonnet)からソースコード一式をダウンロードしてきます。
展開してpythonnet.slnがあるフォルダを開きます。

### Pythonnetのコンパイル
ソリューションファイルpythonnet.slnを開きます。

対象とするOSやPython

元記事を表示

【今日からPython】Pythonのインストール法 2020.8

#はじめに
ご覧いただきありがとうございます。先日MacBook Pro16インチを購入しPythonを再インストールしました。
今回インストールの仕方調べていたところ、zshの人向けのものが少ないように感じたのでインストール法をここに残します。

#手順
今回の手順は以下の通りです。
1. Homebrewのインストール
2. pyenvのインストール
3. Anacondaのインストール

#1. Homebrewのインストール
ターミナルに以下を打ち込んでください。

“`:terminal
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
“`

ターミナルの開き方からわからない方、不安な方は[こちらの記事](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)を参考にしてください。とてもわかりやすいです。
書きながら思ったのですが、Homebrewはbashに入っているんですか

元記事を表示

合成した音源のフーリエ変換とフーリエ変換の合成を比較してみる

8/1
ベース音源のフーリエ変換のプロット図とその他細かな説明を追加しました。
#何をするか
 2つの音源を合成したもののフーリエ変換とそれぞれの音源のフーリエ変換を合成したものを比較します。

#フーリエ変換とは?
 ほとんどの波は様々な周波数の正弦波からなっています。フーリエ変換とは、ある波がどのような正弦波をどのくらいの割合で足し合わせたものなのかを調べる、というものです。よく「時間領域から周波数領域への変換」と表現されます。

#フーリエ変換の方法
 離散フーリエ変換を用います。超簡単にいえばデジタル信号のフーリエ変換です。
Python3.7とnumpyを使いました。

“`python
import numpy as np
import matplotlib.pyplot as plt
import wave

def wave_open(file):
wf = wave.open(file, “rb”)
nc = wf.getnchannels() # チャンネル数(モノラルorステレオ)
qn = wf.getsampwidth() # 量子

元記事を表示

yukicoder contest 259 参戦記

# yukicoder contest 259 参戦記

## [A 1139 Slime Race](https://yukicoder.me/problems/no/1139)

「衝突時間を順番に割り出して処理していかないといけない、すごい難しい!」と思わせておいて、速度が引き継がれるので、衝突がないとしても同じだった. 引っ掛けられた、やられた.

速度の合計でDを割って切り上げたのが答え.

“`python
N, D = map(int, input().split())
x = list(map(int, input().split()))
v = list(map(int, input().split()))

t = sum(v)
print((D + t – 1) // t)
“`

## [B 1140 EXPotentiaLLL!](https://yukicoder.me/problems/no/1140)

解けず. フェルマーの小定理が絡んでいるのかなあと悩んだけど、数式変換思いつかず.

## [C 1141 田グリッド](https://yukic

元記事を表示

【機械学習】カーネル密度推定を使った教師あり学習

# カーネル密度推定を使った教師あり学習

この記事は機械学習の初心者が書いています。
予めご了承ください。

## What’s カーネル密度推定

ぶっちゃけ[WIkipedia](https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E5%AF%86%E5%BA%A6%E6%8E%A8%E5%AE%9A)を見たほうが早い。

横軸が年齢、縦軸が自動車事故の死亡数であるヒストグラムを想像してください。
10代と高齢者が高く、それ以外は低いグラフになります。
ここから「10代・高齢者なら自動車事故で死亡する確率が高い」「そうでなければ相対的に確率が低い」と言えます。
グラフが高い部分では生じる確率が高く、グラフが低い部分では生じる確率が低い……。
どこかで聞いたことがないでしょうか?

これは確率密度関数の考えと同じです。
このヒストグラムは、
***自動車事故で死亡する確率***の真の確率密度関数を***実際の死亡者数をもとに推定したもの***になります。
カーネル関数を使ってもっと連続的に、もっとなめ

元記事を表示

YOLP Yahoo!スタティックマップAPI で地図情報 XML ファイルを取得する

## 概要

– Python で YOLP Yahoo!スタティックマップAPI をコールして地図画像と地図情報XMLを取得する
– YOLP Yahoo!スタティックマップAPI の output パラメータに xml を指定すると、output=xml ではないときに取得する地図画像についての情報を XML で取得できる
– 動作確認環境: macOS Catalina + Python 3.8.5

## Python によるプログラム

“`py
from urllib.request import Request, urlopen
import xml.dom.minidom as MD

appid = ‘YOUR APPLICATION ID’ # アプリケーションIDを指定
headers = {‘User-Agent’: ‘Yahoo AppID: {0}’.format(appid)}

# lat=中心の緯度, lon=中心の経度, z=縮尺レベル, output=出力形式
# 今回は名古屋駅の緯度・経度を指定
png_url = ‘https://map.y

元記事を表示

【Python】numpyでの計算方法

##numpyでの計算

numpyを使用して0~10の配列を作ります。

“`
import numpy as np

arr = np.arange(11)

arr
“`

“`実行結果.
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
“`

sqrtメソッドを使用することで各数字の平方根の計算できます。

“`
np.sqrt(arr)
“`

“`実行結果.
array([ 0.48273727, -1.28739284, 1.52422575, -1.73666091, -0.25126809,
-0.41952278, -0.75042054, -0.64585434, -0.86014472, -0.44542315])
“`

random.randn()で正規分布(平均=0,分散=1)の乱数を計算することができます。

“`
A = np.random.randn(10)
“`

“`実行結果.
array([-0.94897439, -0.43075947, 0.08

元記事を表示

「ほん訳コンニャク」 を食べて 論文を読もう

# TL;DR;

以下の「ほん訳こんにゃく」を作った。

[![Translation-Gummy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308700/aa1d86f1-cb24-0a09-f119-915a5fa2166c.png)](https://elb.translation-gummy.com/)

## 作りたかったもの

 研究室配属で、かねてから取り組みたかった **「シナプス可塑性におけるmiRNA機能とそれらが記憶や学習などの高次認知機能に与える影響の解明」** を自分の研究テーマ(※暫定)にすることができ、生物系の論文を読む機会が圧倒的に増えたのですが、元々深層学習系統の論文しか読んでいなかったため、常識や背景知識不足に悩まされ、[DeepL](https://www.deepl.com/en/translator)や[Go

Pythonの無限スクロールスクレイピングの終わらせ方

Pythonで無限スクロールがあるWebページのスクレイピングを実装中、終わらせ方がわからなくてつまづいたのでメモ

## サンプル

“`py3
>>> t = 0
>>> start_at = time.time()
>>> t = time.time() – start_at
>>> t == 5
>>> break
“`

## 解説

`start_at`は、実行してから経過している時間
`t`は、その差
`t`が5(5秒経過)になると、処理を終了する

参考
https://note.nkmk.me/python-datetime-timedelta-measure-time/
https://ai-inter1.com/python-selenium/#st-toc-h-14

PythonとFlaskで類似画像を検索できるアプリを作ってみようPart1

# PythonとFlaskで類似画像を検索できるアプリを作ってみようPart1

## 概要

タイトルの通りです。今回は簡単にデータが手に入ってかつデータサイズも小さいご存知MNISTに対してMNISTの画像を入れると似たMNISTの画像を見つけてくれる、そんなアプリを作ることで近似近傍探索についての話とFlaskを使ったアプリ作りについての話を自分のメモもかねて書いていきます。

## 手順

### 作業ディレクトリをつくろう!

– 作業ディレクトリ

適当に名前を決めていいですが、私は調子に乗って SSAM-SimilaritySearchAppwithMNIST なんて洒落た名前をつけてみました。

– MNIST用ディレクトリ

次にMNISTのデータを保存しておくフォルダを作成しましょう。そうしないと毎回ダウンロードしてくる必要があって面倒です。
static/mnist\_dataみたいな名前でフォルダを作っておきましょう。

– 現在のディレクトリ構成はこんな感じです

“`
SSAM-SimilaritySearchAppwithMNIST

[Tkinter] Eventオブジェクトでスレッドを制御する

#はじめに
[前回の記事](https://qiita.com/kotai2003/items/dc0b23fa95844fc1ba45)で、Tkinter GUIでスレッドを利用して、応答性をよくする方法を紹介しました。

今回は、このスレッドの動作を制御する方法をご紹介します。

#やりたいこと

下記の図を見てみてください。
スタートボタンを押すと、数字がカウントされるGUIプログラムを作りたいと思います。途中で下部のストップボタンを押すと、数字のカウントを一旦止めてもらいます。
また、上部のスタートボタンを押すことで、数字のカウントが再開されるイメージです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/5228924d-d564-7c98-9285-cd14e48e9cd7.png)

#スレッドにはStartがあってもStopがない。
最初は、数字をカウントする関数をWhile文を用いて作り、スタートボタンを押すとスレッドを立ち上げ、**ストップボタンを押す

【Python】0からWebアプリ!ハンズオン(1)~設計、DB構築編~

# 概要
Pythonで0からWebアプリを作る機会があったので、そのまとめとして!
この記事ではアプリの設計、データベースの設計、構築について書いています。

前回の記事
[【Python】0からWebアプリ!ハンズオン(0)~環境構築編~ – Qiita](https://qiita.com/tsumasakky/items/d8069418d1fa6f2fa185)

# こんな方に読んでほしい
* プログラミング未経験だけどアプリ作ってみたい方
* 新人Webプログラマの方
* 経験者だけどPythonでWebアプリ書いたことない方

# ゴール
HTML, CSS, JavaScript, Python, SQLを使ってCURD機能を持ったWebアプリを作成するのが目標です。

# 必要なもの
* PC(Windows OS)
* インターネット回線
* わくわくした気持ち

# 1. アプリのイメージ
今回は題材として簡単なTodoアプリを作りたいと思います。

必要となる機能は

* Todo一覧(Read)
* Todo追加(Create)
* Todo更新(Updat

【Python】0からWebアプリ!ハンズオン(0)~環境構築編~

# 概要
Pythonで0からWebアプリを作る機会があったので、そのまとめとして!
この記事では環境構築について書いています。

# こんな方に読んでほしい
* プログラミング未経験だけどアプリ作ってみたい方
* 新人Webプログラマの方
* 経験者だけどPythonでWebアプリ書いたことない方

# ゴール
HTML, CSS, JavaScript, Python, SQLを使ってCURD機能を持ったWebアプリを作成するのが目標です。

# 必要なもの
* PC(Windows OS)
* インターネット回線
* わくわくした気持ち

# 1. Pythonのインストール
公式サイトからダウンロードできます。
[Download Python | Python.org](https://www.python.org/downloads/)
2020-07-31_10h28_38.pngPandasの基本的な操作

こんにちは、Mottyです。
最近kaggleを初めましたので、必須であるPandasを使ったデータ加工の簡単な操作を記事にまとめていきたいと思います(‘`)。
・Kaggle公式HP
https://www.kaggle.com/
・Pandas UserGuide
https://pandas.pydata.org/docs/user_guide/index.html
##概要
PandasはPythonのデータ加工ライブラリです。テーブルの操作や集計、欠損値の補完などが簡単に行えます。他にも列を結合したり相関行列を表示したり、クロス集計できたり・・・と様々です。
![ 2020-07-31 18.05.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302420/bb30a588-be55-3b95-3659-b20d9d297e00.png)
##使用するデータ
kaggle定番ですが、タイタニックの生存状況に関するデータを使用します。

“`python
import numpy as