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

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

Pythonのbytesの使い方色々

## bytesの使い方

Python 3.7.5 で確認。

### bytesの自力入力

“`python
b’\x00\x01\x02\x03′
# result: b’\x00\x01\x02\x03′

b’\x64\x65\x66\x67′
# result: b’defg’ # asciiコードに対応した文字が表示されている
“`

### ファイルからbytesで読込

“`python

# with無し
fp = open(‘filename.bin’, ‘rb’)
all_bytes = fp.read()
fp.close()

# with付き
with open(‘filename.bin’, ‘rb’) as fp:
all_bytes = fp.read()
“`

### 整数をbytesへ変換

“`python
a = 255 # 準備コード
a.to_bytes(2, ‘little’) # to_bytes(変換後のバイト数, エンディアン)
# result: b’\xff\x00′
“`

### bytes

元記事を表示

python 文字列のスライス

#はじめに
この記事を書く理由は、競プロを始めてスライスを使う場面が多く、頭の中が混雑してきたので簡単にまとめようと思ったことがきっかけです。単なるスライスのメモです。

##プログラムコード
数字の文字列です。数字の文字列にした理由は、出力結果がわかりやすいと思ったからです。

“`python

s = “12345”
print(s[-1]) # 末尾
5 # 出力結果
print(s[:-1]) # 末尾を削除
1234
print(s[0]) # 先頭
1
print(s[0:]) # 先頭から最後まで
12345
print(s[1:]) # 1番目から最後まで
2345

start = “6” + s[1:]
print(start) # 先頭を削除して、6を先頭に追加
62345

end = s[:-1] + “6”
print(end) # 末尾を削除して、6を末尾に追加
12346
“`

元記事を表示

pythonで並列処理のサンプル

単純に複数CPUを使ってみる

