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

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

Apache Flink の課題とチャンス

このブログ記事では、**Apache Flink**とそのエコシステムが、多くの課題を抱えながらも、機械学習の分野で何か素晴らしいことが起こるであろう、その可能性について論じています。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/the-wild-wild-apache-flink-challenges-and-opportunities_595187)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

Jian Feng著

[Apache Flink](https://flink.apache.org/?spm=a2c65.11461447.0.0.7a241797OMcodF) のエコシステムについて議論する前に、まずエコシステムとは何かを見てみましょう。ITの世界では、エコシステムとは、共通のコアコンポーネントから派生したコンポーネントのコミュニティであり、このコアコンポーネントを直接または間接的に利用し、このコアコンポーネン

元記事を表示

宇宙背景X線放射(CXB)をフラックス範囲を指定してpythonで計算する方法

# 背景

宇宙背景X線放射(CXB)を推定する場合に、トータルの明るさはいくつかを知りたいだけではなくて、撮像観測した場合は、撮像により検出された明るい点源は除いた場合に、どのくらいが空間分解せずに残っているか?を推定する必要がある。

ここでは、https://iopscience.iop.org/article/10.1086/374335 に従って、soft (1-2 keV) と hard (2-10 keV) のそれぞれをpythonで計算する方法を紹介する。

## ソースコード

コードを読めばわかる人は、[calc_cxbのColab](https://colab.research.google.com/drive/1lOsEXyMdqEP2DdAi5b-cClT_-dIP72CT#scrollTo=yK0uveFNCKJy) を参照ください。

“` python:
#!/bin/evn python

import matplotlib.pyplot as plt
import numpy as np

# THE RESOLVED FRACTION OF T

元記事を表示

argparse のヘルプでオプションの書式とその説明が被って読みづらい現象をどうにかする

# はじめに

こんにちは rtanpo440 です。

Python の標準コマンドラインパーサ argparse はいいですね! 自分は Python を最近はじめたばかりでまだ慣れていないところもありますが、コマンドラインパーサはこんなに簡単に書けるんだなぁと思いました。

そして argparse はヘルプを自動で生成してくれます。自分で `add_argument` しなくても `-h` `–help` オプションは自動的に追加され、いい感じに表示できます。

ドキュメント : https://docs.python.org/ja/3/library/argparse.html

# 問題点

しかし 1 個だけこまったことがあります。それは、各オプションの書式と説明が被ってしまい、読みづらい状態になってしまうことです。

“`python:before
#!/usr/bin/python3

import argparse

parser = argparse.ArgumentParser()
parser.add_argument(‘-m’, ‘–foo’,

元記事を表示

そもそもPythonで依存性逆転の原則(DIP)を実現できるのか?

# はじめに

最近設計やアーキテクチャについて悩むことが多いのですが、動的型付き言語であるPythonでも依存性逆転の原則について実現できるのかについて自分なりの意見を書いてみました。私の意見が絶対正しいというわけではないのですが、少しでも参考になれば幸いです。

※Pythonの解説記事ですがC++のコードも出てきますのでご了承ください(内容は難しくありません)

# ポリモーフィズムとは?

まず、依存性逆転の原則を理解する前に**ポリモーフィズム**についての理解が必要です。
説明をWikipediaから引用します。

> ポリモーフィズム(英: Polymorphism)とは、プログラミング言語の型システムの性質を表すもので、プログラミング言語の各要素(定数、変数、式、オブジェクト、関数、メソッドなど)についてそれらが複数の型に属することを許すという性質を指す。ポリモルフィズム、多態性、多相性、多様性とも呼ばれる。

内容が分かりにくいので詳細に解説します。本質は「**それらが複数の型に属することを許すという性質を指す**」の部分です。Pythonなどの動的型付き言語の場合は

元記事を表示

windowsでのpython開発環境構築例(wsl2, vscode, pipenv)

# 背景
– windows上でpython開発環境を構築
– プロジェクト毎に環境を分けたい
– Anacondaを使いたくない
– too much感がある
– 調べ物をするときに、conda前提で書かれている例が少ない(ような気がする)

# Summary
– いろいろ試しましたが、WSL2, Ubuntu20.04, pipenv, VisualStudioCodeが使いやすいと判断
– 試した過程は記述していません
– 手順だけ記述します、慣れれば5分くらいで構築できます

# 前提
– Windows 10 Home (2020/10ぐらい)
– VisualStudioCode(以下、VSCODE)がインストールされていること

# 手順
– WSL2の環境をセットアップする(ここが一番時間かかる)
– ※InsiderProgramに入らなくても、いつの間にかWin10HomeでもWSL2が使えるようになっていた
– 手順はこちらが一番参考になる
– https://docs.microsoft

元記事を表示

camelotで点線を実線として処理する(ハフ変換)

# はじめに

camelotは点線が苦手でよく失敗するので調べてみると以下の参考の記事が見つかりました

camelotはopencvで抽出しているので点線を書き換えればいいみたいなのでハフ変換で点線を抽出し実線で上書きしてみたらうまくいきました

# 参考

[Pythonを使えばテキストを含むPDFの解析は簡単だ・・・そんなふうに考えていた時期が俺にもありました](https://qiita.com/mima_ita/items/d99afc28b6f51479f850)

[camelotで点線を実線として処理する](https://needtec.sakura.ne.jp/wod07672/2020/05/03/camelot%e3%81%a7%e7%82%b9%e7%b7%9a%e3%82%92%e5%ae%9f%e7%b7%9a%e3%81%a8%e3%81%97%e3%81%a6%e5%87%a6%e7%90%86%e3%81%99%e3%82%8b/)

こちらの記事の横の点線のPDFを使わせていただきます

https://github.com/mima3/yaku

元記事を表示

【pytorch】torch.zeros vs torch.zeros_like

torch.zerosとtorch.zeros_likeの違いが気になったので書く。
#torch.zerosの使い方
値が0のtensorを返す。

“`
>>> torch.zeros(3, 2)
tensor([[0., 0.],
[0., 0.],
[0., 0.]])
>>> torch.zeros(3)
tensor([0., 0., 0.])
“`

#torch.zeros_likeの使い方
あるtensorの値をすべて0にしたいときに使う。

“`
>>> input = torch.empty(3, 2)
tensor([[3.2561e+09, 3.0936e-41],
[0.0000e+00, 0.0000e+00],
[3.2557e+09, 3.0936e-41]])
>>> torch.zeros_like(input)
tensor([[0., 0.],
[0., 0.],
[0., 0.]])
“`
上の例はinputの値をすべて0にしている。

元記事を表示

大阪都構想の投票結果を区ごとに分析してみた

#はじめに
私は現在大阪市に住んでおり、一昨日の都構想投票はテレビにかじりつきながら見ていました。

経過を見ていて思ったのが、**区ごとの結果の差が顕著**に出ており、分析対象として適したデータが得られそうだと感じたため、詳しく分析してみました。

※下図はおおさか維新の会HP掲載の、都構想における新旧区分け
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/f4d0d6a7-2ee8-3fc3-f4f2-671c8d456aae.png)

[GitHubに、使用したスクリプトやクレンジング後のデータをアップロードしています](https://github.com/c60evaporator/osaka_metropolis)

[Qiitaのガイドライン](https://help.qiita.com/ja/articles/qiita-community-guideline)にあるように、あくまで技術記事としての領分を超えないよう、政治的な深い考察は避け、得られた事実の

元記事を表示

日付表記の正規表現

日本の日時表記と米国日時表記を意識した正規表現を考えてみた。バグあるかもしれないが備忘録。
英国式の日月年形式に対してはちょっと無理があるが見なかったことにする。
最後の年月日時分秒でpython正規表現では一応はヒットできた。
なんでこんなに面倒なんだろう。。

# 日(day)にヒットする正規表現
“`
‘\\s*(?:[12][0-9]|3[01]|0?[1-9])\\s*?(?:th\\s*)?[日\\-/\\.,]?’
“`

# 月(month)にヒットする正規表現
“`
‘\\s*(?:(?:1[0-2]|0?[1-9])\\s*?[月\\-/\\.,]?|(?:Jan(?:uary|\\.)?|Feb(?:ruary|\\.)?|Mar(?:ch|\\.)?|Apr(?:il|\\.)?|May\\.?|Jun[e|\\.]?|Jul[y|\\.]?|Aug(?:ust|\\.)?|Sep(?:tember|\\.)?|Oct(?:ober|\\.)?|Nov(?:ember|\\.)?|Dec(?:ember|\\.)?)\\s*)’
“`

# 西暦年(y

元記事を表示

ubuntu にsentencepiece をインストールするときつまづいた

# 目次
1. 環境
2. 概要
3. 手順
4. 結果

## 1. 環境
– ec2:ubuntu(18.04.5)
– python:3.7.3

## 2. 概要
ec2インスタンスに python 環境を構築し、sentencepiece を入れようとしたところ若干つまづいた。

“`
~$ pip install sentencepiece
Collecting sentencepiece
Using cached https://files.pythonhosted.org/packages/72/e0/57edbab017a204e9f39448c1717292437a45b5f7cf3a9dbf4a9c026b03c5/sentencepiece-0.1.94.tar.gz
Installing collected packages: sentencepiece
Running setup.py install for sentencepiece … error
Complete output from command /home/ubuntu/

元記事を表示

EC2(ubuntu) に pyenv で python 環境構築

# 目次
1. 環境確認
2. 手順確認

## 1. 環境確認
– os:ubuntu(18.04.5)
– ec2インスタンスタイプ:t2.micro

## 2. 手順確認
### 2.1 依存関係のインストール
“`
sudo apt-get install git gcc make openssl zlib1g-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
“`
### 2.2 pyenv をクローン
“`
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
“`

### 2.3 .bashrc に以下を記述
“`
export PYENV_ROOT=”${HOME}/.pyenv”
if [ -d “${PYENV_ROOT}” ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval “$(pyenv init -)”
fi
“`

### 2.4 .bashrc を再読み込み
“`
sourc

元記事を表示

行き詰ったから復習してみた

こんばんは(*´ω`)

ありますよね、そんな事も、人間だもの。
そんな時は御参りをしたり、散歩したり、
あとは理解したことを整理します。

今までやったことは身についてるのでしょうか??(笑)

パソコンに向かって書こうとしても
行き詰った負のイメージしか湧いてこないので、
取りあえず、手書きしてみました。
スタックでも実装してみます。

何も見ないで、やってみましたが、
最初は手が動かなくて途方に暮れます(笑)
でも、幹の部分だけでもいいので
書いて、PC に取り込んで動かしてみます。
足りない所、どうすればコードを昇華させられるか
考えて変更してみます。

ある程度、煮詰めた後に問題ないか整理してみました。
![IMG_0036.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/74478b92-14af-4c3d-46a1-45b3170d3568.jpeg)
**ざっくり仕様**
**1.user interface は 3択 (push/pop/end)**
**2.例外処理を盛り

元記事を表示

スクレイピングしてみた

はじめまして
山田長政です。
言葉を調べるプログラムをスクレイピングのやつを使って作れないかやってみました
google colaboratoryでやりました
https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja
#目的
pythonを使って言葉の意味を検索するプログラムを作る
#こんなかんじの仕組み
input➡スクレイピングするやつで情報をオンライン辞書でとる➡表示する
#使うオンライン辞書
![1C5E273B-9F1A-4C57-9270-162562B6628E.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/795753/2ceb6a44-4aae-56fd-4375-fbd88bb730ae.png)

#プログラム

“`ruby:
from bs4 import BeautifulSoup
import urllib
import urllib.parse
#うえのはにほんごをエンコードするやつ
g=input(

元記事を表示

厚生労働省のインフルエンザの発生状況についてのPDFをデータラングリング

# はじめに

+ [厚労省発表 都道府県別インフルエンザ報告数をCSV/JSONでチェックする 112行の変換プログラム](https://fukuno.jig.jp/3022)を参考にしました

# インストール

“`shell
pip install camelot
pip install pandas
pip install requests
pip install beautifulsoup4
pip install matplotlib
pip install japanize-matplotlib
“`
# プログラム

“`python
import csv
import datetime
import pathlib
import re
from urllib.parse import urljoin

import camelot
import pandas as pd
import requests
from bs4 import BeautifulSoup
from pdfminer.high_level import extract_text

def

元記事を表示

Pandas100本ノックで使ったものまとめ(#1~#32)

## はじめに
大学で**機械学習**を勉強しています。復習もかねて**Pandas100本ノック**に挑戦させていただきました。
使った関数?をまとめていきたいと思います。

## Pandas100本ノック

詳細はこちら
[Python初学者のためのPandas100本ノック](https://qiita.com/kunishou/items/bd5fad9a334f4f5be51c)

## Pandas基礎(1 ~ 13)

### #1 DataFrameの最初の5行を表示

“`Python
df.head()
“`
####表示させたい行数を指定する場合
例:10行

“`Python
df.head(10)
“`

### #2 最後の5行を表示
“`Python
df.tail()
“`

### #5 dfの’fare’を昇順に並べ替えして表示
“`Python
df.sort_values(‘fare’)
“`

**ascending=False**を指定することで降順で並べ替え

## データ抽出(14 ~ 32)

### #18 locを

元記事を表示

PythonでPDFからOCR

#1.はじめに
素晴らしい先人達の真似をしてPythonでPDFからOCRするコードを書いてみた。
とを使います。
やってることは、PDFをpopplerでjpg化してからTesseract OCRでtxtファイルに文字起こし

初心者なので、コードに変なところあればコメに指摘もらえると嬉しいです。
引用していないサイトも、たくさん参考にさせていただきました。ありがとうございます。

#2.概要

こちらのサイトを参考に、フォルダ構成を以下の通りにしました。
[PythonでPDFを画像ファイル(JPEG、PNG)に変換する方法](https://gammasoft.jp/blog/convert-pdf-to-image-by-python/)

|親フォルダ|子フォルダ|
|:—|:—|
|¥カレント|¥image_file|
||¥pdf_file|
||¥poppler|
||¥txt_file|

※まずはフォルダにある古いファイルを削除

“`python
import os
import pathlib
from pathlib import Path
from

元記事を表示

Paiza Python入門編8 : クラスを理解しよう

PaizaでPython3が完全無料なのでまとめました。

[Paiza Python3入門編](https://paiza.jp/works/python3/primer)

## 01:クラスを理解しよう

### オブジェクトとは

簡単に言えば、変数と関数をセットしたもの

Playerオブジェクト

– 変数

“`
名前=”paiza”
職業=”魔法使い”
体力=”120″
“`

– 関数

“`
攻撃処理()
移動処理()
“`

オブジェクトにまとめられている関数→メソッド

### オブジェクトの使い方

– クラスからオブジェクトを作って利用
– クラス:オブジェクトの設計図
– オブジェクト:クラスから生成する

Plyaerクラス

“`
name
attack()
“`

Plyaerクラスから、Plyaerオブジェクトを生成

“`
name=”paiza”
attack()

name=”python”
attack()

name=”dragon”
attack()
“`

クラスから作成したオブジェクトのことをインスタンスという

元記事を表示

Pythonで多重forループを避ける簡単な手法

#はじめに
プログラミングにおいて**多重forループ(ネスト)**はもっとも避けたい処理のうちの1つだと思います。一か月ほど前に「[なぜ我々は頑なにforを避けるのか](https://qiita.com/tetsuya-zama/items/11e19b9da4892eb365c4)」という記事がバズっており、2020/11/3現在で1000以上のLGTMが付いていることからも、多くの人はforループをあまり使いたくないのではないでしょうか。
Pythonには簡単に多重forループを避けることができる手法がいくつか存在するので、自分がよく使うものをまとめてみました。他にもあれば、ぜひコメントで教えてください。

#そもそも、なぜ多重forループを避けたいのか
人それぞれいろんな理由があると思いますが(上記の記事にも色々詳しく考察されています)、個人的には以下の2点です。
###1. 読みづらい

多重forループの例題として、3桁それぞれで0~9のfor文を回すことで0~999を全探索して、500以上かつゾロ目である数字を探すプログラムを書いてみます。(適当)
3重forループだけ

元記事を表示

音楽チャートをスクレイピングした(ほぼ日記)

ただコードをおいておくためだけに。

“`{python}
import pandas as pd
import time
from selenium import webdriver
from datetime import date
from datetime import timedelta

driver = webdriver.Chrome(“****/chromedriver”)
driver.implicitly_wait(30)

url = “http://www.billboard-japan.com/charts/detail?a=sales&”
data = pd.DataFrame(columns = [“year”, “title”, “artist”, “num”])
for i in range(60):
d = date(2020, 10, 5) – timedelta(days = 28*i)
day = d.strftime(“year=%Y&month=%m&day=”) + str(int(d.strftime(“%d”)))
d

元記事を表示

pythonによる機械学習(1) 全体的分類

備忘録として学習した内容を記していきます。

#(1)AIと機械学習、ディープラーニングの関係性について

AIとはArtificial Intelligence(人工知能)の略であり、人間のような情報を処理を行えるようにしたもの(簡単にいうならロボット)

知覚情報や与えられた情報を数値化し、それを処理するものが機械学習。つまりAIをAIたらしめるものにするのが機械学習。

機械学習の中にディープラーニングなどの手法がある。

したがって大まかに言えばAI(人工知能)<機械学習<ディープラーニング。 #(2)機械学習の種類について 機械学習には様々な手法があり行いたいものによって使い分けが必要です。 主に3つに分けることができます。 ###教師あり学習 教師あり学習とは学習するデータが既に存在しており、そのデータを解析した結果を用いて未知の値を評価するものです。 例えば、季節によるアイスクリームの売り上げ予想(来月はどのくらい売れるか、など) 一番身近なものかと思います。 教師あり学習はまた「回帰」「分類」が代表的です。 ・回帰:先ほどのアイククリームの

元記事を表示

OTHERカテゴリの最新記事