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

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

画像を真っ二つにするスクリプトを書いた

#はじめに
AtCoderでPythonの勉強をしていました。
少しずつ書き方を覚えたので、そろそろ実用的なスクリプトを書いてみたいなと思い、自分が必要としているものを作ってみることにしました。

#環境
OS:Ubuntu 20.04LTS
言語:Python3.8.2
Pillowのバージョンは7.0.0です。

#目的・用途
横長の画像を縦半分に分割したいときに使う。
スマホで見開き資料を読むときなんかに活用。

#コード
“`python:imagehalf
import glob
from PIL import Image
import os

files = glob.iglob(‘/home/user/images/*.jpg’)

for f in files:
img = Image.open(f)
x, y = img.size

box = img.crop((0, 0, x//2, y))
title, ext = os.path.splitext(f)
box.save(title + ‘half1’ + ext, q

元記事を表示

pythonでcodec can’t decode byteが出たときのこと

# こんなエラーが出る

“`
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x98 in position 6615: invalid start byte
“`
“`
UnicodeDecodeError: ‘shift_jis’ codec can’t decode byte 0xff in position 4729: illegal multibyte sequence
“`

# こういうときはエンコードを指定する

“`python:
f = open(filename, encoding=’CP932′)
“`

|encode|
|:–|
| UTF-8 |
| Shift_JIS |
| EUC-JIS |
| ISO-2022-JP |
| CP932 |

# Shift_JISって聞いてるのにエラーになるとき

CP932を指定したらうまくいくかも(重要)

元記事を表示

リモートサーバ用 環境構築〈メモ〉

## はじめに

リモートサーバでの環境構築はローカル環境とはだいぶ違ったので忘れないようにメモ.

### 1. 仮想環境の構築

pipenvの代わりにcondaを使う.

“`
conda create -n ENVIRONMENT python==3.6.1
“`

これで“`ENVIRONMENT“`という仮想環境が作られる.

“`
source activate ENVIRONMENT  # 仮想環境に入る
source deactivate  # 仮想環境から出る
“`

### 2. パッケージのインストール

初回のみ以下を実行.

“`
conda config –append channels conda-forge
“`

これによりパッケージのインストール成功率(見つかりやすさ)が上がる.

“`
conda install opencv-python
pip install tensorflow-gpu==1.12 # どうしても見つからない時(非推奨?)
“`

### 3. Jupyter Notebook

元記事を表示

ベイズ推論でモデルの作り方(概念編)

##ベイズ推論のモデルの作り方

####Pythonで体験するベイズ推論より
[「Pythonで体験するベイズ推論」](https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers)

ベイズ推論でどうモデル作るのか!?の概念編です。

[「メールの受信数のベイズ推論」](https://qiita.com/motoyuki1963/items/d4d59d320dbd58a68df6)の時にどうモデルを作ったかを書いてます。

0)まず自分が全知全能の神となって、データセットをつくる方法を想います。

1)ベイジアンモデリングの出発点として重要なのは、「計測したデータにあう確率変数はどれか」と考えることです。データがどのように生成されたかについて考えることです。ポアソン分布は、カウントされているデータを表すのに良い確率変数なので、メールの受信数はポアソン分布からのサンプルだというモデルを立てます。[「ベイズ推論の考え方(2)・・ベイズ推定と確率分布」](h

元記事を表示

4x4x4ルービックキューブを解くプログラムを書こう! 2.アルゴリズム

# この記事はなに?
私は現在4x4x4ルービックキューブ(ルービックリベンジ)を解くロボットを作り、世界記録を目指しています。ロボットを作る上で一番のハードルであったのが4x4x4キューブを現実的な時間に、なるべく少ない手数で解くアルゴリズムを実装することです。
調べてみると4x4x4については文献や先人が少ないことがわかると思います。そんな貴重な資料の一つになれば嬉しいと思い、この記事を書いています。
GitHubは[こちら](https://github.com/Nyanyan/Solvour)
**この記事の内容は完全ではありません。一部効率の悪いところを含んでいるかもしれません。今後改良したら随時追記していきます。**

↓競技用4x4x4ルービックキューブとプログラム制作のために番号を振られた競技用4x4x4ルービックキューブ
![Image from iOS(15).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/494375/6fb8b345-3d8f-91f8-c40e-90621b86

元記事を表示

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)

求められてる

元記事を表示

ファイル名作成のための日付文字列を作成する Python vba

スクレイピングで必須なのがファイル名の作成。
ファィル名は日付+連番のケースが一番おおいでしょうか
多数の場合は日付+時刻でよいのですが、
数が少ない場合は日付+連番が一番人気なので、
ファイル名作成の方法をメモしました。

##Pythonの場合
前提
Windows
Python3.7
以下は 日付+連番のCSVファイル名を作成する場合
datetime.date.today() をstrftimeでフォーマットすると文字列として扱えるので
希望の文字列を末尾に追加することができます。

“`:python
import datetime
hizuke = datetime.date.today()
hizuke = hizuke.strftime(‘%Y-%m-%d’)
file1 = hizuke+”-1.csv”  #2020-08-11-1.csv ※今日の日付
file2 = hizuke+”-2.csv” #2020-08-11-2.csv

