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

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

DynamoDBをPythonからSQLっぽく操作する。

# set up

“`sh

pip install dql
“`

# code

“`python

import dql
import boto3
import os
table_name=os.environ[‘TABLE_NAME’] # dynamodb

engine = dql.Engine()
c = engine.connect(
region=os.environ[‘AWS_DEFAULT_REGION’],
access_key=os.environ[‘AWS_ACCESS_KEY_ID’],
secret_key=os.environ[‘AWS_SECRET_ACCESS_KEY’],
host=os.environ[‘HOST’],
port=int(os.environ[‘PORT’]),
is_secure=False
)
print(“–scan–“)
results = engine.execute(f”SCAN * FROM {table_name} LIMIT 10”)
for i

元記事を表示

PyGMTの導入

PythonでGMTがつかえるらしいので入れてみる。
https://www.pygmt.org/dev/install.html

# 仮想環境の構築

“`bash:
conda create -n pygmt python=3.8.2
conda activate pygmt
conda install pip numpy pandas xarray netcdf4 packaging gmt
conda install pygmt -c conda-forge
conda install ipython jupyter jupyterlab -c conda-forge
“`

# サンプルテスト
チュートリアルにしたがってすすめる。

“`bash:
conda install pytest pytest-mpl ipython
“`

`python`を起動して、

“`Python:
import pygmt
pygmt.show_versions()
pygmt.test()
“`

返ってきたメッセージ

“`python:
==============

元記事を表示

zsh: command not found: pipが何回も出てきやがる

HomebrewからPython3をインストールしました。これで「pipも同時にインストールできたよ」と記事に書いてあったので、そのままライブラリをインストールしたら `zsh: command not found: pip` が出てきた。いろんな記事を見ても全然なおらん。なんとか海外の記事で解決したのでメモ。

## 解決

原因はよくわからんけど、このコマンドでpipをインストールしたら解決した

“`
$ sudo easy_install pip
“`

確認

“`
$ which pip
/usr/local/bin/pip
“`

参考にした海外の記事
https://www.it-swarm.dev/ja/python/mac-os-zsh%EF%BC%9A%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%EF%BC%9Apip/831181572/

元記事を表示

【募集終了案件】YoutubeDataAPIv3を用いてスクレイピング→スプレッドシートに保存

pythonに初めて触れてから約1年が経ちましたので
趣味の競馬ばかりに対してばかりでなく
そろそろ本腰いれて案件をとっていけるように簡単な案件から
経験を積んでいこうと画策中。

↓↓↓今回やらせていただく募集終了済みの案件(ランサーズ様より本文抜粋)↓↓↓

———————————————————————————-
youtube上のキーワード検索した状態で、
指定の条件にある動画のURL、再生回数、登録日付、チャンネル登録者数、タイトルなどの情報を抜き出してスプレッドシートに反映させたい

指定の条件は、再生回数/チャンネル登録者数=○%以上 ・・・a%以上
       ○日以内に投稿されたもの ・・・b日以内
       検索キーワード ・・・キーワード’c’
という条件

指摘の検索キーワードで条件に該当する動画をひたすら集めてくる形
キーワードは複数登録可能
キーワードの選定はこちらでやります

———————————-

元記事を表示

AtCoder Beginner Contest 165 A問題「We Love Golf 」解説(Python3,C++,Java)

Ruteです。
>AtCoder Beginner Contest 165 A問題「We Love Golf」の解説を行います。

>問題URL:
https://atcoder.jp/contests/abc165/tasks/abc165_a

#問題概要
(問題文を簡潔に表すと以下の通りです)
$A$以上$B$以下の整数の中に$K$の倍数が存在するかを判定せよ。
存在する場合は`’OK’`
存在しない場合は`’NG’`と出力せよ。

##制約
・入力は全て整数
・$1 \leq A \leq B \leq 1000$
・$1 \leq K \leq 1000$

#解法1(ループ)
この問題においてまず1つ目に思いつく解法は$(A,B)$の範囲の中に$K$の倍数が含まれているかをfor文のループで全通り調べるというものです。計算量は、$O(B)$になります。

#解法2(B以下の最大のKの倍数を求める)
問題文は、$B$以下の最大の$K$の倍数が、$A$以上であるか というように言い換えることも出来ます。よってこれを満たしているかを条件分岐で判定するこ

元記事を表示

ABC 088 C – Takahashi’s Information

#問題概要
https://atcoder.jp/contests/abc088/tasks/abc088_c

#考えたこと
c11, c12, c13 = a1+b1, a1+b2, a1+b3
c21, c22, c23 = a2+b1, a2+b2, a2+b3
c31, c32, c33 = a3+b1, a3+b2, a3+b3

