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

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

【機械学習】無相関化を数学から理解する

#1.導入
##(1)目的
機械学習をやってみたいと思った場合、scikit-learn等を使えば誰でも比較的手軽に実装できるようになってきています。
但し、仕事で成果を出そうとしたり、より自分のレベルを上げていくためには
**「背景はよくわからないけど何かこの結果になりました」**の説明では明らかに弱いことが分かると思います。

今回は**「無相関化」**を取り上げます。

「無相関化って聞いたことはあるけどなぜするの?」「どう使うの?」という前段の説明から、「無相関化って、数学的にはどのような処理が行われているの?」という疑問にも答えられるような記事にすることが目的です。

※今回は、しっかり理解しようとすると行列・共分散・固有値ベクトル・・等、諸々の理解が必要です。数学はあまり細かい点には行きすぎず、**大枠の理解ができるように心がけました**。

※調べている感じですと、無相関化が機械学習でそれ単独で使われることは少なそうです。どちらかというと主成分分析で使われるみたいです。

##(2)構成
まず2章で無相関化の概要を記載し、3章で実際に無相関化をしてみます。
最後に4章で、

元記事を表示

Ruby と Python で解く AtCoder ABC133 D 累積和

# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。

# 今回のお題
*[AtCoder Beginner Contest D – Rain Flows into Dams](https://atcoder.jp/contests/abc133/tasks/abc133_d)*
Difficulty: 945

今回のテーマ、累積和

連立方程式を解く問題で、`numpy`や`scipy`の`lupライブラリ`で求めることができます。
但し、競プロらしくそれでは`TLE`になりますので、連立方程式を次のように変形することにより解きます。

“`
b1 + b2 = a1
b2 + b3 = a2
b3 + b1 = a3
“`
“`
b1 = a1 + -a2 + a3
b2

元記事を表示

【大卒?院卒? 結論ホイ卒系だから】元光通信の営業マンがweb開発&データ分析で起業後、1年経過して伝えたいこと。

#はじめに
押忍!
ということで、ホイ卒系エンジニアな僕の過去〜現在をメモも兼ねて書いていく。

光通信を知らない方は一年前の記事でも。
**[前回記事リンク](https://qiita.com/LightSign/items/1f869369ff23969b53ce)**

そして、光通信によくいる人達の言葉遣いで記事を書いていくことにする。
※大げさな表現にしているので、記事にある言葉遣いとかが全部正しいわけじゃない
※「テメー」とか書くけど許してねw

…….わかっている。
わかっているさ。
光通信の言葉遣いなんぞ誰もしらんことを。

光通信の営業マンはqiitaを見ない
↓↓
エンジニア、プログラマーたちは、光通信の言葉遣いに誰も共感しない
↓↓
光通信の言葉遣いは意味をなさない
↓↓
でもやっちゃうよ 光通信ならね

ということで光通信の言葉遣いにしていく。

#文系卒
qiitaでもあるし、よくこの言葉を聞くが、僕はいつも
「おいおい 結論大卒前提やんけ
もっと低学歴からの記事やろ 参考になるのは。 毎日**イタ電話営業**しちゃうぞ?」と思ってますよ、と。

元記事を表示

写真1枚で高精度な3D画像簡単作成やってみた【3】。勝手にdepthのみ feat. intel-isl のMiDaS。

#最初にアウトプット

**勝手にdepthのみ feat. intel-isl の。**の結果です。

#概要
**写真1枚で**
**高精度な3D画像↓ 簡単作成**できるよう。

[写真1枚で高精度な3D画像簡単作成やってみた【1】。(depthがPNGで編集できるようになりましたよ。)](https://qiita.com/torinokaijyu/items/aca0dc6fb038dcd023d7)
の記事参照。

ここでは、

|**depthは、本来の処理を使わずに変わりに、替わりに、
intel-islのgithubのを使って作成(PNG)し、それを採用してみた**
(↑これが手順のすべて)|
|:—|

⇒ **勝手に、コラボレーション**
⇒⇒ **いいとこどりが、できないかと**

以下

元記事を表示

python を用いて天体画像(Chandra, XMM etc.)から radial profile を作成する方法

# 背景

天体画像の radial profile を作ることで,望遠鏡や検出器の有限の広がりと比較し,点源のコンシステントな広がりなのか,それよりも広がっているのかなど,天体の画像解析の一般的な方法であり,汎用的な解析ツールに含まれることもあるが,細かい解析をする場合は,自分で書いてみたい時もあるだろう.

## 作り方

実直に,中心を決めて,そこから円環を用意して,円環の中に含まれるピクセルのカウント数を数えて円環の面積で割るだけである.

“` python:
def calc_radialprofile(data, xg, yg, ds = 10, ndiv = 10, debug = False):
“””
calc simple peak (just for consistendety check) and baricentric peak.
“””
tmp = data.T
nr = np.linspace(0, ds, ndiv)
rc = (nr[:-1] + nr[1:]) * 0.5
rp

元記事を表示

[Python]05章-01 制御構文(比較演算子と条件分岐)

#[Python]05章-01 比較演算子と条件分岐
この章からは制御構文について学んでいきます。
今まで皆さんが書いてきたプログラムは、基本的には上から順に処理がなされ、順番に実行されていました。

しかし、私たちの生活でもそうですが、私たちは何か判断しながら普段生活しています。例えば、「天気が晴れだったら外出」し、「天気が雨だったら室内で過ごす」といったものです。

コンピュータプログラムでも同じように判断して実行する処理を選ぶことができます。ただし、その条件の指定には比較演算子という新たな演算子を学ぶ必要があります。
比較演算子はそこまで難しくはないですが、表記方法が数学と異なるのでそこをポイントとして押さえてください。

##比較演算子
まずは条件分岐で重要な比較演算子について説明します。
例えば、以下の式は当たり前ですが等しいと言えます。

“`math
5 = 2 + 3
“`

これをPythonプログラムで等しいかどうかを調べるには以下のように記載します。
**Python Console**に以下のコードを入力してください。なお、**=(イコール)は2つ続けて書い

元記事を表示

Flask の MySQL 接続と Life Cycle

# Flask の MySQL 接続と Life Cycle

mysql has gone away が現れるようになり、前から気になってたflask appのlife cycleについて理解しようとしてみた。
結局原因が途中でわかったので尻すぼみだけど、記録として残しておく。

## わかってないこと
– appはいつ起動していつ終わるのか?
– urlに対する1 requestで app起動、コンテンツ返して終了、と思っていたが、gone awayってことはconnectionをkeepしている可能性がある
– MySQL接続はいつ切れるのか?
– MySQL(app) ではない独自の接続を多数持っている。これらは切断されないのか?
– 元のinstanceが廃棄されれば切断されると思うが、廃棄されているのか?

## きれいなflaskは毎回切断している
以下のコードで検証

“`py
from flask import Flask
from flask_mysqldb import MySQL

app = Flask(__name__)

ap

元記事を表示

Pythonでしりとりゲームを作ってみる

# まずは出来そうなところから書いてみる
“`python:shiritori.py
#しりとりができるプログラムを書いていく
#一応確認のため、しりとりは単語の最後の一文字から始まる単語を言い合うゲーム
#勝敗は単語の最後の一文字が「ん」の単語を言ったプレイヤーが負けとなる
#つまり勝つ方法は相手が負けるのを待つということになる
#違う言い方をするならばボキャブラリーが豊富な方が勝ちやすいということになる

print(“しりとりゲームスタート!”)

#入力した単語の最後の一文字を取得する処理
str = input()
print(str[len(str) – 1])
“`
# 次に実装すべき処理は?
– 取得した最後の一文字を頭文字にして相手が単語を発する
– また自分が単語を入力する
– 上記2つを「ん」がつくまでループさせる

# 現時点で想定される課題
– 辞書をどう用意するのか
– 相手(CPU)がどのタイミングで負けてくれるのか
– 普通のしりとりで終わらない何かしらの要素は?

# 今後の予定
– とりあえず考え中です・・・

元記事を表示

【Raspi4;サウンド入門】pythonで音入力を安定して記録する♪

音入力は何度か取り上げてきたが、今回Rasipi4でも安定してずーっと入出力出来るようになったので、まとめることとしました。
肝心なことは以下の参考1.のとおりです。なお、昨年は参考2.のようなことやって遊んでいました。
今年はこのあと少し違うことやろうと思っています。
【参考】
1.[PyAudio Input overflowed](https://stackoverflow.com/questions/10733903/pyaudio-input-overflowed)
2.[【Scipy】FFT、STFTとwavelet変換で遊んでみた♬~⑦リアルタイム・スペクトログラム;高速化](https://qiita.com/MuAuan/items/6c2ab8497409bac6304e)

###肝心なこと
つまり、読み込むとき以下のおまじないを記載するとオーバーフローが発生しなくなり、延々記録できるようになりました.
※この記事はRasipi4でもこれが解決できたというお話です

“`py
# -*- coding:utf-8 -*-
import pyaudio
impor

元記事を表示

Googleのクライアントライブラリをimportしているプログラムをpyinstallerで.exe化する

Google Speech to Textを使ったプログラムを.exe化する必要があったのだが、ハマったのでメモ。

#環境
OS Windows10
(pipenvにて)
Python 3.7.4
pyinstaller 3.6

#実行したコマンド
***test.pyを.exe化する。***と仮定すると、

“`
pyinstaller test.py –onefile
“`

#ERROR1
まず、普通に実行すると以下のようなエラーが出る

“`
pkg_resources.DistributionNotFound: The ‘google-cloud-core’ distribution was not found and is required by the application
“`

このエラーに関しては起動時に`–additional-hooks-dir`オプションを使用して、以下のようなファイルを作成し、フォルダへのパスを与えれば解決する。というような記事をよく見かけるが、***自分の環境では解決しなかった。***

“`hook-google.c

元記事を表示

Pythonを使わずにKaggle タイタニック号乗客の生存予測モデルを作ってみる

# この記事の概要と結果
最近知ったVARISTAというAutoML?を使ってKaggleタイタニックコンペにチャレンジしてみます。
スコアは0.80861でした。

#Kaggleへ登録

Kaggleに登録していない人はKaggleに登録をしましょう。
登録は画面の右上から行ってください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15496/da717264-d9b1-f2e5-f642-e3e494818df3.png)

#データの用意

今回のコンペティションは[こちら](https://www.kaggle.com/c/titanic)の「Titanic: Machine Learning from Disaster」です。
コンペティションに移動したら「Data」タブを選択してください。
[こちら](https://www.kaggle.com/c/titanic/data)をクリックしてもデータページに移動できます。
データ画面に移動したらDownload All

元記事を表示

[Ansible] Python3インタプリタで、Centos7にdnfをインストールする

# [Ansible] Python3インタプリタで、Centos7にdnfをインストールする

## dnfとは

[fedora公式ページ](https://fedoraproject.org/wiki/DNF?rd=Dnf)

– Dandified Yum(ダンディファイド ヤム)とも言うらしい
– Fedoraのパッケージ管理システム(バージョン22からデフォルトになった)
– RHEL7,CentOS7でも使用できる(`yum install -y dnf`)
– RHEL8,CentOS8では標準でインストール済み

簡単に言うと、`dnf`は`yum`の後継種であり、CentOS8からは`yum`ではなく`dnf`がデフォルトとなる。
CentOS8でも`yum`コマンドは使えるが、`dnf`へのシンボリックリンクになっているだけである。

## なぜyumではなくdnfを使うのか

2020/1/1にPython2.Xのサポートが終了した。

– yumは、python2.Xでしか動作しません
– dnfは、python2.x or 3.Xで動作します

なのでこれか

元記事を表示

【Pythonやってみた!】iPad ProでKaggleに投稿できる?

##目的
iPad Pro 2020でKaggleに投稿できたので、その方法を共有する。
##背景
iPad Pro 2020を最近購入し、
「これで機械学習を勉強できたら最高なのに、、、」
と思ったが、ネット上では「できた」「できない」と色々言われているので、
実際はどうかを試そうと思った。
##実行環境
端末:iPad Pro 2020(11インチ)
キーボード:Magic Keyboard
ブラウザ:Chrome
##前提
Kaggleにログインできる
※今回はログイン方法は説明しません
##参考

【Kaggle初心者入門編】タイタニック号で生き残るのは誰?

##方法
①ChromeでKaggleのページに行く
②Notebookを作成する
③コーディングする
④Save&Commit
⑤Submitするページに行く
⑥Submit
##①ChromeでKaggleのページに行く
Kaggleにログインし、Competitionsページに行く。
参加するコンペを選択。(今回はTitanicを例にします。)

元記事を表示

[Python] Plotlyで標高データを球面に描画し、グルグル回せる地球儀を描いてみる

# はじめに
Pythonをはじめ様々な言語に対応し、比較的容易にインタラクティブな図を描画できる[Plotly](https://plotly.com/)を利用して、標高データを用いてGoogle Earthのようなグルグル回せる地球儀を作成してみます。

結果はこんな感じ。
https://rkiuchir.github.io/3DSphericalTopo

![EarthGlove.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/648286/2395e039-3387-8d98-0955-904e64602df3.gif)

# 3つのポイント
1. 標高データの取得および読み込み
2. 直交座標系で表現される緯度経度情報を球面座標系に変換([Plotly Chart Studio: Heatmap plot on a spherical map](https://chart-studio.plotly.com/~empet/14813/heatmap-plot-on-a-spherica

元記事を表示

レボボーヌージョー

先駆者: [ヌレボージョーボー](https://qiita.com/ddg171/items/c2d75b2b2b3289ca4e0c)

“`python
import random
l = [‘ボ’, ‘ジョ’, ‘レ’, ‘ヌ’, ‘ボ’]
random.shuffle(l)
[l.insert(i, ‘ー’) for i in [3, 5, 7]]
print(”.join(l))
“`

行数は増えたがコードのサイズは減らせた

# 元ネタ

[ヌジョレーボーボー](https://qiita.com/mattn/items/ae764601862b0073071e)

元記事を表示

100日後にエンジニアになるキミ – 75日目 – プログラミング – スクレイピングについて6

昨日までのはこちら

[100日後にエンジニアになるキミ – 70日目 – プログラミング – スクレイピングについて](https://qiita.com/otupy/items/f53e2e7d16adf80b5acf)

[100日後にエンジニアになるキミ – 66日目 – プログラミング – 自然言語処理について](https://qiita.com/otupy/items/5828ac7450c5ba8d6931)

[100日後にエンジニアになるキミ – 63日目 – プログラミング – 確率について1](https://qiita.com/otupy/items/0196897ae4d2134794fa)

[100日後にエンジニアになるキミ – 59日目 – プログラミング – アルゴリズムについて](https://qiita.com/otupy/items/f1a5e81633b868f3b5ed)

[100日後にエンジニアになるキミ – 53日目 – Git – Gitについて](https://qiita.com/otupy/items/0abaad82a7f

元記事を表示

[備忘録]画像のリサイズ

# コード
“`python
_train =[]
for img in x_train:
_train.append(cv2.resize(src=img, dsize=(224, 224)))
“`
`dsize` で任意のサイズを指定。

元記事を表示

Pandas DataFrame の任意の場所に列を追加する便利関数

Pandas DataFrame の任意の場所に列を追加したい場合は [pandas.DataFrame.insert](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.insert.html) を使うと実現できるが、いくつか不満がある。

– immutable でない (DataFrame が直接書き換えられてしまう / 破壊的メソッドである / inplace オプションがない)
– 追加場所をインデックスの数値で指定しなければいけない
– わかりにくい
– 「col1 の後に追加」のような指定が難しい
– Series を入力しても name が無視されるため、別途指定する必要がある
– DataFrame を入力できない

これらを解決するような便利関数を書いた。

## 実装
“` python
from typing import Union, Optional
import pandas as pd

def insert_columns(

元記事を表示

理論物理系学生の0から始める機械学習#2

目次
1. 標準装備のPython
2. 0からのPython環境構築
3. コーディングの準備

冗長になるかもしれないが、”0から”というところを意識して書いていきたい。

#1. 標準装備のPython
開発環境:MacOS 10.13.6
基本的にMacのターミナルをCUIとして用いる。(CUI:Character User Interface 文字で操作する)

ターミナルの表示形式は、
[コンピュータ名:カレントディレクトリ名 ユーザ名$]
となっている。(短くする方法もあるが初心者ならカレントディレクトリがどこなのかわかっていた方がいいだろう。)
以降`$`のみを記述する。

Python2.7.16はMac標準装備だった。確認方法は以下。

“`ruby:
$python -V
Python 2.7.16
“`

自分の場合はバージョン2.7.16で表示された。

#2. 0からのPython環境構築
標準装備のPython2でも開発できるが、PythonにはPython2とPython3があるらしく、Python2は2.7以降はバージョンアップがされないことが

元記事を表示

ゼロから始めるLeetCode Day45 「1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day44「543. Diameter of Binary Tree」](https://qiita.com/KueharX/items/117f939714ea26ab72c6)

今はTop 100 Liked QuestionsのMediu

元記事を表示

OTHERカテゴリの最新記事