[ALL about Linux: お手軽なベンチマークあれこれ](https://luna2-linux.blogspot.com/2015/05/blog-post.html?m=0)

“`
$ time for ((i=0;++i<1000000;)); do :; done real 0m4.698s user 0m4.663s sys 0m0.000s ``` ```py:a.py import multiprocessing import time import subprocess class CmdProc(multiprocessing.Process): def __init__(self, number): super().__init__() self.number = number def run(self): subprocess.run("for ((i=0;++i<{};)); do :; done".format(self.n

元記事を表示

【競プロ初心者向け】Pythonで競技プログラミングを始める上で覚えるべき3つの入力方法

2020年8月22日に競技プログラミングにPythonでデビューを果たしました。
参加したのは、日本で競技プログラミングといえばまっさきに思い浮かぶ[AtCoder](https://atcoder.jp/)です。

新しく学び始めたPythonをようと、実際にはその前に会員登録して、始める準備万端でした。
過去問を解いた時に??ってなってしまい、心の物置部屋にそっとAtCoderに登録したことをおいてきていました。

# なぜ競技プログラミングに取り組めなかったのか?
その理由はシンプルです。

**そもそもPythonでの標準入力の部分で躓いたからorz**

もちろんそれまでにPythonの入門書も読破していたので、入力方法についてもinput使えばいいことはわかっていました。
しかし、inputに関する理解が圧倒的に足りていませんでした。

# Python入門書で扱うinputといえば

inputっていえば、Python入門書で環境セットアップ後の1,2章のところで登場します。
サンプルコードは控えますが、だいたいこんなアウトプットになるサンプルコードが掲載されています。

元記事を表示

【更新中】Java屋さんのためのPython Syntaxチートシート

最近Pythonをはじめました。
が、やりたいことはググると出てくるし、Python3に至ってはオブジェクト指向になってくれたおかげで、だいたいは雰囲気つかめちゃったりするので良いのですが、いざ書いてみると躓くのは文法だったりしますよね?(私だけ?)
だいたいJavaに慣れきってたりすると、Javaだとああ書くんだけど、Pythonだとどう書くんだろ?的な発想になるので、似たようなことを考えてる人のお役に立てれば幸いです。

というわけで、Javaだとこう書いてたけど、Python3だとこう書くんだよ、というのを残しておきます。
始めたばっかりなので、多少考え方とか間違ってるかもしれないけど、そのへんはご愛嬌。ざっくりです。書きながら覚えていくタイプなんで。
気が向いたら更新していくと思います。

## 環境

Python 3.8
Java 8

## 公式のチュートリアル

https://docs.python.org/ja/3/tutorial/index.html

## 公式のユニットテスト(unittest)

https://docs.python.org/ja/3/l

元記事を表示

Pythonのinput関数活用の備忘録メモ

筆者がPythonを勉強する為に読んだ書籍[入門 Python3](https://amzn.to/2YJVuLt)では、なぜか標準入力関数の解説が掲載されていませんでした。:scream: ただ、使ってみると大変便利な関数なので活用方法を備忘録として残しておこうと思います。

# 最も基本的な使い方
最も基本的な利用方法は以下の通りです。実行すると標準入力(通常はキーボード)からの入力待ち状態となります。変数xに代入したい内容を入力し、最後にReturnを入力すると入力内容がxに代入されます。

“`python:入力例
>>> x = input()
5
>>> print(x)
5
“`

## 入力を促すメッセージを表示
入力を促すメッセージを表示させることも可能です。表示させたい内容をinput関数の引数として渡します。

“`python:入力例
>>> x = input(“数値を入力: “)
数値を入力: 2
>>> print(x)
2
“`

# 整数として取り出す
まずはinput関数の戻り値の型を見てみます。文字列型(str)と出力されます。

“`p

元記事を表示

pythonで入力した値の約数を調べる

#はじめに
約数を求めるプログラムコードのメモとしての記述です。

##プログラムコード

“`python
div = []
num = int(input())
if num >= 2:
for j in range(num):
if num % (j + 1) == 0:
div.append(j + 1)
else:
print(div)
“`
###簡単な説明
入力した値を`for`文のループ処理で割っていき、割った時のあまりが`0`の場合のみを配列に追加している。最後に配列を出力する。

##実行結果

“`
入力値
28

出力値
[1, 2, 4, 7, 14, 28]
“`

元記事を表示

Raspberry PiにPython3のKivyをインストールする

Python2で動かしていたが、漢字でUnicodeWarningが出てしまうので3系に移行した。
インストール手順。

“`
sudo apt update && \
sudo apt install -y libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev \
pkg-config libgl1-mesa-dev libgles2-mesa-dev \
python-setuptools libgstreamer1.0-dev git-core \
gstreamer1.0-plugins-{bad,base,good,ugly} \
gstreamer1.0-{omx,alsa} python-dev libmtdev-dev \
xclip xsel libjpeg-dev && \
python3 -m pip install –upgrade –user pip setuptools && \
python3 -m pip install –upgrade —

元記事を表示

OpenCVで日本語の画像ファイルを読み書きする方法

## 概要
OpenCVで画像ファイルを読み込む場合、imread、imwriteをよく使用するが、
imread、imwriteはASCII文字のみ使用可能なため、UNICODE文字の日本語があるとエラーになってしまう。
今回は、imread、imwriteするときに日本語ファイル名でも読み書き出来る方法を記載する。

## 前提条件
– Python3.7.3
– OpenCV 4.2

### サンプルプログラム
“`cv2_unicode_readwrite.py

import cv2
import os
import numpy as np

def main():

READ_FILE = “./テスト.jpg”
WRITE_FILE = “./テスト2.jpg”

# 読込
f = cv2.imdecode(np.fromfile(READ_FILE, dtype=np.uint8),
cv2.IMREAD_UNCHANGED)

# 64×64にリサイズを実施
resize_fa

元記事を表示

KaggleとKerasで始めるディープラーニング画像分析

#はじめに

この記事では画僧分析の入門としてKaggleの開発環境(Kernel notebook)とKerasを用いたMNISTデータセットの分類を紹介します。
Kaggle上ではKernelを公開しているので、自分でも動かしたい場合などは併せてご覧になってください。

– https://www.kaggle.com/taiga518/keras-deep-learning

間違い、質問、コメントなどあればぜひお声がけください。
LGTM頂けると励みになります!

#Kaggleとは
Kaggleはオンラインで行う世界最大の分析コンペティションです。
また、分析にすぐに取り組めるKernel notebookというオンライン開発環境が用意されており、データ分析の入門には最適だと思います。
本記事ではKaggleに既に登録しており、Kernelの使い方がわかる方を対象にしています。
(ご存じない方も参考になる記事はたくさんあるのですぐにキャッチアップできると思います。)

より詳しくは以下を参照ください。
– [Kaggleを始める人に役に立つ記事](https://qiita.

元記事を表示

macOS で pyenv install すると BUILD FAILED となり Python のインストールに失敗するときの解決法 (の一つ)

# 解決法
pyenv を使用して Python をインストールしたところ BUILD FAILED となりインストールに失敗しました。原因は binutils でした。binutils を一旦アンインストールしてから再実行したらうまくいきました。

“`shell
$ brew uninstall binutils
$ pyenv install
$ brew install binutils
“`

なぜ binutils がインストールされているとインストールに失敗するのかはよくわかりませんでした。

“[pyenv install build failed macos](https://www.google.com/search?q=pyenv+install+build+failed+macos)” などで調べてみるとたくさん記事が出てくるのですが、どれも解決法がバラバラでした。自分の場合は binutils をアンインストールするだけで解決したので、解決法の一つとして共有しておきます。参考になれば幸いです。

# 環境
| 環境 | バ

元記事を表示

Pandas備忘録

# 概要

Pandasで個人的に覚えておきたいこと一覧
随時更新します

# 課題一覧

### 1・2用のサンプルcsv

|Japan|||||America|||||
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|month|start|end|worktime|memo|month|start|end|worktime|memo|
|20200408|900|1730|8.5|hello|20200408|900|1730|8.5|hello|

### 1. カラムが複数行存在する際に、2行目をカラム名とする方法
### 2. 複数行のカラムの読み込み

# 方法

### 1・2用のサンプルcsv

|Japan|||||America|||||
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|month|start|end|worktime|memo|month|start|end|worktime|memo|
|20200408|900|1730|8.5|hello|20200408|90

元記事を表示

ColaboratoryでTensorFlowのチュートリアルPart1+α

[前回](https://qiita.com/rdongjian0079/items/5c5d89385f9740629727)<<今回>>

##初めに
前回は映画レビューによるテキスト分類を行いました。しかし、検証データが改善されていないのに関わらず学習を続けてしまいました。今回は、検証データに改善が見られない場合、学習を中断するコールバックを実装します。

##実装
[前回](https://qiita.com/rdongjian0079/items/5c5d89385f9740629727) のモデル学習のコードだけ変えます。

“`ruby:code
early_stop = tf.keras.callbacks.EarlyStopping(monitor=’val_loss’, patience=3)

history = model.fit(partial_x_train,
partial_y_train,
epochs=40,
batch_size=

元記事を表示

AtCoder Beginner Contest 176

##[A – Takoyaki](https://atcoder.jp/contests/abc176/tasks/abc176_a)

“`C++:C++
#include
#include
#include
#include
#include
#include
#include

#include
#include
#include

#define rep(i,n) for(int i=0; i<(n); ++i) #define pai 3.1415926535897932384 using namespace std; using ll =long long; using P = pair;

int main(int argc, const char * argv[]) {

int N, X, T;
cin >> N >> X >> T;

i

元記事を表示

Python3でUTC(整数秒)

Python3で現在時刻のUTC秒を取得する方法を探そうとしたら、あまりそのものズバリじゃない、情報が盛りだくさんのが多いなぁ、と思ったので。

– ズバリのプログラム

“`python
import time

x = int(time.time())
print(x)
“`

– 実行結果

“`text
1598166633
“`

– 確認用サイト
[時刻変換ツール](http://kujiira.com/tools/date)

– 確認用コマンド(`date -r`)

“`zsh
% date -r 1598166633
2020年 8月23日 日曜日 16時10分33秒 JST
“`
– 長いプログラム

“`python
import time

utc_float = time.time()
print(“utc_float: ” + str(utc_float) + ” ” + str(type(utc_float)))
utc_int = int(time.time())
print(“utc_int: ” + str(utc_int) + “

元記事を表示

実験データの解析をPythonでするための基礎

久しぶりの投稿です。私は普段、実験系の研究室(物理系)に所属して日々研究をして過ごしているのですが、私がこれまで使ってきた実験データの解析手法を公開したら誰かの役に立つのではないかとふと思い、記事を書くことにしました。これからPythonを使って実験データの解析をしたいと思っている人の助けになれば幸いです。

## この記事に書くこと
タイトルにもあるように、私は実験をしてデータの解析をするときにPython (Jupyter Notebook or Lab.)を使って解析をし、Pythonを使ってグラフを書いて、そのグラフを使ってプレゼンをし、論文を書いています。Pythonがなければ私の研究は全く進まないと言ってもいいでしょう(大げさ)。

実験データの処理には大きく分けて2つの段階があります。解析とグラフ化です。この記事ではこの2つについて私が使っている小技(基礎)をいくつか紹介します。

## 実験データの解析
### データファイルを開く
様々な装置を使って実験をしていると、当然、様々な形式のデータが得られます。本質的には同じテーブルデータでも古い装置では拡張子が`.txt`

元記事を表示

AWSのDynamoDBのテーブルをCSVファイルでエクスポートするPythonスクリプトを作成しました

# 目的
AWSのDynamoDBのテーブルをCSVファイルでエクスポートをするPythonスクリプトを作成しました。

※下記の記事を参考にさせていただきました。
[DynamoDBのテーブルをscanするPythonコード](https://qiita.com/shinsaka/items/fc5be926ef51d75b2cfa)

# 前提条件
– Python3がインストール済みであること
– [AWS CLI バージョン2](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html)がインストール済みであること
– [aws configure コマンド](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.html)で認証情報、リージョン、出力形式を設定済みであること
– AWSのDynamoDBにテーブルが存在すること

※今回は、DynamoDBに以下のテーブルが存在している前提です

元記事を表示

AWS LambdaにてPython3でS3でファイルが追加されたイベントを取得し、実行する。

# 概要
調べたので備忘録

# 手順

1. Lambda上部のデザイナーから「トリガーを追加」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89227/2e3c8db7-3228-1ecc-63e0-c28b5a6c5e88.png)

2. S3を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89227/ed6ae4b7-03d2-8fb8-0038-f5d64c409b9f.png)

3. 対象バケットを選択、「全てのオブジェクト作成イベント」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89227/02db54d1-ac97-33c9-5cb0-d2a6441aa4db.png)

※必要あればプレフィックスなどは自由に設定してください。

元記事を表示

【Pythonで業務効率化】依頼:このフォルダにあるExcelぜんぶPDFにしてね。

#はじめに

こんな事がありました。
先輩「フォルダにある130件のExcelファイル、〇〇ってシート名に書いてるシートだけPDFにしてほしいんだよね。よろしく!」
僕「分かりました。なるはやでやります!」
作業・・・・
僕「できました!」
先輩「おー、ありがとう。助かった!」
僕「ふう、疲れたあ。。。」
Python「え。私でExcelファイルをPDFにできるの知らないの?」
僕「まじか。また今後もこういう作業あるから、今度は効率化できるように調べてみるか!」

![pic.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/267677/04c420e2-bf5c-c0e4-4762-d8788e3b7e35.jpeg)

ということで、備忘録も兼ねて、フォルダにあるたくさんのExcelファイルをPDFにしておくコードの解説をしていきたいと思います。

#ExcelファイルをPDFにしよう
Excelを操作する為に、win32comというモジュールを使います。
このモジュールをインストールした事が無い場合

元記事を表示

ColaboratoryでTensorFlowのチュートリアルPart1~映画レビューによるテキスト分類~

##初めに
[映画レビューによるテキスト分類](https://www.tensorflow.org/hub/tutorials/tf2_text_classification)をやります。映画レビューをポジティブまたはネガティブに分類します。これは、2クラス分類の例で、基本的で重要な機械学習問題らしいです。Colaboratoryの使い方は[【秒速で無料GPUを使う】深層学習実践Tips on Colaboratory](https://qiita.com/tomo_makes/items/b3c60b10f7b25a0a5935)などを見るといいです。

##1. セットアップ
① https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja#scrollTo=GJBs_flRovLc にアクセスし、[ファイル]>>[ノートブックの新規作成]を選択します。

② ハードウェアアクセラレータをGPUにしてください。詳しいやり方は[こちら](https://qiita.com/rdongjian0079/items/

元記事を表示

OTHERカテゴリの最新記事