よって

c11 + c22 + c33
= c12 + c23 + c31
= c13 + c32 + c21
= a1 + a2 + a3 + b1 + b2 + b3

#提出コード
https://atcoder.jp/contests/abc088/submissions/15778910

“`python:test.py
def solve():
import sys
s = list(map(int, sys.stdin.read().split()))
x, y, z = s[0] + s[4] + s[8], s[1] + s[5] + s[6], s[2] + s[3] + s[7]
if

元記事を表示

SQLAlchemyを利用して既存テーブルのメタデータを取得する

# 目的

SQLAlchemyを介して既存テーブルのカラム名やカラム型などのメタデータを取得する。

# 環境

### 動作環境

– Windows 10 Home
– Python 3.8.5 (Anaconda)
– Oracle Database 18c XE

### 必要なライブラリ

`()`内は検証で使用したバージョン。

– sqlalchemy (1.3.18)
– cx_oracle (7.2.3)

### 使用するテーブル

“`sql
create table demo_tbl (
i_col integer,
f_col float,
c_col char(1),
d_col date,
PRIMARY KEY (i_col)
)
“`

# 実装

## 準備

### エンジンインスタンス作成

RDBに接続するための`sqlalchemy.engine.Engine`インスタンスを作成する。`host`, `port`, `pdb-name`, `user`, `pass`にはそれぞれ使用する接続情報に

元記事を表示

[最新]Raspberry Pi4に OpenCV4 を入れる方法 (Raspberry Pi 4 + OpenCV4 + Python3.8)

初めまして!!京都エンタテイメントワークスでアルバイトしている、大学院生わっぴです :smiley:
今回ラズパイ +OpenCVを使って、製品開発をするようになったのですが、どのサイトのインストール方法を見ても、どれもうまくいかなかったので、自分がやった方法を記述しておきました!!
初投稿なので見辛かったら、スミマセン・・・
なおOSのインストール方法は載せていませんのでご了承を>< # 環境情報 Raspberry Pi 4 OpenCV-python:4.3.0.38 Python:3.8.0 OS :RaspberryPi OS # 1:Python3.8.0をインストールする pythonのデフォルトは2.7 or 3.7の状態である。 とりあえず一応3.8.0をインストールし、python3.8.0の環境下にopencv-pythonを導入 1. パッケージリストの更新を行う ``` $ sudo apt update $ sudo apt upgrade ``` 2. python3.8.0のソースをダウンロード(ディレクトリ/home/piの直下でやった方が

元記事を表示

AtCoder Beginner Contest 166 A問題「A?C」解説(Python3,C++,Java)

Ruteです。
AtCoder Beginner Contest 166 A問題「A?C」の解説を行います。

>問題URL:
https://atcoder.jp/contests/abc166/tasks/abc166_a

#問題概要
コンテストの開催ルールは以下のようである。(この問題における)
・ABCが開催された次の週にはARCが開催される
・ARCが開催された次の週にはABCが開催される

先週開催されたコンテストを表す文字列$S$が与えられる。
今週開催されるコンテストを表す文字列を出力せよ。

##制約
・$S$は`’ABC’`または`’ARC’`である

#解説
・ABCが開催された次の週にはARCが開催される
・ARCが開催された次の週にはABCが開催される

というルールから、
・$S$が`’ABC’`なら今週開催されるのはARC
・$S$が`’ARC’`なら今週開催されるのはABC

ということが分かります。
よって、文字列$S$を読み取って上の条件分岐通りの出力をすれば良いです。
$S$の2文字目を読みとってその条件分岐を行

AtCoder Beginner Contest 167 B問題「Easy Linear Programming」解説(Python3,C++,Java)

AtCoder Beginner Contest 167 B問題「Easy Linear Programming」の解説を行います。

>問題URL:
https://atcoder.jp/contests/abc167/tasks/abc167_b

#問題概要
$1$が書かれたカードが$A$枚、$0$が書かれたカードが$B$枚、$-1$が書かれたカードが$C$枚存在する。
これらのカードからちょうど$K$枚を選んで取るとき取ったカードに書かれた数の和として、ありうる最大値はいくつか答えよ。

##制約
・入力は全て整数
・$0 \leq A,B,C$
・$1 \leq K \leq A+B+C \leq 2×10^9$

#解説
最大値を可能な限り大きくするため$K$の値によってカードの取り方を以下のようにします。

1.$K \leq A$の場合
$K$枚の$1$が書かれたカードを選んで取れば良いです。

2.$A < K \leq A+B$の場合 1.で示した取り方を行った後に、残りの$(K-A)$枚の$0$が書かれたカードを選んで取れば良いです。 3.$A+B

「ゼロから作るDeep Learning」自習メモ(その4)

「ゼロから作るDeep Learning」(斎藤 康毅 著 オライリー・ジャパン刊)を読んでいる時に、参照したサイト等をメモしていきます。 [その3](https://qiita.com/slow_learner/items/9447c5717d52d3e60930)← →

##3.6.2 ニューラルネットワークの推論処理

本来なら、訓練データで学習させてから、テストデータで推論させる、という順番なわけだが、この本では学習の前に、推論処理を説明している。

で、私の場合、テストデータの準備の部分が、本の例とは違っています。

“`
# 学習済みのニューラルネットワークで、テストデータを識別してみる
import numpy as np
import pickle
import sys, os