“`

[詳しい日付の書式はこちら](https://docs.python.org/ja/3.6/library/

元記事を表示

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:/

元記事を表示

【Python3】文字列の除去(strip,lstrip,rstrip)で気をつけること

# stripを使った文字列の除去
紹介内容
1. 変数に代入する場合
2. 文字列の順番

## 1. 変数に代入する場合
pythonである文字列を除去する方法で,以下の操作があります.

strip : 文字列の先頭および末尾部分を除去したコピーを返す
lstrip : 文字列の先頭の文字を除去したコピーを返す
rstrip : 文字列の末尾の文字を除去したコピーを返す

大事なのは「コピーを返す」という部分.
コピーをそのまま出力(print)した場合と,変数に代入してから出力する場合で,結果が異なることに注意する.

### strip
文字列の先頭および末尾部分を除去したコピーを返す

“`Python
# そのまま出力
a=”abcdaeadcba”
print(a.strip(“a”))
## 出力
### “bcdaeadcb”

# 代入してから出力
b=”abcdedcba”
bs=b.strip(“a”)
print(bs)
## 出力
### “bcdedcb”

“`

### lstr

元記事を表示

One-Touch SearchをPython3.7.3で再現する(Windows10)

# One-Touch Searchって何?
ハイライトした文字列をボタンワンクリックでgoogle検索してくれる機能です。
LogicoolのM950というマウスに搭載されている便利機能です。
今回Pythonで再現した理由は、この便利な機能が次の世代のマウスからなくなってしまったからです。

余談ですが、この機能が便利すぎて離れられないためにM950を9年近く使い続けています。途中チャタリングに悩まされましたが、分解して修理して使い続けるくらい便利な機能です。

#プログラムの大枠
1. Pythonでスクリプトを書く。
2. 1をbatファイルで起動できるようにする。
3. 2のショートカットを作成し、ショートカットキーで起動させる。

##1. Pythonのスクリプト
“`python
import webbrowser
import pyautogui
import pyperclip
import time

pyautogui.hotkey(‘alt’, ‘tab’)
time.sleep(0.03)
pyautogui.hotkey(‘ctrl’, ‘c’)
tim

元記事を表示

Django で Hello World(初心者)

# はじめに
Python をちょっとだけ触ってみたく、最も人気である Django というフレームワークを用いてブラウザに `Hello World` と表示させるまでやってみたので、その備忘録を投稿いたします。

今回こちらの記事を参考にさせていただきました。

Djangoで初めてのHello World
https://qiita.com/Yuji_6523/items/d601ad11ad49b9e7ab0e

前提として python と pip はインストール済みとします。

# django コマンドのインストール

`pip install django` と実行して、 django コマンドをインストールします。

“`
$ python –version
Python 3.8.2

$ pip install django
# (省略)

$ python -m django –version
3.1
“`

# Django プロジェクトの作成

