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

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

dictの欠損キー対処の4つの方法

[Effective Python 第2版――Pythonプログラムを改良する90項目](https://www.oreilly.co.jp/books/9784873119175/) が本当にすばらしいので泣きながら読み進めています。

その中に、dictの欠損キーに対する対処方法の項目があったため、詳細内容は本書を読んで頂きたいのですが、それぞれの処理時間が気になったため計測しました。

今回はかなり簡単ですが、ある文字列の出現文字をカウントする処理を書きます。
実行環境はGoogle Colabのデフォルトです。

まず必要なライブラリをインポートします。

“`python
import time, defaultdict
“`

適当な文字列を集計用の対象にします。

“`python
target = ‘super_string_of_my_passages. but this does not make sense at all. because this is nothing’
“`

なお最後に、出現数でsortしたkey-valueを出力しており、想定

元記事を表示

tf.app.flags.FLAGSをargparseモジュールで代用する

これまで当たり前のようにPyTorchを使ってきた。
突然のTensorFlowのコードはさっぱり分からない。
なのでTensorFlowとPythonの対応を作りながら、両方を勉強することにしました。
初心者なので、記事の内容には期待しないでください。
それと、助言&訂正等はどしどし応募しております。どんな些細なことでもコメントお願いします!

# tf.app.flags.DEFINE_integer()
ファイル実行時にパラメータを付与してくれます。

“`python

tf.app.flags.DEFINE_integer(‘変数名’, デフォルト値, “説明文”)
“`
“`python:sample.py
import tensorflow as tf

tf.app.flags.DEFINE_integer(‘split’, 0, “split”)
FLAGS = tf.app.flags.FLAGS

print(FLAGS.split) # 0
“`

## TensorFlowを使わずに書くなら
代わりにargparseモジュールで書けそうです。

“`

元記事を表示

Pythonのrandomモジュールとdatetimeモジュールを使用してみた

簡単なゲーム作ってみました。よかったら勉強に使ってみてください

“`
import random as rm
import datetime as dm

TOTALCOUNT = 0
answer = rm.randint(1, 4)
line = “==================”

while True:
try:
while True:

print(dm.datetime.now(dm.timezone(dm.timedelta(hours=0))))

guess = int(input(“Please input number: “))
TOTALCOUNT += 1
print(line)
if answer == guess :
print(“congragualation!!!”)

元記事を表示

カルマンフィルターは株価のトレンド予測に利用できるか

# カルマンフィルターは株価のトレンド予測に利用できるか

## この記事の概要について
株価のトレンドの予測のためのカルマンフィルターの実装とその感想です。
結論から言うと「短期については利用できるかも」です。
google colabの上で動かしてます。

## カルマンフィルターとは何か
もともとロボットやロケットの制御のためなどに使われてるもので、誤差のある観測値を利用して、そのシステムの状態がどうなっているか推定するためのものです。
今回はその中でも一番単純なものを使ってます。

## 前提
株価の変動をある確率分布に従って変動していると考えて、それに基づいて予測しているので指標の一つとしてみてください。

また、今回では株価の変動の潜在的な仕方およびそれが実際に変化する仕方は、正規分布に従ってると仮定しているので非現実的な仮定をしています。

なので、株価がある程度安定的に動いているものに対してはしっかり働いてくれる一方で、急な変化にはついていけないと思われます。

## 計算式(実装)
計算式がなぜそうなるかはめんどくさいので、見たい人は[wiki](https://ja

元記事を表示

Pythonで順列(Permutation)を実装してみた

# 概要
Pythonで、`itertools`にある`permutations()`を実際に実装してみました。
本家ほど高機能なものは実装していませんが、基本的な全ての被りのない順列の組み合わせを吐き出します。

著者は幼稚園卒なので、記事内の間違いに関しては予めご容赦願います。

# 理論

![permutatuin (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535270/208af5dc-9e26-a4ca-d5f2-74e42a87ac4a.png)

# 実装

コード可読性を優先しているので、一部冗長に書いている部分があります。

“`python
def permutations(source):
length = len(source)

if length == 1:
return [source]

result = []

for x in range(length):
nxar

元記事を表示

Pythonライブラリを自作してみた

## 概要

ということで、Pythonライブラリ自作してみたので、その方法について書いてみました。
……とはいっても、先駆者様が立派な記事を書いていらっしゃるので、基本的に私がつまづいた部分や、オリジナルな部分をメインに書いていこうと思います。
この記事を見れば、

– 自作ライブラリが作れる
– ディレクトリ構成の参考になる

と思うので、ぜひ見ていってください。

## 環境

たぶん関係ないと思いますが、念のためのっけておきます。

– Windows10
– Python3.8

## 私のディレクトリ構成

まずは、私のディレクトリ構成を見てもらいたいと思います。
この記事を読んでいけば、この構成の意味がなんとなく分かるようになると思います。。

“`
.
├── .gitignore
├── MANIFEST.in
├── README.md
├── package
│ ├── __init__.py
│ └── func.py
├── notebook
│ └── test.ipynb
├── requirements.txt
└── setup.py
`

元記事を表示

Python for文の使い方を簡単に説明してみます

#Python for文の使い方を
>**for文とは** 繰り返しよく使われるメソッド

“`
参考 ソースコード

arrays= [‘index01’, ‘index02’, ‘index03’, ‘index04’, ‘index05’]

for ary in arrays:
print(ary)

実行結果
>>index01
>>index02
>>index03
>>index04
>>index05

日本語で説明===========================================================

配列 = [‘インデックス番号01’, ‘インデックス番号02’, ‘インデックス番号03’, ‘インデックス番号04’, ‘インデックス番号05’]

繰り返し文 変数ary in 配列:
 出力(変数ary)

実行結果
>>インデックス番号01
>>インデックス番号02
>>インデックス番号03
>>インデックス番号04
>>インデックス番号05

============================

元記事を表示

S3にアップロードしたファイルの整合性を担保するPython

#はじめに
公式ナレッジ[Amazon S3 にアップロードされたオブジェクトの整合性を確認する方法を教えてください。](https://aws.amazon.com/jp/premiumsupport/knowledge-center/data-integrity-s3/)をPython3で実装したものになります。

#コード

“`Python
import hashlib
import boto3
from botocore.exceptions import ClientError
from base64 import b64encode

upload_file_path = ‘sample.zip’
s3_bucket_name = ‘sample_bucket’
s3_object_key = ‘sample.zip’

h = hashlib.new(‘md5’)
file_read_size = h.block_size * (1024 ** 2)
with open(upload_file_path, ‘rb’) as f:
read_bytes = f.

元記事を表示

Pythonのif __name__ == “__main__”って何?

#Pythonのif __name__ == “__main__”って何?
今回はタイトルにもある通り、if __name__ == “__main__”に触れていきたいと思います!
**参考記事**=====================
[Python学習チャンネル by PyQ](https://blog.pyq.jp/entry/Python_kaiketsu_180207)
[@homines22](https://qiita.com/homines22/items/edf7a2309f3421723550)

===========================

簡単にまとめると
>**if __name__ == “__main__”とは**
このif文が書かれているコードがモジュールとして他のコードから実行された時、「__name__」にはモジュールの名前が入る。
このif文が書かれているコードが直接のプログラムとして実行され時、「__name__」には「’__main__’」という名前が入る。
そしてこのif文が成立するのは「__name__」という変数が「’_

元記事を表示

【Python】文字列の埋め込みにはf文字列を使うべき

## 出典
この記事は「**Effective Python 第二版**」の項目4:「**Cスタイルフォーマット文字列とstr.formatは使わずf文字列で埋め込む**」を読んで、自分なりにまとめたものです。

## Pythonの文字列埋め込み
Pythonには文字列を埋め込む方法が大きく分けて以下3つある。

– %を使う方法
– str.format()を使う方法
– f文字列を使う方法

自分はあまり意識せずに使っていたのだけど、これを機にどれが適切なのかを考えたい。

##%を使う方法
JavaやC言語をやっている人からすると慣れ親しんだ方法。
以下のように書く。

“` python
name = ‘チーズ牛丼太郎’
age = 21
print(‘私の名前は%sです。%d歳です。’ % (name, age))
“`

出力

“`
私の名前はチーズ牛丼太郎です。21歳です。
“`

うん。よさそうに見える。
でも実はこの方法にはいくつか問題がある。
次の例をみてみる。

“` python
name = ‘チーズ牛丼太郎’
age = 21
weigh

元記事を表示

【Python】Django の管理者サイトのURLを変更しておこう

#はじめに
管理者URLの変更は、セキュリティ対策の1つ(みたいです)。

`~/admin/` では簡単に管理者サイトのログイン画面に到達できてしまいます。
URLの変更は、簡単かつ割と効果的な対策です。

##変更してみる
至って簡単。

“`python:urls.py
urlpatterns = [
# path(‘admin/’, admin.site.urls), # デフォルトは admin
path(‘admin-custom-url/’, admin.site.urls),
]
“`

##終わり
簡単で当たり前なことかもしれませんが、以上です。
これも備忘録ってことで!

セキュリティ対策は入念に行いたい、そう思う今日この頃です。

元記事を表示

Python 基本書き方

pythonの基本の整理のログを書きます。

###データタイプ

intとfloatで計算すると、情報量の多いfloat型になる

“`
type(3+1.3)
> float
“`

0,1 0.0001 など小数を書くとき

“`
1e-1
> 0.1 ( 10の-1乗 = 10分の1 = 0.1)
1e-3
>0.001
“`

スライス

“`
‘hello'[1:3]
>el

‘fileid.png'[:-4]
>fileid
‘fileid.png'[-4:]
>.png
“`

スプリット 分けてリストにする

“`
‘hello world’.split(‘ ‘)
>[‘hello’ ,’ world’]
“`

改行
“`\nで改行“`

タプル  変更できないリスト

Set ユニークな値だけを持つリスト (頻度低)
“`
set1 = {1,1,1,2,2,3,3,3}
> [1,2,3]
“`

set()はlistの重複を取り除くときによく使う

“`
list1 = [1,2,2,3,3,3,4,4,4,4

元記事を表示

DynamodbをLambdaからSQLっぽく操作する

# 説明の前に

pipのモジュールを利用する方法は、下記の記事を参考にさせていただきました。
ありがとうございました。

【Python】AWS Lambdaで外部モジュールを使用する
https://qiita.com/SHASE03/items/16fd31d3698f207b42c9

# 1.準備
LambdaにPipのモジュールを持ってくる必要があるため、ローカルにDQLモジュールをインストールする。

プロジェクトフォルダ内で、下記

“`sh
$pip install dql -t ./
“`

# 2. ソースコード
ファイル名は`lambda_function.py`

“`python
import dql
def lambda_handler(event, context):
engine = dql.Engine()
engine.connect(region=”us-west-2″)
results = engine.execute(“DELETE FROM tablename WHERE tm >= 1420071600 A

元記事を表示

Python3でマイクロ秒表示、日本時間で

– プログラム

“`Python3
# coding: utf-8

from datetime import datetime, timedelta, timezone
import time

for i in range(0, 7):
date = datetime.now(timezone(timedelta(hours=+9), ‘JST’)).strftime(“%Y-%m-%d %H:%M:%S.%f”)
print(date)
time.sleep(0.17)
“`

– 実行結果

“`text
2020-08-13 04:03:58.874931
2020-08-13 04:03:59.045158
2020-08-13 04:03:59.215385
2020-08-13 04:03:59.385582
2020-08-13 04:03:59.555776
2020-08-13 04:03:59.725971
2020-08-13 04:03:59.896166
“`

元記事を表示

天気予測(機械学習)

#気象庁のデータを使って、雨が降るか予測します。

import numpy
import matplotlib
import sklearn
import pandas as pd

■データの特徴量は年月日、平均気温、降水量の合計、日照時間・・・。train_dfは2016/1/1-2019/1/1、test_dfには2019/1/1-2020/1/1。
train_df = pd.read_csv(‘train_tenki.csv’, encoding=’cp932′)
test_df = pd.read_csv(‘test_tenki.csv’, encoding=’cp932′)
combine = [train_df, test_df]
スクリーンショット 2020-08-14 10.22.08.png

元記事を表示

MAC OSに言語(GO&Python)をインストール

## はじめに

今更ながらMacMini 2020を購入しため、プログラミングの勉強を最近行っているので、
備忘録も兼ねて言語のインストール履歴を記載しておきます。

## HomeBrewのインストール

Mac OSのパッケージ管理システムで、CentOSで言うところのyumやdnfと同じです。
インストールにては以下コマンドを実行します。

“`conseole
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
“`

私は現在GOとPythonを使ってプログラミング学習を行っているので、以下2つをインストールしておきます。

## GOのインストール

“`conseole
$ brew install go

$ go version
go version go1.14.6 darwin/amd64
“`

## Python 3系のインストール

“`conseole

$ brew install pyenv

$

元記事を表示

Ahead-of-Time コンパイル用 Numba 環境の導入 (Windows)

#はじめに
競技プログラミングの練習用に、
Ahead-of-Time (AOT) コンパイル可能な Numba 環境を導入するにあたり、
基礎知識が無さ過ぎてハマったので、備忘録を兼ね手順を以下に共有します。
実行環境は Windows です。詳細は文末に付記します。

#手順1:Numba のインストール
以下の公式ドキュメントを参考にしました。
https://numba.pydata.org/numba-doc/latest/user/installing.html#installing-using-conda-on-x86-x86-64-power-platforms

当初 pip でインストールした numpy と
conda でインストールした Numba が共存していたので、
念のため、両方アンインストール後 conda で Numba をインストールしました。

ちなみに、この段階で Numba を実行すると、Microsoft C++ (MSVC) コンパイラツールセットが無い、
というエラーが出力されます。
msvc が何のことやら分からず、ここでハマりました。

元記事を表示

Windows 10 で Python のインストールから Poetry と pyenv の利用

## はじめに

最近は Visual Studio を利用した Windows の開発ばかりなので、久しぶりに Python で開発がしたい。

せっかくなので Python のバージョン管理やパッケージ管理の方法を見直してみたいのと、Windows での Python 開発に関する情報が少ないため、自分なりにまとめてみました。

## 前提環境

* Windows 10 Pro x64 1909
* [PowerShell v7.0.3](https://github.com/PowerShell/PowerShell/releases)
* [Visual Studio Code v1.47.3](https://code.visualstudio.com/)

## Python のパッケージ管理について

Python はファイル操作や暗号化や通信など様々な仕組みが標準ライブラリとして組み込まれていますが、
Webスクレイピングや機械学習などを行う場合は、それらを実現するためのクラスや関数のモジュールが含まれた様々なパッケージ群(外部ライブラリ)を組み合わせること

元記事を表示

Pythonでの乱数があるときのテスト

# Scientific Computing with Pythonの続き
freeCodeCampでコツコツPythonを勉強しています。
[前回の記事](https://qiita.com/makky0620/items/2eb431775a4540526966)では、今回は*Probability Calculator*に挑戦します。

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

# 5問目:[Probability Calculator](https://www.freecodecamp.org/learn/scientific-computing-with-python/scientific-computing-with

元記事を表示

Pythonのクラス継承の問題を解いてみる

# Scientific Computing with Pythonの続き
freeCodeCampでコツコツPythonを勉強しています。
[前回の記事](https://qiita.com/makky0620/items/6b577f7f4ea8101ed261)では、今回は*Polygon Area Calculator*に挑戦します。

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

# 4問目:[Polygon Area Calculator](https://www.freecodecamp.org/learn/scientific-computing-with-python/scientific-computing-wi

元記事を表示

OTHERカテゴリの最新記事