dataset_dir = os.path.dirname(os.path.abspath(‘__file__’))+’/dataset’
mnist_file = dataset_dir + ‘/mnist.pkl’
with open(mnist_file, ‘rb’) as f:

「ゼロから作るDeep Learning」自習メモ(その3)

「ゼロから作るDeep Learning」(斎藤 康毅 著 オライリー・ジャパン刊)を読んでいる時に、参照したサイト等をメモしていきます。 [その2](https://qiita.com/slow_learner/items/7caefc9ff17b4f543b15)← →[その4](https://qiita.com/slow_learner/items/d914454ecee154e98cd2)

##3 MNISTデータセットのダウンロード

P72 MNIST データセット についてのところで、つまづきました。

本の内容が難しいわけではなく、単純にファイルのダウンロード方法や、ダウンロードしたファイルの加工方法とかが、よくわかりませんでした。

Qiita の記事を参考にさせてもらいました。

PythonでMNISTをダウンロードして前処理する
https://qiita.com/python_walker/items/e4d2ae5b7196cb07402b

この記事を参考にして、自分でMNISTファイルをダウンロード、加工してみました。

“`
import

「ゼロから作るDeep Learning」自習メモ(その2)

「ゼロから作るDeep Learning」(斎藤 康毅 著 オライリー・ジャパン刊)を読んでいる時に、参照したサイト等をメモしていきます。 [その1](https://qiita.com/slow_learner/items/8272450c2b876fdc690c)← →[その3](https://qiita.com/slow_learner/items/9447c5717d52d3e60930)

この本では、「ゼロから」作るために、pythonの基礎やパーセプトロンとか、土台からきちんと説明されています。
ただ、そのせいで、最初のうちは自分が何を作ろうとしているのか、わからなくなったりします。
結局、あ、そういうこと? と腑に落ちたのは、P86の図と説明を読んでからでした。
>![kankyou6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/686010/4db678ff-7c08-80dc-1e2b-529e84d4fcd4.jpeg)

私みたいな古い人間は、「過去のデータを分析して」とな

「ゼロから作るDeep Learning」自習メモ(その1)

「ゼロから作るDeep Learning」(斎藤 康毅 著 オライリー・ジャパン刊)を読んでいる時に、参照したサイト等をメモしていきます。 →[その2](https://qiita.com/slow_learner/items/7caefc9ff17b4f543b15)

## 0.この本を読もうと思ったわけ

当方、長いことゾンビ化したメインフレーム上でシステムのお守りをしてきたコボラーでした。
もちろん、このご時世、それだけでやっていける訳もなく、PHPでWEBアプリに見えるようにお化粧したりしてごまかしてきましたが、ゾンビであることは変わりない。
そうこうするうち、歳月は過ぎていくもので、私もめでたく60歳定年というものに到達して、ゾンビ化。
現場から離れ、顧問という名の閑職におさまって、現場に口出ししてうるさがられないように気を使うかわりに、むこうもこちらに口を出さない、出せないという、ある種の特権状態に。

小人閑居して不善を成す代わりに、AIの勉強を始めたところ、
ニューラルネットワークがTensorFlowでkerasして、MNISTデータをモデルのレイヤーが損失関

AtCoder Beginner Contest 167 A問題「Registration」解説(Python3,C++,Java)

AtCoder Beginner Contest 167 A問題「Registration」の解説を行います。
>問題URL:
https://atcoder.jp/contests/abc167/tasks/abc167_a

#問題概要
文字列$S$,$T$が与えられる。
$T$が$S$の末尾に1文字追加した文字列であるか判定せよ。

$T$が条件を満たすならば`Yes`
条件を満たさなければ`No`と出力せよ。

##制約
・$S,T$は英小文字列
・$1 \leq |S| \leq 10$
・$|T| = |S| + 1$

#解説
文字列$T$について、$|S|$文字目までのスライスを取得し、それが$S$と等しいかどうかを判定すればよいです。
ここで、スライスとは、文字列の一部のことを指します。

##スライスの取得方法
Python3では `T[i:j+1]`で$T$の$i$文字目から$j$文字目までのスライスを取得することができます。
(ここで、0-indexであることに注意して下さい)<

続・わかりやすい パターン認識 教師なし学習入門 アルゴリズムのサンプルコードを書いてみた

「続・わかりやすい パターン認識 教師なし学習入門」ではアルゴリズムのサンプルコードが公開されていません。そこで、自分で書いてみました。
なお、具体的に実験をした結果は[Github](https://github.com/Akiraichi/Code_for_Algorithms)で公開しています。

# 目次
– [5章 教師付き学習、教師なし学習](#5章教師付き学習教師なし学習)
– [データ作成](#データ作成)
– [教師付き学習](#教師付き学習)
– [教師なし学習](#教師なし学習)
– [7章 マルコフモデル](#7章マルコフモデル)
– [データ作成](#データ作成-1)
– [マルコフモデルのパラメータ推定](#マルコフモデルのパラメータ推定)
– [8章 隠れマルコフモデル](#8章隠れマルコフモデル)
– [データ作成](#データ作成-2)
– [隠れマルコフモデルのパラメータ推定](#隠れマルコフモデルのパラメータ推定)
– [9章 混合正規分布](#9章混合正規分布)
– [データ作成]

AtCoder Beginner Contest 173 B問題「Judge Status Summary」解説(Python3,C++,Java)

AtCoder Beginner Contest 173 B問題「Judge Status Summary」の解説を行います。

>問題URL : https://atcoder.jp/contests/abc173/tasks/abc173_b

#問題概要
テストケースのジャッジ結果を表す文字列$S_i$が$N$個与えられる。
ジャッジ結果が’AC’,’WA’,’TLE’,’RE’であったものの個数をそれぞれ求めよ。
##制約
・$1 \leq N \leq 10^5$
・$S_i$は’AC’,’WA’,’TLE’,’RE’のいずれか
#解説
問題文の通りに実装を行えばよいです。
例えば、
・’AC’である個数を$C_0$,
・’WA’である個数を$C_1$,
・’TLE’である個数を$C_2$,
・’RE’である個数を$C_3$,
という4つの変数を作成し、
それぞれを0で初期化し、
$N$個の$S_i$について条件分岐を行って変数を管理します。
その後、出力例のように出力すればACすることが出来ます。

以下、Python3,C++,Javaでの解答例を示します。
#各言語解答

ルート権限の無いCentOSにPython-3.8.5を野良ビルドする

# はじめに
root権限の無いCentOS7.3&GCC-4.8.5の環境に野良ビルドした[GCC-9.3.0](https://qiita.com/yonedat/items/78baf03597fe2341fbf8)と[OpenMPI-3.1.6](https://qiita.com/yonedat/items/d4a764a9a527364ac954)を基に,今回は,Python-3.8.5を野良ビルドで構築し,さらに並列化のためにmpi4pyを入れたいと思います。

# 準備
Python,OpenSSL,libffiをダウンロードしておきます。

-https://sourceware.org/libffi/
-https://github.com/openssl/openssl
-https://www.python.org/downloads/source/

今回用いたバージョンは,libffi-3.3,openssl-1.1.1g,python-3.8.5です。
Python-3.8.5のビルド自体はlibffiとOpenSSLを事前にビルドしていなくてもできたので

Pythonのstr.formatを存分に使う

# freeCodeCampでコツコツPythonを勉強しています。
[前回の記事](https://qiita.com/makky0620/items/73a566580b229c119675)では*Time Calculator*に挑戦しました、今回は*Budget App*に挑戦します。

– Python for Everybody
– Scientific Computing with Python Projects
– Arithmetic Formatter
– Time Calculator
– *Budget App(今回はここ)*
– Polygon Area Calculator
– Probability Calculator

# 3問目:[Budget App](https://www.freecodecamp.org/learn/scientific-computing-with-python/scientific-computing-with-python-projects/budget-app)

求められてる

Django の開発環境の Dockerfile を作成してみた

# はじめに
docker-compose を学習するにはまず Dockerfile を先に学ぶ必要があるということであったので、Python のフレームワークである Django のアプリケーションを用いて Dockerfile を作成してみたいと思います。

# 事前準備

事前準備として Docker の image と container は空の状態からスタートします。

“`
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE

$docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
“`

# Django プロジェクトの作成

今回は[こちらの記事](https:/