今回は `helloWorldProject` という名前のプロジェクトを作成してみた例になります。

`d

元記事を表示

pyinstaller: error: argument –add-binary: invalid add_data_or_binary value:が出たときの対処法

Selenium WebDriverを使用しているpythonスクリプトをpyinstallerで実行ファイル(exe)に変換する場合、デフォルトだと実行ファイルにWebDriverが含まれないため、–add-binaryオプションを使用して下記の様なコマンドを実行する必要があります。

“`
pyinstaller ./main.py –onefile –noconsole –add-binary “元ファイルパス;取込先ファイルパス”
“`

ところが、Unix環境(MacOSX含む)で上記を実行すると、下記のようなエラーメッセージが出力され、実行不可となってしまうことがあります。

“`
pyinstaller: error: argument –add-binary: invalid add_data_or_binary value: ‘元ファイルパス;取込先ファイルパス’
“`

下記サイトで調べてみたところ、–add-binaryで指定するパスのセミコロン(;)になっている箇所をコロン(:)に置き換えてあげればOKらしいです。これで実行してみたらうまく

元記事を表示

Django REST Frameworkでdynamodbを操作するREST APIを作成する

#はじめに
django REST Frameworkとboto3でAWSのDynamoDBに対して操作を行うapiを作成する。
GET、POST、PUT、DELETEの操作ができるようにする。

# Dynamodbテーブル作成(事前準備)
下記のようなテーブルを事前に用意し、いくつかデータを入れておく
テーブル名: Fruits
hash key: Name

スクリーンショット 2020-08-10 22.16.19.png

# djangoプロジェクトの作成
django project(dynamo_operation)とapp(api)を作成

“`shell
$ django-admin startproject dynamo_operation
$ cd dynamo_operation/
$

元記事を表示

【Python】データサイエンス100本ノック(構造化データ加工編) 024 解説

