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

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

【Python】文字列と数値(asciiコード)の変換まとめ

# はじめに
自分向けにPythonでの文字とasciiコードの計算方法をまとめました。
AtCoder上のPython3.4.3で動作確認済みです。

# 変換方法
`ord(‘文字’)` と `chr(数値)` で相互に変換できます。

“`python
s = ‘A’

ord_s = ord(s)
print(ord_s) # 65

chr_s = chr(ord_s)
print(chr_s) # A
“`

# 変換表
まとめとしてasciiコードと文字の対応表を記載します。
なお、以下の表の`asciiコード`という項目は10進数での表記を表しています。

## 重要な変換ピックアップ
|asciiコード|16進数|文字|
|:–:|:—-:|:-:|
| 48 | 0x30 | 0 |
| 57 | 0x39 | 9 |
| …| … |…|
| 65 | 0x41 | A |
| 90 | 0x5a | Z |
| …| … |…|
| 97 | 0x61 | a |
| 122 | 0x7a | z |

例えば、大文字と

元記事を表示

【Python】Executor,Futureクラスについて

#本稿について
Pythonバージョン3.2から追加された,[concurrent.futures](https://docs.python.org/ja/3/library/concurrent.futures.html#module-concurrent.futures)モジュールの使い方を備忘録としてまとめる.

`concurrent.futures`モジュールは結論から言ってしまえば,マルチスレッド,マルチプロセス両方のインターフェースを提供する.

#どんな場面で使われるか?

Q. 並行問題に対して,非同期アプリケーションに合わない場合やどうしていいかわからない場合には,どうするか?

A. 問題対象となる部分の処理をスレッドあるいはプロセスに委譲します.委譲した処理をコルーチンのように見せかけて,制御をイベントループに解放し,最終的な結果を処理します.

このAを実現するために用意されたのが `concurrent.future` モジュールです.

#なにができるのか?

`concurrent.future` モジュールは `asycio` モジュールにも統合され

元記事を表示

Pythonプログラム用のショートカットをつくる(Windows10)

## きっかけ

アカネチャンカワイイヤッターがしたくて,単純なタイマーをpythonで作った.

しかし実行するのに,いちいちコマンドから`cd wo

元記事を表示

Jupyter Notebook マジックコマンド自分的まとめ

### 前提条件
– macOS Catalina 10.15.1
– anaconda 4.17.12
– jupyter-notebook 5.0.0
– Python 3.6.9

### マジックコマンドとは

マジックコマンド(Magic Commands)は、IPythonのカーネルから提供される仕組み。Notebookの動作に関連した機能のほか、ディレクトリ移動やファイル一覧を表示するなどのユーティリティ的な機能を提供する。

### マジックコマンドの基本

先頭に“%“を入力して続けてコマンドを入力する。現在のディレクトリを出力するコマンドは次のようになる。

“`
%pwd
“`

マジックコマンドの“%pwd“は、シェルを利用した“!pwd“と違いがないようにも見えるが、“!“を利用したコマンド実行はOSのシェルに依存するのに対し、マジックコマンドはIPythonカーネルから提供される機能に依存。

マジックコマンドが何らかの値を変える場合、Pythonの関数を呼び出した場合と同様、戻り値を変数に代入できる。

“`python
curr_d

元記事を表示

気象×Python 〜気象データ取得からスペクトル解析まで〜

これまでの記事で[気象庁のデータ](https://www.jma.go.jp/jma/menu/menureport.html)の扱い方をいくらか取り上げてきましたが、また違ったデータ取得方法(現状、この方法が一番効率的)を実践し、取得したデータの解析も軽くしていこうと思います。

<過去の記事>
>・気象×Python 〜AMeDASの地点データ自動取得〜
https://qiita.com/OSAKO/items/264c77b70843045bc12b
・気象×Python 〜AMeDASの地点データ自動取得(番外編)〜
https://qiita.com/OSAKO/items/505ecee67df424963e53
・気象×Ruby 〜Mechanizeを使ってRubyスクレイピング〜
https://qiita.com/OSAKO/items/3c1cac0b5448be9ab243

#1. クローリング
▶以下のような表形式で埋め込まれている数値 or 文字列を一気に取得したい。(例:東京における2019年1月の1日データ)
![image.png](https:/

元記事を表示

TISさんが作成した企業分析用データセット「CoARiJ」で遊んでみる①

# CoARiJとは
> 「CoARiJ」は、有価証券報告書やCSR報告書、統合報告書の記載内容(事業概要や財務情報等)と、数値情報(株価およびTOPIX等の指数)をまとめたデータセットです。

https://www.tis.co.jp/news/2019/tis_news/20191114_1.html

## github
https://github.com/chakki-works/CoARiJ/blob/master/README.md

# 非財務情報の重要性
ESGをはじめとした非財務情報の活用がこれからの投資判断には必要

## 伊藤レポート
>投資判断において企業の持続可能性(Sustainability)やリスクを評価するために「ESG (環境・社会・ガバナンス」等の非財務情報を組み込むことが大きな論点となっている。

>MiFIFⅡ等により、アナリストのリサーチが激しく評価され、淘汰圧力が高まる中で、非財務情報をベースとして投資家が必要とする情報を提供するアナリストのみが生き残れるといった意見も示された。

https://www.meti.go.jp/pres

元記事を表示

GBDTライブラリ:CatBoostで燃費予測(回帰)をやってみた

GBDT(Gradient Boosting Decision Trees)なライブラリであるXGBoost, lightGBMと並んで使われることがある[CatBoost](https://catboost.ai/)を最近まで知らなかったので、回帰タスクで動かしてみました。

## CatBoost?

公式サイトの紹介文を貼ります。(Google翻訳したもの)

“`
CatBoostは、決定木の勾配ブースティングのアルゴリズムです。
Yandexの研究者およびエンジニアによって開発され、
検索、推奨システム、パーソナルアシスタント、自動運転車、天気予報、およびYandexやCERN、Cloudflare、Careemタクシーなどの他社の多くのタスクに使用されます。
“`

## 参考にさせていただいた記事
– [回帰:燃費を予測する](https://www.tensorflow.org/tutorials/keras/regression?hl=ja)
– [House Prices Regression Using CatBoost](https://www.kaggle

元記事を表示

【Python】NumPyを使った行列の乗算処理時間

# NumPyとは
皆様も御存知の通り、Pythonは機械学習やAI分野に強いプログラミング言語です。
その理由は数学系の学術ライブラリの潤沢さにあります。
NumPyはその代表格とも言えるPythonのライブラリです。

# NumPyを使って行列計算(乗算)
行列の乗算をNumPyを使って処理してみようと思います。
人間の手計算では正方行列3*3でも苦労すると思います。
ここでは100*100を処理した時間を計測したいと思います。

“`python
# NumPyをインポート
import numpy as np
import time
from numpy.random import rand

# 行列 100*100を指定
N = 100

# 行列を初期化、乱数を発生させる
matA = np.array(rand(N, N))
matB = np.array(rand(N, N))
matC = np.array([[0] * N for _ in range(N)])

# 開始時間を取得
start = time.time()

# 行列乗算を実行
matC

元記事を表示

pypyodbcを使って手っ取り早くAS/400からデータを取得してみた 仕込編1

前回の記事、[pypyodbcを使って手っ取り早くAS/400からデータを取得してみた](https://qiita.com/KG_dash/items/fad9a443130b1a4f0c73)でIBMi へのODBC接続ができるようになってので、いろいろやりたいことが出てきたのですが、考えてみたら仕込みが必要なので、今回その辺を作成してみました。

「その1」となっているのは、まだ道半ばで、入力部分の処理だけしか出来てないからです。
出力の方は実機がないと検証が難しいので、今回はパスしています。

# 実験環境
* Windows7 (今回は実際の接続は行わない部分なので、自宅PCで検証)
* Python 3.8
* ipyhon 7.9.0 (いろいろ検証するために使用)

# ヘルパーモジュール
後で使い倒したろうと考え、”sql_helper.py”というファイル(モジュール)にいろいろなものを詰め込んでいきます。パッケージを探せば見つかりそうな基本的な機能ですが、Pythonの復習をかねて車輪を再発明してみました。

今のところはこんな感じ。

“`python:sq

元記事を表示

Pythonのsocketとsslでサーバを作りブラウザからアクセスさせてみた

HTTPSクライアントの動作確認を行う時などで、ダメなHTTPヘッダとか文法的にNGなHTMLあるいは文法的にNGなJavaScriptを相手に送り返したいというのが目的で作りました。

* sslのwrap_socketを使っています
* Web系のフレームワークとかではないので、ヘッダとかボディはまぁ好き勝手にやれます。

環境としては以下の感じです。

* 確認はオレオレ認証でやりました
* Ubuntu 18-04、Python 3.7.3 で動作を確認しました。
* Windows10のFireFoxとChromeで動作確認しています。あとSafari系も多分動くとは思います。

## 証明書関係

opensslを使ってやります。

オレオレでとにかくSSLしてくれさえすりゃいいってんでしたら、以下にやり方が書いてあります(参考にさせて頂きました。ありがとうございます)

https://qiita.com/masakielastic/items/05cd6a36bb6fb10fccf6

https://stackoverflow.com/a/41366949/53132

元記事を表示

Colab使って、画像の真偽をDNNに学習させてみるまで

# はじめに
Colaboratoryで、画像の真偽を学習してみようと思ったが、いろんなところに情報があって集めるのが大変だった。そこで、もう**完成したものをそのまま貼り付けよう**と思った。
Pythonなんとなくわかる人向けです。

ドンッ
https://colab.research.google.com/drive/1ETjxVKCA3zv391tEAY5RHM_cyipIA9D-?hl=ja

そのまま使える人はいないと思いますが、誰かの参考になれば。
**Jupyter-notebookとかPythonとか詳しくない状態で作ったので、なんか指摘も来るといいな。**

# やりたかったこと
私がやりたかったことはこれ。

– Colaboratoryを使う
– 画像の真偽を学習させたい
– ディープラーニング
– 訓練データ(画像)はGoogleDriveにある
– 画像は横100px縦150pxのPNGファイル
– 画像はZIPで圧縮してあって、フォルダ構成は下記の通り
– 学習の履歴をグラフで見たいし、そのグラフやモデル情報をGoogleDriv

元記事を表示

AtCoder Beginner Contest 146 参戦記

# AtCoder Beginner Contest 146 参戦記

## A – Can’t Wait for Holiday

2分半で突破. 書くだけ.

“`python
S = input()

if S == ‘SUN’:
print(7)
elif S == ‘MON’:
print(6)
elif S == ‘TUE’:
print(5)
elif S == ‘WED’:
print(4)
elif S == ‘THU’:
print(3)
elif S == ‘FRI’:
print(2)
elif S == ‘SAT’:
print(1)
“`

## B – ROT N

4分半で突破. 書くだけ.

“`python
N = int(input())
S = input()

print(”.join(chr((ord(c) – ord(‘A’) + N) % 26 + ord(‘A’)) for c in S))
“`

## C – Buy an Integer

16分で突破. 一目にぶた

元記事を表示

PythonでPillowを使ってGIFファイルを作る

コンター図をパラパラ漫画みたいにしたGIF動画を作ったので備忘録。
環境はPython 3.6.8

## matplotlib.animation

matplotlib.animationで動くグラフは作れるみたい。

GIFファイルとして保存するにはwriterにimagemagickを使うのが普通の様子。

## imagemagick

windowsにインストールする場合、ちょっと面倒な様子。

インストールしようとして参考にさせていただいたページ。
https://higuma.github.io/2016/08/31/imagemagick-1/

## PythonのライブラリPillow

Pillowについて参考にさせていただいたサイト。

インストールとか
https://note.nkmk.me/python-pillow-basic/

GIFの作り方
https://note.nkmk.me/python-pillow-gif/

## 作ってみる

“`python:import_lib.py

import pandas as pd
impor

元記事を表示

PHPがメインの経験者が、Pythonを始めて5日目の話(selenium)PHP vs Python

#はじめに
今回はseleniumを使用してChromeブラウザをコントロールしてWEBのサービスに保存されているファイルをダウンロードするのが目的です。もう一点の重要な目的はPHPとPythonで同じダウンロードを行い、結果の比較をしたいと思います。ダウンロードはWEBメールの添付ファイルが最初の目的でしたが、Slack や Facebook Cybozu 等、現在はPHPのコードで大体可能です。この話を聞いた某編集者がハッキングだと言われましたが、普通に自分でログインしてダウンロードするのと基本的に変わりませんので、堂々とやって良い処理です。以下、PHPだと selenium-webdriverを利用する事になる訳で、今になりPythonの場合と比較して複雑に感じます。PHPで動かす場合には次の記事を参考にさせていただきました。この記事にあるように準備が色々とあります。「[seleniumを使ってPHPでChromeの自動操作をする](https://qiita.com/Rasukarusan/items/0ca204d5b0f0fb876252)」その準備を終えて、seleniu

元記事を表示

pythonでgifの読み込み・表示と高速化【OpenCV】

完全にメモです。。
職業柄よく使う気がして(?)

# 読み込み

## scikit-video バージョン

– 安全策ならこう

“`python
from skvideo.io import vread
gif = vread(“sample.gif”)
# print(gif.shape) # => (例): (21, 600, 600, 3)
“`

– でもこれは遅いので↓のほうがいいと思う

## OpenCV バージョン

– 速い

“`python
import cv2
import numpy as np

# faster than `vread` in `skvideo.io`
def vread(path, T=30):
cap = cv2.VideoCapture(path)
gif = [cap.read()[1][:,:,::-1] for i in range(T)]
gif = np.array(gif)
cap.release()
return gif

gif = vread(“sample.gi

元記事を表示

Twitterスクレイピング&データフレーム化

##なぜこの記事を書いたか
twitter感情分析に必要なデータの準備、すなわち
「**(1)PythonでTwitterスクレイピング**⇨**(2)スクレイピング結果をデータフレームとして出力**」をシームレスに解説している記事がなかったからです。

「Twiiterスクレイピング」や「Pythonで感情分析(ネガポジ分析)」、「データフレーム」はそれぞれポピュラーなテーマなので単体ではよく解説記事を見かけます。しかし**どれも部分的で、当時初心者レベルの自分には痒いところに手が届かず**、中々苦労しました。

##本記事の内容
本記事のコードをコピペすればそのまま任意のキーワードやユーザーからツイートを取得、データフレームとして出力が出来ます。ただし、TwiiterAPIを取得していることが前提です。

##注意点
**・スクレイピングはTwiiter社の規約に則って行いましょう(このコードだと多分問題ないと思うのですが・・・。問題あれば是非ご指摘ください)**
**・twitterAPIの制限で1週間前までのツイートしか取得できません**
・本記事ではTwitterAPI登録

元記事を表示

【unix】ゾンビプロセス・孤児プロセスって何。

自分の記録用

## 環境
さくらレンタルサーバー
Flask 1.1.1
Werkzeug 0.16.0

## やりたいこと
クライアントからリクエストがあった際に、

– 親プロセス
– forkで子プロセスを生成
– クライアントに、responseを返す
– 子の終了を待たずに、消滅
– 子プロセス
– クライアントから渡された処理を行う
– 処理終了後、消滅

## 疑問点
親が先死ぬとゾンビだ孤児だが出ちゃって邪魔らしい?
double fork?みたいなことしなきゃいけないらしい?
といった記述があったので、実際に調べてみた。

## 結果

### ゾンビプロセスとは
処理の終了した子プロセスで、親プロセスのwaitを待っている状態のプロセス。
子プロセスがforkされた段階でプロセステーブルに子プロセスが追加され、親プロセスのwaitをもって子プロセスはプロセステーブルから削除される。
つまり、処理は終了しているが親にwaitで引き取られていないプロセスのこと。

### 孤児プロセスとは
親プロセスが先に終了してしまい

元記事を表示

リングフィットアドベンチャーを買いたかった話

# 背景
みなさん運動してますか?
引きこもりにはもってこいの[リングフィットアドベンチャー](https://www.nintendo.co.jp/ring/)が最近任天堂から発売されました!!
私も買いたかったのですが、どこも品切れらしくて辛いです。かと言って、メルカリとかヤフオクで転売ヤーから高値で買うのも腹立つので、なんとか正規ルートで買おうと頑張ってみました。

# やったこと
色々ググってるとどうも時々通販で、商品が入荷され在庫が復活するということを聞きました。ただ、ずっと通販サイトの前で張り付いているわけには行かないので、在庫が復活したら通知してくれないかなーと考えていました。
そこで、[こういう便利なサイト](https://www.net-zaiko.com/item/4902370543278)をつかって、ここで在庫が復活していたらLineで通知するアプリを作りました。

成果物はこちら!
https://github.com/aitaro/inventory-notification

ちなみにitemcodeを変えたら他の商品でも使えます。

# 環境構築

元記事を表示

VScode+Pyrightで新しめのPython文法の混入を防ぐ

# Pyrightって何?
![PyrightLarge.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/40987/374bdfc1-e722-6273-2882-5e891949118d.png)

[Pyright](https://github.com/microsoft/pyright)はMicrosoft謹製のPython向け静的解析ツールです。
もともと型チェックが得意な同ツールですが、型チェックの他にもコード内に意図せず未サポートの文法(Python 3.8の[セイウチ演算子](https://qiita.com/Nipper1357/items/446923f67e03d646be36)など)が使われていないかチェックする機能も備えています。
このチェック機能があれば、*Python 3.8の新機能盛り沢山のコードを配布したら配布先で動かなかった!(Python 3.4 (2014年) のままだった)*、といったトラブルを未然に防ぐことができます。
このようにPyrightは型チェックだ

元記事を表示

Atcoderで累積和が出てきたのでこれを機にちょっと勉強する

# 累積和とは
サイズNの配列があって、ある区間iからjまでの和$(0<=i

元記事を表示

OTHERカテゴリの最新記事