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

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

【初心者必読!?】プログラミングを学ぶ際に躓く用語集

どうも!
三町哲平です。
夏真っ盛りで汗かきの私には中々大変な時期であります。

さて今回は、
私がプログラミング言語にPythonやRubyというものが存在すると初めて知ったぐらいの時期にWordにまとめていたメモがありましたので、多少修正して記事にしています。
プログラミング初心者が学習で躓く聞き慣れない用語のまとめです。

※ Pythonから学習を始めたのでPython関係の内容を中心にインフラ等の知識も含まれます。

# CRUD
データを操作する際に必要な最低限の機能のこと。

* 機能(Create)
* 参照機能(Read)
* 変更機能(Update)
* 削除機能(Delete)

参考及び引用元:https://wa3.i-3-i.info/word123.html

# CI/CD
「Continuous Integration/Continuous Delivery」の略で、日本語では継続的インティグレーション/継続的デリバリーという。

ソフトウェアの変更を常にテストして自動で本番環境にリリース可能な状態にしておく、ソフトウェア開発の手法

オンプレミス型

元記事を表示

【Django】Modelのテーブル名/カラム名を指定する方法

# はじめに
DjangoのModelで任意のテーブル名、カラム名を指定してデータベースにアクセスする方法について記載します。

# 環境
Django 3.0.x

# テーブル名
DjangoのModelは、「アプリケーション名\_クラス名」がデフォルトのテーブル名となります。
以下の例では、「アプリケーション名\_Employee」がテーブル名となります。

“`
from django.db import models

class Employee(models.Model):
first_name = models.CharField()
last_name = models.CharField()
“`

任意のテーブル名を指定する場合は、Modelの内部クラスMetaのメタデータオプションでテーブル名を指定します。

“`
from django.db import models

class Employee(models.Model):
first_name = models.CharField()
last_name = models.Cha

元記事を表示

e(ネイピア数)ーなぜを解決するー

ネイピア数って結構機械学習の勉強をしている際に出てくるため、現時点の理解でまとめておきます。
調べても数学の問題を解くための動画やサイトが多くてなぜ??使うか。なぜ??必要なのかという本質的な部分が見えてきていないのが正直なところです。

##ネイピア数を使う意味って何?
ネイピア数を使うことによって理想的な理論を表す際に使われる。
πなどと同じく超越数と言い、なんとなく使われるイメージ。。。。。
ここを理解するには、定義をおさらいする必要がありそうですが、僕はとりあえずあとで。。
youtubeで鈴木貫太郎さんが出していた動画がわかりやすかったのでおすすめです。

##ネイピア数って何
ネイピア数とは自然対数の底・超越数のこと。
性質としては、
;数値で表すと、2.71828182846
となります。

ちなみに幅広く機械学習で出てくるため抑える必要があるなと。。。

##現時点で必要かなと感じている数学的知識について
①指数関数
②二項定理
③ネイピア数の定義について などなど

内容薄いですが、今後更新していく予定です笑笑

元記事を表示

Pythonにおけるスコープ変数が理解できたのでまとめてみました

#Pythonにおけるスコープ変数
みなさんこんにちは、いつもご覧いただきありがとうございます。今回はスコープ変数の概念を説明していきながら、実際どのように使っていくか簡単にまとめようと思いますのでよろしくお願いします。

>**スコープ変数とは**
一言で表すとスコープと言うのは「範囲」のことです。もう少し付随して説明すると範囲変数ですね。

これから関数を用いたスコープ変数を書いていきますのでここからみていただければと思います。

###ソースコード①

“`
message = “hello Global World!!” <<グローバル変数 def index():ーーーーーーーーーーーーーーーーーーーーーーー |                    message = "Hello Local World!!" <<ローカル変数 |<<ここまで print(message) ーーーーーーーーーーーーーーーーーーーー| がローカル変数の範囲                        なのでグローバル変数とは同じ変数名でも別の変数になります

元記事を表示

Python3における基礎的な正規表現のまとめ

Pythonでの正規表現(re)について使用頻度の高いものをまとめました。

**※投稿者がMac環境のため\(バックスラッシュ)で表記されている部分がありますが、Windows環境の方は¥(えん)マークに読み替えてください。**

# 位置関係に関する正規表現
| 記号 | 説明 |
| :-: | :-: |
| ^ | 文字列の先頭からパターンに一致するかを判定 |
| $ | 文字列の末尾からパターンに一致するかを判定 |

# 繰り返しに関する正規表現
| 記号 | 説明 |
| :-: | :-: |
| ? | 0回または1回 |
| * | 0回以上 |
| + | 1回以上 |
| {m} | m回 |
| {m,} | m回以上 |
| {m,n} | m回以上、n回以下 |

# 文字制限に関する正規表現
| 記号 | 説明 |
| :-: | :-: |
| [0-9] | すべての数字 |
| [a-zA-Z] | すべてのアルファベット |
| [a-zA-Z0-9] | すべてのアルファベットと数字 |
| [^a-zA-Z0-9] | すべてのアルファ

元記事を表示

Python3: クッキーの使い方

こちらと同じことを、PHP で行いました。
[jquery-cookie の使い方](https://qiita.com/ekzemplaro/items/95706b030581cd7a63c5)
[Perl: クッキーの使い方](https://qiita.com/ekzemplaro/items/cbe00d47275db0f49ba0)
[PHP: クッキーの使い方](https://qiita.com/ekzemplaro/items/71843c6685025d215d49)

クッキーを送る

“`py:cookie_put.py
#! /usr/bin/python
#
# cookie_put.py
#
from http import cookies

C = cookies.SimpleCookie()
C[“message”] = “This is a Test.”
C[“aa”] = “富士山”
C[“bb”] = “谷川岳”
C[“cc”] = “阿蘇山”

print(C.output())
print(“”)
print(“”)

print(“Co

元記事を表示

【Python】画像上に線や文字を加える【OpenCV】

#実行環境
[Google Colaboratory](https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja)

#Google Colaboratoryで画像を読み込む為の準備
“`python:
from google.colab import files
from google.colab import drive
drive.mount(‘/content/drive’)
img = cv2.imread(“/content/drive/My Drive/Colab Notebooks/img/Lenna.bmp”)
“`

#必要なライブラリの読み込み
“`python:
import cv2 #opencv
import matplotlib.pyplot as plt #結果を確認するのに座標がほしいので使用
%matplotlib inline
“`

#画像上に線を入れる

“`python:
#書き込み情報の設定
pt1 = (50,50)
pt2 = (200,50)
color

元記事を表示

IndexError: index -1 is out of bounds for axis 0 with size 0を解決

今回質問をし教えて頂いたので備忘録と共有をします。

“`python
IndexError: index -1 is out of bounds for axis 0 with size 0
“`

##経緯
東京都の昼間の人口予測のデータから過去から未来にかけての密集地の予測をするため、seabornのpairplotを行おうとした所、Keyエラーが発生。その後Keyエラーについて解消はしたものの。上記のエラーが。。。。

locやインデックス値の指定によってデータの表示をしようとしたのですがうまくいかず。

##内容

“`python

import csv
import pandas as pd
import seaborn as sns
import matplotlib
matplotlib.use(‘TkAgg’)
import matplotlib.pyplot as plt
import japanize_matplotlib

road = pd.read_csv(“~~~~.csv”,
encoding=”SHIF

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事