##Youtube
[動画解説](https://youtu.be/d5jqQYlt9vw)もしています。

##問題
P-024: レシート明細データフレーム(df_receipt)に対し、顧客ID(customer_id)ごとに最も新しい売上日(sales_ymd)を求め、10件表示せよ。

##解答
“`:コード
df_receipt.groupby(‘customer_id’).sales_ymd.max().reset_index().head(10)
“`

##出力
| | customer_id | sales_ymd |
|–:|:–|–:|
| 0 | CS001113000004 | 20190308 |
| 1 | CS001114000005 | 20190731 |
| 2 | CS001115000010 | 20190405 |
| 3 | CS001205000004 | 20190625 |
| 4 | CS001205000006 | 20190224 |
| 5 | CS001211000025 | 20190322 |
| 6 |

元記事を表示

“画像”で掲載される接触確認アプリ(COCOA)の利用状況を解析する / Tesseract

#厚生労働省から”画像”で発表されるCOCOAの利用状況を解析するProgramの構築
##きっかけ
私自身、接触確認アプリ(COCOA)のダウンロード数と陽性登録数の推移をグラフでまとめている。毎日18:00頃に公式サイトを訪れデータをGoogle Sheetに書き込み、グラフ作成をするという作業をしていた。そこで、この単純作業を自動化できないかと思ったのがきっかけである。
厚生労働省から掲載される情報はテキストが画像化されており、このデータを自動解析できれば全体の自動化も可能だろうと思い、試しに制作した。

– 厚生労働省 COCOA特設サイト(8/11現在)
![厚生労働省cocoa](https://user-images.githubusercontent.com/34627350/89846089-399a4400-dbbb-11ea-9fe5-86793e39f2b9.png)

##今回のポイント
掲載される情報は、テキストデータで掲載されていないため、画像を取得し文字認識(OCR)をする必要があった。そこで、OCRツールの候補に挙がったのが「GCP Cloud Vi

元記事を表示

深層学習とかでのTensorflowエラー「ImportError: DLL load failed: 指定されたモジュールが見つかりません。 」への対処

#目的
tensorflowの関連で以下のエラーが出ることがある。

“`
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
“`

もう少し手前から示すと、以下のようなエラー。

“`
ImportError: Traceback (most recent call last):
File “C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\pywrap_tensorflow.py”, line 64, in
from tensorflow.python._pywrap_tensorflow_internal import *
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
“`

対処方法を示す。

#対処
## 前提
エラーが出たときのtensorflowのバージョンは以下。

“`
tensorflow

元記事を表示

python jupyter notebook へのスニペット設定

# スニペットとは
– 使用頻度の高いコード、定型的なクラス宣言等を、簡単に入力できるようにしたもの。
– 単純な入力や、ループ作業がごく少ない入力で済むため効率的。
– Extensionとして提携のものを導入する、自分で作成するの2パターンがある

※ ちなみに。
>スニペットとは、一般的には「切れ端」「断片」という意味の英語である。 IT用語としては、プログラミング言語の中で簡単に切り貼りして再利用できる部分のこと。

# ターミナルで拡張機能のDL、インストール
### 1. コマンドプロンプト等で拡張機能をダウンロード

“`terminal:pip
pip install jupyter_contrib_nbextensions
“`
### 2. 上記DLが成功したら、以下のコードで拡張機能をインストール
“`terminal
jupyter contrib nbextension install –user
“`
### 3. Jupyter notebookの起動(再起動)
“`terminal
jupyter notebook
“`
###

元記事を表示

CentOS7, emacs lsp-mode で pyright を使う

# CentOS7, emacs lsp-mode で pyright を使う

CentOS7, emacs の lsp-mode で pyright を使う方法です。

## 主な登場人物

– `pyright`: Microsoft製の python language server
– https://github.com/microsoft/pyright
– language server, language server protocol についてはこちらの記事をどうぞ。
– [language server protocolについて (前編)](https://qiita.com/atsushieno/items/ce31df9bd88e98eec5c4)
– `lsp-mode`: language server protocol で language server の機能を使う emacs minor mode。
– `lsp-ui-mode`: lsp-mode の機能にポップアップ表示等のUI機能を付加する emacs minor

元記事を表示

Flappy BirdをAIに自動プレイさせる

こんばんは。りーぜんとです。

今回は[FizzBuzzのやつ](https://qiita.com/50m_regent/items/d3f2afc02f8e94cf228e)に引き続き、強化学習第二弾ということで、[Flappy Bird](https://flappybird.io)をプレイするAIを作ってみます。
作成したプログラムは全て[GitHub](https://github.com/50m-regent/bird-reinforcement-learning)にあるので参考にしてください。

### 目次
1. [Flappy Birdとは](#flappy-birdとは)
2. [ゲームを実装](#ゲームを実装)
3. [DQNで挑戦](#dqnで挑戦)
4. [NEATで挑戦](#neatで挑戦)
5. [結果](#結果)


# Flappy Birdとは
Flappy Birdというゲームを聞いたことがある人は多いんじゃないでしょうか。[無料でプレイ](https://flappybird.io)できるのでぜ

元記事を表示

PythonによるDatetimeモジュールを使用してみた

#Pythonのdatetimeモジュール使ってみた
####概要
ご覧いただきありがとうございます。今回はPythonのライブラリーでDatimeを主に使っていこうと思いますのでよかったら最後までみてってください。早速なのですが、私が今回Datetimeというモジュールを勉強してQiitaに投稿した理由は、業務でDatetimeというモジュールを使ったからです。初めは全くわからなかったのですが、**独習Python**という書籍を読んで理解することができました。こちらはリンクに載せておきますのでよかったらご覧ください。

##datetimeって何?
datetimeというのは日付と時刻を表すものです。モジュールというのが部品に当たるので=日付と時刻を表す部品と覚えていただければと思います。
まずdatetimeの主なモジュールを紹介します。

|型|概要|
|——-|——-|
|datetime|日付/時刻値|
|date|日付値|
|time|時刻値|
|timezone|タイムゾーン情報|
|timedelta|時間間隔(じかんかんかく・・漢字が読めなかったため

元記事を表示

OTHERカテゴリの最新記事