Python3関連のことを調べてみた2020年12月26日

Python3関連のことを調べてみた2020年12月26日

kaggle の Courses を読む —Intermediate Machine Learning 5

# twitter 始めました
こんにちは! まはらせないきと申します!
突然ですが、ついに [twitter](https://twitter.com/MaharaseNaiki) 始めました!
あまり有益なことは発信できませんが、先輩方の知見や経験を得られたらと思っています!

それでは今回もよろしくお願いします!

___
__Intermediate Machine Learning__ では、機械学習をより深掘っていきます

~Intermediate Machine Learning の流れ~
1. 導入
2. 欠損値
3. カテゴリー変数
4. パイプライン
5. 交差検証
6. XGBoost
7. データの漏洩

今回は __6__ の内容です!

# eXtreme Gradient Boosting
Gradient Boosting は、__勾配ブースティング__ と翻訳されています。この勾配ブースティングにさらなる精度と速さを実装したものが、__XGBoost__ です。Scikit-learn には別の勾配ブースティングの手法もありますが、XGBoost の

元記事を表示

Pythonを使って複数画像をPDFに変換する

この記事は、Pythonを使って複数の画像を一つのPDFにまとめたいと考えているユーザーに向けたものです。
以前の公開コードをPython3で試したら動作しなくなっていたので、Python3ユーザー向けに更新しています。
## 前提
macOS Catalina (10.15.6)
python 3.7.5

## 事前準備
img2pdfをインストールします。
https://pypi.org/project/img2pdf/

“`py
pip3 install img2pdf
“`
インストールに成功したことを確認

“`
Installing collected packages: Pillow, img2pdf
Running setup.py install for img2pdf … done
Successfully installed Pillow-7.2.0 img2pdf-0.4.0
“`

## 画像をPDFに変換する

以下のスクリプトを記述します。ここではファイル名を convert2pdf.py とします。

“`py:convert

元記事を表示

【Python】Excelの複数シートを1つにまとめる

Excel for Macでは、ピボットテーブルを作成する際に複数テーブルを一括指定できないため結構不便です。(古いバージョンではできていたはず…)
まずは、pythonで複数シートのデータを1つシートにまとめてデータを扱いやすくしていきます。

#使用ライブラリ
openpyxlを使用します。
Excelの読み書きなどの操作を行うためのライブラリです。
https://openpyxl.readthedocs.io/en/stable/

#事前準備
openpyxlのインストール

“`
pip install openpyxl
“`

#ファイルの読み込み
“`python
#ファイルの読み込み
read_path = “./input.xlsx”
output_path = “./output.xlsx”
wb = load_workbook(read_path)

“`

#全シートのデータを取得する
“`python
#全シートのデータを取得する
sheet_names = wb.get_sheet_names()
first_row = 1
l_2d_outpu

元記事を表示

AtCoder Recommendation 埋め

###[C – Unification](https://atcoder.jp/contests/abc120/tasks/abc120_c)

最初は配列の最後尾から0と1を取り除くことを考えました。
しかし計算量が多いと思い組むだけにしました。

“`C++:C++
#include

#define rep(i,n) for(int i=0; i<(n); ++i) #define fixed_setprecision(n) fixed << setprecision((n)) #define execution_time(ti) printf("Execution Time: %.4lf sec\n", 1.0 * (clock() - ti) / CLOCKS_PER_SEC); #define pai 3.1415926535897932384 #define NUM_MAX 2e18 #define NUM_MIN -1e9 using namespace std; using ll =long long; using P = pair

元記事を表示

Pythonで仮想環境をつくる_Mac版

# 目次

# 目次2

元記事を表示

COVID-19のオープンデータを検証するというお話

この記事は[Civictech1年目 Advent Calendar 2020](https://qiita.com/advent-calendar/2020/civictech_rookies)の最終日(25日目)の記事です。(とは言ったものの、書き溜めしていた記事を消化したもので、あまり面白い記事ではないです…)

どうも、兵庫県版コロナウイルスまとめサイトコントリビュータ、y-chanです。本家東京都サイトにも積極的にコントリビュートしたり、SecHack365に受かっていろいろ開発したり、[CCC2020](https://ccc2020.code4japan.org)の運営をしていたりと大忙しな感じです。
今回は、COVID-19のオープンデータを検証するというような、おそらくどこもやってない(当社調べ)ことをやったのでそれについてちょっと書き残しておこうかなといった感じです。聞きかじった話が含まれてるので間違ってる部分もあるかと思いますが、編集リクエストなんかで優しく直してくれるとありがたいです。

# 私たちはデータラングリングをしている
前置き的なお話をしたいと思い

元記事を表示

djangoのモデルを特定の条件でソートする

# djangoのモデルを特定の条件でソートしたい
“`models.py
class Tag(models.Model):
# タグに振られるID
tag_id = models.AutoField(primary_key=True, verbose_name=’タグID’)
# タグの名前
tag_name = models.CharField(max_length=20, verbose_name=’タグ名’)

def __str__(self):
return str(self.tag_name)

class IdeaTagMap(models.Model):
ideatag_id = models.AutoField(primary_key=True, verbose_name=’アイデアタグのID’)
# 紐づけられる投稿
idea = models.ForeignKey(PostIdea, on_delete=models.CASCADE)
# 紐づけられるタグ
tag

元記事を表示

【ロジスティック回帰】statsmodelsでk分割交差検証を実装する

#はじめに
pythonでは,ロジスティック回帰モデルを利用できるライブラリとして主にscikit-learnとstatsmodelsが用いられます.statsmodelsには係数の有意差検定を自動でしてくれるといったscikit-learnにはない利点がある一方で,代表的なモデルの評価方法であるホールドアウト法や交差検証法に対応していません.そこで今回は,statsmodelsでk分割交差検証法を実装するためのコードを作成してみます.

statsmodelsを用いたホールドアウト法の実装については[こちら](https://qiita.com/takato0884/items/fd957fd431d41bcb3ada)をご覧ください.
# ライブラリのインストール
“`python:sample.ipynb
import numpy as np
import pandas as pd
import statsmodels.api as sm
“`
#データのインストールと前処理
データには,私が卒業研究のために独自に集めたクラウドファンディングに関するデータを用います.
このデ

元記事を表示

DBからデータを取得して返り値にするときに詰まったこと

(備忘録なので簡単に。より詳しい情報は[ドキュメント](https://docs.sqlalchemy.org/en/13/)などを参照ください)

##execute()の返り値

・sqlalchemyでDBに接続して、excute()でクエリを発行したとき、
 返ってくるのは’sqlalchemy.engine.result.ResultProxy’クラスの
 オブジェクト

・つまり、DBから取得した値をintやstrなどで返すためにはひと工夫が必要

↓↓↓例えばこんな感じ↓↓↓

~~~py
from sqlalchemy import create_engine
# 余談だけど型アノテーションはちゃんとしよう。この関数宣言をまねしちゃダメだぞ
def fetchUserIdFromDB(userName):
# DB接続
engine = create_engine(‘sqlite:///app.db’)

userId = []
with engine.connect

元記事を表示

バッチ設計とPython

# はじめに
Python Advent Calendar 2020 25日目:christmas_tree:です。

時代はサーバレースですが、オンプレミスのサーバやクラウド(IaaS)などのインスタンスでバッチを運用しているシステムもまだたくさんあると思います。

本記事ではサーバ上で動かすバッチを前提とし、前半はアンチパターンなどを踏まえながらバッチ設計のポイントについてまとめています。後半はPythonでバッチ開発する際のTipsになります。

**※本記事の内容は、あくまで考え方の一例であり、必ずしも全ての考え方がシステムに適合したり、ここに書いている内容で満たされている訳ではありません。**

## バッチ設計
バッチ処理はひとまとまりのデータに対して、一連の処理を連続で実行する処理方式のことです。語源を辿ると、汎用コンピューターの時代まで遡ります。

データを一括で処理することを目的とし、Unix系OSではcronを利用して指定した日時で運用することが多いです。また、バッチ自体のことをジョブと呼んだりもします。大規模システムではたくさんのジョブを管理するため、専用のジョブ

元記事を表示

Pixel4のカメラで学ぶDepth map-1(helper実装)

#はじめに
この記事は[Note](https://note.com/sv_engineer/m/m98195ca0c6e1)で連載している記事で扱っているCode部分のみを切り出しています。技術背景等にご興味がある方はNoteの記事の方をご参照ください。

#helperの実装
 画像の入出力を多用するのでそれらをhelperとしてまとめて実装しておきます。そうすることでCodeが見やすくなりますし、メンテナンスが楽になります。使用するライブラリーは以下となります。事前にpip等でインストールしておいてください。
– glob
– OpenCV
– numpy

それでは実際の実装を記載します。

###指定したFolder内のファイル一覧作成
 globを使用し、指定したFolder内で指定した拡張子を持つファイルの絶対パスリストを作成します。相対バスでも良いですが、後々絶対パスの方が扱いやすいので絶対パスで取得します。

“`python:helper.py
def make_file_path_list(path: str, ext: str) -> [str]:

元記事を表示

アラートメールを判別させたい。 – その x はワイルドカード? –

こんにちは。NETS1の田中(た)です。

[アラートメールを判別させたい。 – XXXXXはワイルドカードなんです! -](https://qiita.com/tatsumiya2015/items/515e40a721b23f3300f9) の続きです。

最終日が誰も登録されていないようなので書くことにしました。

# うまく判定してくれないメールの登場

ある時こんなアラートメールが届きました。

“`
Dec 14 12:59:12 app001 2020/12/14 12:59:12.449 app001 ERROR ERROR002 ecnxeci-1349 すごいことがおきました。 sugoi[10223] でエラー あぁ、なんという!
“`

一覧表をみれば明らかに電話連絡とわかります。

|エラーコード|エラーメッセージ|対応|
|:———-|:————–|:————:|
|ERROR002|app00x ERROR ERROR002 xxxxx すごいことがおきました。 XXXXX[10223] でエラー|電話連絡

元記事を表示

Redashでクエリを投げてみる

# はじめに

先日Redashをローカル環境にインストールしたので、今回はデータベースにデータを入れて、Redashでクエリを投げるところまでを実施します。
Redashのインストールについては[こちら](https://qiita.com/dyamaguc/items/a7a16f8ca9b562c33090)をご覧ください。

# 環境

MacBookAirを使用しています。OSなどは次の通りです。

“`
$sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.6
BuildVersion: 17G14033

$python –version
Python 3.7.3

$docker –version
Docker version 20.10.0, build 7287ab3
“`

Redashを起動した状態を想定しています。

“`
$docker container ls
CONTAINER ID IMAGE COMMAND CREATE

元記事を表示

Splunkで見る新型コロナウィルスのファクトフルネス

メリークリスマス!2020年もあと1週間。今日の夕方のクリスマスケーキとチキンの行列はいつもより長かった気がします。みなさん自宅でのクリスマスなんでしょうか。

2020年1月から発覚した、新型コロナウィルスと3月のパンデミック。毎日報道されています。だいたいは最高人数更新のニュースなのですが、最高で無い場合は過去の曜日の最高や、大阪が最高だの、煽っているようにしか見えません。
2017年の日本のがん死亡者数:373,584人、(https://ganjoho.jp/reg_stat/statistics/stat/summary.html)

心筋梗塞などの心疾患死亡者数は204,837人(http://www.seikatsusyukanbyo.com/statistics/2019/009997.php#:~:text=%E5%8E%9A%E7%94%9F%E5%8A%B4%E5%83%8D%E7%9C%81%E7%99%BA%E8%A1%A8%E3%81%AE%E3%80%8C%E4%BA%BA%E5%8F%A3,%E3%81%AB%E5%A4%9A%E3%81%84%E6%9

元記事を表示

apt-getを使用してnginx python postgresqlをinstallする

#前提
ubuntu (もしくは debian ?)

#コマンド
“`
sudo apt-get update

sudo apt-get install nginx python3-pip python3-dev libpq-dev postgresql postgresql-contrib
“`

以上

元記事を表示

【備忘録】タイタニック号のデータを完璧に前処理したい ~Age篇~

[最初に投稿した記事](https://qiita.com/hamco/items/ae0de188adfa240832fb)は途中で体力が尽きて最後まで書けなかったので、リベンジです。
ちょっと分かりやすいように編集してます。
## 目的
タイタニック号のAgeの欠損値が多いので、全部埋めたら精度上がるんじゃないかな
と思いました。

## 与えられたデータ
今回インポートしたライブラリは下記のとおりです。

“`python
import pandas as pd
from sklearn.model_selection import train_test_split as tts
from sklearn.ensemble import RandomForestClassifier as RFC
from sklearn.ensemble import RandomForestRegressor as RFR
“`
いつも長い名前は自分勝手に省略してしまうので、途中でわけわからんのが出てきたら
そういうことなんだなと思ってください。

元のデータをDataFrameに入れると

元記事を表示

AmazonLinux2でPython3環境構築

AmazonLinux2には標準でPython2系がインストール済みですが、Python3を入れたい場合に共存してコマンドが面倒なので標準でPython3を使うように変更する手順です。
一旦python自体の仮想環境(pyenv)については記載していません。

# 環境情報

“`shell-session:使用AMI-id,OS,カーネルバージョン
$ /opt/aws/bin/ec2-metadata
ami-id: ami-00f045aed21a55240

$ cat /etc/system-release
Amazon Linux 2

$ uname -a
Linux hogehuga.ap-northeast-1.compute.internal 4.14.209-160.335.amzn2.x86_64 #1 SMP Wed Dec 2 23:31:46 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
“`

“`shell-session:作業前python環境
$ python -V
Python 2.7.18

$ pip

元記事を表示

wxPythonのメッセージボックス – wx.MessageBox

あー最近雪がめちゃくちゃ降ってて雪かきが大変なんですよ…

今までは`wx.Frame`をメインにやってきましたが、今回は`wx.MessageBox`をやっていきます。

##メッセージボックスとは?
メッセージボックスというのは、Tkinterでもありますよね?
エラーを表示するダイアログだったり、警告を表示するダイアログだったり、
情報を表示するダイアログだったり、保存するかしないかを確認するダイアログだったり…

簡単なコードで、色々とできちゃいます。

##メッセージボックスを表示させてみる

これからいくつかのコードを言っていくのですが、その前にそれをどこに書けばいいのか
確認します。

“`python
import wx
app = wx.App()
#ここにコードを入力
“`
はい。『ここにコードを入力』の部分です。

情報アイコン

![スクリーンショット (531).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922970/dbf47983-eba7-eb5a-806d

元記事を表示

python + ロト6

# 概要
サイコロを6万回を回すとそれぞれ1万に近くなる。
これをロト6に適用してロト6をあてる確率を少し上げてみよう。

# 構造
1.mizuho銀行のWEBからロト6DBを引っ張る。(requests利用)
2.DBはNUMPYを利用しローカルで管理する
3.ロト番号1~43までの数字がでた頻度を計算する。
4.頻度数1番目、2番目は取り除く(choose(flist,ign,topn,topc)で調節可能)
5.頻度数上位17まで数字をランダムで2個、以降からは4個を抽出する。
6.履歴はローカルでpast.txtで管理

“`
from bs4 import BeautifulSoup
import requests
from urllib.request import urlopen
import re
import pandas as pd
import numpy as np

def oldurl():
ulist=[]
for a in range(60001,60442,20):
url=’https://www.mizuh

元記事を表示

Pythonでネストが深くなって読みにくい

# Pythonでネストが深くなって読みにくい
## はじめに
Pythonをかいていて、「ネストが深くて読みにくいなぁ」ってよく思うんですよね。
具体的には以下のような場合です。

“`python

for group in groups:
for member in group.members:
for article in member.articles:
for tag in article.tags:
“””
処理いろいろ
“””
“`

もしこれが以下のようになったらステキじゃないですか?

“`python

for group, member, article, tag in func(groups):
“””
処理いろいろ
“””
“`

でも「そもそもfor文ってどうやったら自分で制御できるの?」って疑問もあると思うのでそこから解説していきたいとおもいます。

## 実装
Pythonを

元記事を表示

OTHERカテゴリの最新記事