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

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

【自動化】PDF内の表をPythonで抜き出す

## PDFは扱いにくい

PDFファイルをPythonで扱うのは大変です。

表がPDFの中に埋め込まれているケースも割とあります。

例えば

[平成30年 全衛連ストレスチェックサービス実施結果報告書](http://www.zeneiren.or.jp/cgi-bin/pdfdata/20190925114437.pdf)の中にはたくさんの表データが埋め込まれています。

例えばファイルの40ページの【表14 業種別高ストレス者の割合】を抜き出したいと思ったとします。

この表を選択して、Excelにコピペしてみましょう。
![pdf_table_copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634673/bba3b6a4-05f7-b6f1-8a1a-2b6721b4d118.png)

コピーして、Excelに貼り付けます。

![pdf_copy2excel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

mac(Catalina)にOpenPoseをインストール

OpenPoseをMac(macOS Catalina, 10.15.5)で動かそうとしたとき、各ツールのバージョンを指定してインストールすることで動作まで辿り着けたので、そのメモ。

# OpenPoseとは
[OpenPoseとは | ディープラーニングで人のポーズを解析](https://ledge.ai/openpose/)
スクリーンショット 2020-06-28 10.26.37.png
>[[arXiv]OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields](https://arxiv.org/abs/1812.08008)
>[[GitHub]openpose](https://github.com/

元記事を表示

(自分用)Flask_AWS_1(AWS仮想環境にPHP,MySQL,phpMyAdmin,Pythonのインストール)

# 項目
1. PHPのインストール
2. MySQLのインストール
3. PHPMyAdminのインストール
4. Pythonのインストール

# 1.PHPのインストール
“`bash:ターミナル
# まずLinux仮想マシンに接続、ここを覚えてないなら1つ前のやつを見て
$ ssh -i ~/.ssh/FirstKey.pem ec2-user@(パブリックIP)

# 管理者権限に変更
$$ sudo su

# PHPをインストール
$$ yum install -y php

# PHPの設定を変える前にバックアップを取っておく
$$ cp /etc/php.ini /etc/php.bak

# viでPHPの設定変更
$$ vi /etc/php.ini
“`

– `:set number`で行番号を表示
– `:520`で520行目に移動
– `i`にて記述モードにし、`error_reporting = E_ALL & ~E_DEPRECATED`という行を、`error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTI

元記事を表示

Deep Learning Specialization (Coursera) 自習記録 (C4W1)

# はじめに
[Deep Learning Specialization](https://www.coursera.org/specializations/deep-learning) の Course 4, Week 1 (C4W1) の内容です。

# (C4W1L01) Computer Vision
## 内容
– 64 $\times$ 64 の画像の場合,データ数は $64 \times 64 \times 3 = 12288$ になる (RGB を考慮)
– 1000 $\times$ 1000 の画像の場合,300 万になる
– サイズの問題を解決するために,convolution を導入する
– convolution は computer vision 以外にも役立つ (かもしれない)

# (C4W1L02) Edge Detection Example
## 内容
– Computer vision problem では,エッジ → 部分 → 全体,の順で認識していく
– Vertical Edge Detection の場合は,下記の 3 $\times$

元記事を表示

Ruby と Python で解く AtCoder ABC172 C 累積和 二分探索

# はじめに
*[AtCoder Beginner Contest 172](https://atcoder.jp/contests/abc172)* に参加しました。
AtCoder さん、AtCoder Problems さん、ありがとうございます。

# 今回のお題
*[AtCoder Beginner Contest C – Tsundoku](https://atcoder.jp/contests/abc172/tasks/abc172_c)*
Difficulty: 878

今回のテーマ、累積和 + 二分探索

最初は、動的計画法と考え解いていましたが`TLE`を貰い~~大幅な時間のロス~~、二分探索に切り替えました。
入力例1ですと、次の表の各行で、机Aと机Bの累積和がK分を超えない本数の最大値を求めます。

|1|2|3|4|5|6|7|
|:–:|:–:|:–:|:–:|:–:|:–:|:–:|
|60|90|120|80|150|80|150|
|60|90|80|150|80|150|
|60|

元記事を表示

[Google Colab] 複数の画像をタイル状に並べて表示したい

Google Colaboratory で画像系の処理を行う際、複数の画像を表示して比較したいときがあります。単純にループの中で一枚一枚表示させると縦にスペースを使いスクロールが大変なので、なるべく横に並べてスペースを有効活用したい。

確認はしてませんが、Jupyter Lab/Notebookでも動作するかもです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599028/6ae2f3f6-db6a-2947-70f0-9a1418d1f16b.png)

# Numpy.ndarrayとして読み込んだ画像の一括表示

## 必要パケージのインポート(コピペ用)

“`python
import matplotlib.pyplot as plt
“`

## 関数として定義(コピペ用)

“`python
def show_images(images, figsize=(20,10), columns = 5):
plt.figure(figsize=figsize)

元記事を表示

Pythonのprint関数で文字を表のように出力する方法

#Pythonのprint関数で文字を表のように出力する方法

##はじめに

問題集などでよく見る(N M)と数字が与えられて、
出力結果をN行×M列の何らかの文字列で求められる際の解法。

例)星取表、九九の掛け算表など

##求めるもの
“`
& + + + +
+ & + + +
+ + & + +
+ + + & +
+ + + + &

“`

##入力
“`
N M
“`

##コードと解説
“`
import numpy as np

#(N M)= (5 5)の形で入力があると仮定する
n, m = input().split()
n, m = int(n), int(m)

#N行M列の二次元配列を作成する(今回は全て0の配列とした)
hyou = np.zeros((n,m))

#星取表などで表示する文字列が複数ある場合は、「その部分の配列の数字」を1,2,3…と場合分けして入れ替えていく
#今回は行と列の数字が同じ際に1を入れるだけのシンプルなやつ

for i in range(n):

for j in range(m)

元記事を表示

Pythonを33文字でセグフォらせる

[pythonを三行でセグフォらせる](https://qiita.com/autotaker1984/items/a8ba955acdc81c907b3d)
[pythonを2行でセグフォらせる](https://qiita.com/sh1ma/items/a6dd1bcca0d9725e7e67)
[pythonを1行でセグフォらせる](https://qiita.com/MysteriousMonkey/items/0e389ccdc12988dd4263)

“`python
__import__(“ctypes”).memset(1,1,1)
“`

![スクリーンショット 2020-06-28 8.25.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238091/fa3cb080-c1bf-4422-51d3-2eeba0c5b906.png)

最短なのかどうかは確認していないので、みなさんもPythonセグフォコードゴルフしてみてください

※6/28追記
記録が33文字になり

元記事を表示

Creating a highly accurate 3D image easily with one photo! (You can now edit the depth in PNG.)[1-E]

#Overview
**One photo**
**Highly accurate 3D image ↓ Easy creation**.

(↓ This is also an example of PNG editing. It does not mean anything at all, but this pizza sharply processed the depth PNG. There is a part where the image is accidentally dragged, but due to the nature of the image of pizza, it can be hidden well…)

ど素人がPython 3 エンジニア認定基礎試験に合格した方法

#資格を取得した背景
去年までIT業界以外の分野で働いていました。
#成績
![20200628_041422.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577830/272828e4-4708-d321-d687-0ddd878c3a90.jpeg)

新宿で受けて、
試験自体は20分程度で終わりました。
試験結果は画面に速攻で出てきました。

#勉強法(主に3つ!)
##①atcoder(競技アルゴリズムコンテスト)
**コードをただ書くだと本当に続かない**ので友達に聞いたサイトで問題を解きながらpythonの文法を覚えました。
下記のリンクでAtCoder Beginner Contest で無料で勉強できます。アカウントは必要
[リンク]https://kenkoooo.com/atcoder/#/table/
下記が答えです。コードを一旦、試したいときはコードテストで実行してみましょう。
PCとネット環境さえあればOK!
下記が問題A108の答え

“`
a,b = map(int,i

元記事を表示

子のファイル最終更新日を親ディレクトリの更新日にセットする

# 概要
多量にフォルダ分けされたファイルを管理する際に、フォルダ直下の最新ファイルの更新日が設定してあるとWindowsでソートする場合などで有用なので書いてみました。
1つ作っておけば、分類フォルダを見た時に途方に暮れることもなくなるかも?

# ソース
“`py
import os
from pathlib import Path

#現在のパス直下を基準にディレクトリを探し、そのディレクトリ以下にあるファイル最新更新日を適用
p = Path(“./”)
for d in list(p.glob(‘*’)):
if d.is_dir :
filedts = []
for filep in list(d.glob(‘*’)):
filedts.append((filep.stat()).st_mtime)
filedts.sort(reverse=True)
if len(filedts) > 0 :
print(d.name + ‘ ‘ + str(file

元記事を表示

効果検証入門 3章をPythonで書く

# はじめに

[効果検証入門 ~正しい比較のための因果推論/計量経済学の基礎](https://gihyo.jp/book/2020/978-4-297-11117-5)内のソースコードをPythonで再現します。

既に[素晴らしい先人の実装例](https://qiita.com/nekoumei/items/648726e89d05cba6f432)がありますが、自分の勉強用のメモとして残しておきます。

この記事では、3章について記載します。
コードは、[github](https://github.com/calderarie/cibook-python)にも掲載しています。
なお、変数名や処理内容は、基本的に書籍内に寄せて実装します。

# ロジスティック回帰

ロジスティック回帰の実装は、scikit-learnでもstatsmodelsでも可能。

## scikit-learn

scikit-learnは、ダミー化の必要あり。

“`python:sklearnのロジスティック回帰
from sklearn.linear_model import Logist

元記事を表示

【Homology】Pythonでデータの中の穴の数を数える


title: 【Homology】Pythonでデータの中の穴の数を数える
tags: Python jupyternotebook Homology 位相的データ解析
author: Amefurase
slide: false

Jupyter Notebookはプログラムを書きながら、途中途中で計算結果を確認できる便利なツールです。
またGoogle Colaboratoryを使うことで自分の環境に関わらず、計算できるのも利点です。

昨今話題のデータ解析の1つの手法として、位相的データ解析というものがあります。
これはデータを形として捉えて、その中に穴などの特徴がいくつあるか数える解析手法です。
始めに位相的と名前にあるように、位相幾何学(Topology)について説明します。

# Topologyとは?
wikipediaでは「トポロジーは、何らかの形(かたち。あるいは「空間」)を連続変形(伸ばしたり曲げたりすることはするが切ったり貼ったりはしないこと)しても保たれる性質(位相的性質または位相不変量)に焦点を当てたものである。」とされている。

Topolog

元記事を表示

モンテカルロ法による各言語の速度比較

#はじめに

[モンテカルロ法](https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%AB%E3%83%AB%E3%83%AD%E6%B3%95)
モンテカルロ法を使用して各言語で円周率を求めることにより各言語の速度比較を行います。
モンテカルロ法とは、1.0>=x>=0, 1.0>=y>=0に任意の(乱数の)点を落とし、その落とされた点が原点(0,0)からの円内に落ちたものと、円外に落ちたものの比を求め、その比が円周率になるというものです。
もちろん、計算で求められた円周率に近似するものの、正確な値はでませんが、プログラミング言語で実装することには意味があると思っています。
理由としては、
・浮動小数点計算の速度が比較できる。
・Loop速度が比較できる。
・メモリの使用は少量であり、ページングは(おそらく)発生しない。
・DiskIOが発生しないため、外部記憶装置の影響を受けにくい。
・正解の円周率は既知の情報であり、デバッグが楽。
などがあります。

各言語ソース
#perl

perlは今まで試した中で

元記事を表示

foliumの基本的な使い方とオープンデータ活用

※ 初投稿になりますので、変な日本語や知識不足があるかもしれませんがご了承ください。

# はじめに

Pythonでデータ可視化といえば`Matplotlib`や`pandas`など代表的なライブラリを使ってグラフプロットすると思います。
実際はデータによりけりですが、オープンデータ(特に緯度経度が含まれているデータ)を可視化するとなると[QGIS](https://www.qgis.org/ja/site/)や[MANDARA](http://ktgis.net/mandara/)などのGIS(地理情報システム)ソフト、[GeoPandas](https://geopandas.org/)といったPythonのライブラリが挙げられます。

これらのソフトやライブラリは非常に使い勝手が良いのですが、`.shp`や`.gml`といったファイル形式やレイヤー管理といったGISの知識が多少なりとも持ち合わせていないと苦戦してしまう部分があります。

そこで、緯度経度が含まれているデータをPythonで簡単に地図上にプロットしたい、簡単に傾向を見たいと思って調べてみた結果、`folium`

元記事を表示

特定のツイートをいいねしたらSlackに自動送信するPythonスクリプト

#はじめに
Twitterで論文紹介など研究関連のツイートを見つけたら,とりあえずいいねした後,研究室のSlackで共有するというのをよくやります.
「いいねする→URLコピー→Slackに投稿」
という操作すら面倒臭く感じる体になってしまったので,「退屈なことはPythonにやらせよう」という名言に肖って自動化しました.各種APIやHerokuを使ってみたかったというちゃんとした理由もあります.

もっといい書き方や実装方法あったらぜひコメントください!

GitHub:https://github.com/takaya901/likes2slack

#実行例
Screen Shot 2020-06-27 at 23.59.12.jpg

#仕様
本当はいいねした瞬間に投稿するようにしたくて,[こちらのブログ

元記事を表示

API Gateway + LambdaでS3にある画像を表示

## 概要

* API GatewayとLambdaでS3にある画像を返却する
* クライアント側からは単にURLにアクセスしたら画像が表示されるように見える
* S3をpublicにすることなく画像を表示することができる (限定公開などが可能)
* pythonでの実装

仕様がよく分からずハマったのでメモを残します.

## やること

1. Lambdaの作成
2. API Gatewayの作成

S3は作成済みとします.

## 1. Lambdaの作成

Lambdaを適当な名前で作成します.ここでは`get_image`としました.

また,ランタイムはPython 3.8を選択しました.

![スクリーンショット 2020-06-27 22.24.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401124/77615c8f-9cac-814a-7709-f5702e3b44dc.png)

そして関数コードに![スクリーンショット 2020-06-27 23.07.20.png](

元記事を表示

AtCoder Beginner Contest 172 参戦記

# AtCoder Beginner Contest 172 参戦記

前回はE問題まで20分で行ってF問題を100分考えて駄目だったけど、今回は30分でD問題まで行ってE問題を90分考えたけど駄目だった. そもそもC問題で制限を見ながら計算量の緩和をすることが珍しいのに、2重で緩和しないといけないのってやっぱり ABC C問題にしては難しいような. 前回の阿鼻叫喚の EXCEL 列名C問題でも半分弱解いているのに、今回のC問題は3割弱しか解けていない時点で難しいことは確かなんだけど.

## [ABC172A – Calc](https://atcoder.jp/contests/abc172/tasks/abc172_a)

2分くらい?で突破. コードテストが動かなくて、B問題を書いたあとに提出した. 書くだけ.

“`python
a = int(input())

print(a + a * a + a * a * a)
“`

## [ABC172B – Minor Change](https://atcoder.jp/contests/abc172/tasks/abc

元記事を表示

heroku デプロイメモ

## 準備
### herokuにログイン
““
heroku login
“`

### アプリケーションの作成
“`
heroku create APPNAME
“`

### gitの設定
“`
heroku git:remote -a APPNAME
“`

### buildpacksの設定(Pythonアプリ)

“`
heroku buildpacks:set heroku/python
“`

## デプロイ
### デプロイ
“`
git push heroku master
“`

### アプリケーション起動
“`
heroku open
“`

## その他
### heroku上でコマンド実行
“`
heroku run COMMAND
“`

コマンドの中断: `heroku run:detached COMMAND`

### ログ
“`
heroku logs –t
“`

### アプリケーションの一覧
“`
heroku list
“`

### アプリケーション毎のコマンド実行
“`
heroku COM

元記事を表示

製薬企業研究者がPythonの例外処理についてまとめてみた

# はじめに

ここでは、Pythonの例外処理について解説します。

# 例外処理の基本

例外処理は、プログラムを実行中に何らかのエラーが発生した場合の処理を記述するものです。
`try`と`except`を用いて、以下のように記述します。

“`python
import pandas as pd

try:
df = pd.read_csv(‘sample.csv’)
except FileNotFoundError:
print(‘File not found.’)
“`

`try`に続けてエラー(例外)が発生する可能性のある処理を、`except`に続けてエラーが発生した場合の処理を記述します。
`except`に続けてエラーの種類を書いておくと、指定したエラーが発生した場合に例外処理が実行されます。
ここで示した例では、`FileNotFoundError`(指定されたファイルが見つからないという例外)が発生した場合のみ、`except`節の処理が実行されます。
`except`の直後に何も記述しなかった場合は全てのエラーに対して、`except`

元記事を表示

OTHERカテゴリの最新記事