- 1. 【Python】日付をforで回したい (〇月〇日から△月△日まで〜)
- 2. エックスサーバーでPython(flask)を動かしてみた件
- 3. 【Python】lambda関数の使い方
- 4. Python、Flaskであっという間に画面表示!
- 5. GPIB、PyVISAで完全自動測定
- 6. Python始めました。(その1)
- 7. anaconda でstreamlit コマンド実行できない
- 8. リスト,辞書
- 9. 算術計算
- 10. Python環境構築メモ
- 11. FastAPI 色々なレスポンスまとめ
- 12. AOJトライに関する知識知見の記録共有 (Volume0-0039)
- 13. 競プロ用チートシート(Python)
- 14. 【深層学習】活性化関数Leaky ReLUについて
- 15. AnacondaでJupyter Notebookにnbextensionsをインストールする
- 16. ColabでOpenCV GPUを使っていく~~
- 17. クラス自体に対しての型ヒントに使える python の typing.Type
- 18. Python3環境で日本語を使うとUnicodeEncodeErrorが出る問題
- 19. 年と週番号からその週の最初の日付を求める
- 20. Python mmap 使い方 (共有メモリ操作)
【Python】日付をforで回したい (〇月〇日から△月△日まで〜)
## はじめに
**〇月〇日から△月△日まで〜** みたいなのをforで回したい時ありますよね。そんな時に使えそうなライブラリを作ったので投稿します。
## ソースコード
名前は **`dt-range`** めっちゃ普通。
https://github.com/nanato12/dt-range
## 使い方
まずは普通に `pip` を使ってインストール
“`sh
$ pip install dt-range
“`### 週単位で回したいとき: **weekrange**
“`python
from datetime import datetimefrom dt_range import weekrange
START = datetime(2021, 1, 1)
END = datetime(2021, 1, 31)for dt in weekrange(START, END):
print(dt)
# 2021-01-01 00:00:00
# 2021-01-08 00:00:00
# 2021-01-15 00:00:00
#
エックスサーバーでPython(flask)を動かしてみた件
下記サイトに移動
[エックスサーバーでPython(flask)を動かしてみた件](https://pchanz.com/%e3%82%a8%e3%83%83%e3%82%af%e3%82%b9%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a7pythonflask%e3%82%92%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f%e4%bb%b6/ “エックスサーバーでPython(flask)を動かしてみた件”)
【Python】lambda関数の使い方
## はじめに
lambda関数(ラムダ式)、また無名関数と呼ばれています。
名前の通り、名前の無い関数です(笑)。
[前編](https://qiita.com/PuchiCorner/items/24da1162d591d943fcfb)と[前前編](https://qiita.com/PuchiCorner/items/d71033e903c27be874a7)の**leaky ReLU**と**ReLU**グラフを作成した時に、“`python
list(map(lambda x: relu(x), X))
“`
このようなコードがあります。今回はそれについて話したいと思います。## lambda関数
“`python
lambda parameter(s): expression
“`
– parameter(s): パラメーターが複数であれば、””**,**”” で区切りします。
– expression: 計算式です。例:
“`python
tashisan = lambda x, y: x + y
print(tashisan(2, 4))
“
Python、Flaskであっという間に画面表示!
##内容
今回はPythonのWebアプリケーションフレームワークのFlaskを使って画面を表示させるよーっていうところまで書きます!簡単な内容となっていますがよろしくお願いいたします!
※本記事ではソースコードのみの記載とさせていただき、環境の構築(Python、Flaskのインストールなど)に関しましては割愛させていただきます。##環境
・Python 3.9.6
・Flask 1.1.2##helloを表示
どこにでもあるhelloを表示させるです。“`python:hello.py
from flask import Flaskapp = Flask(__name__)
@app.route(‘/’)
def hello():
return “Hello World!”if __name__ ==”__main__”:
app.run()
“`
###実行
サーバーを起動させる“`terminal:ターミナル
python hello.py
“`
下記URLにアクセスしてみます。
http://localhost:5000/
す
GPIB、PyVISAで完全自動測定
#きっかけ
測定器を制御して測定を自動化しようとしたのがきっかけです。
これを見ればどのようにPythonで測定を自動化できるか分かります。
もし再現したい場合はすべて読んでから行ってください。
#はじめに
[PyVISA](https://pyvisa.readthedocs.io/en/latest/)とはPythonで測定器を自動で制御できるようにするライブラリです。どのように内部で制御されているかはNational Instruments社(NI)の[計測器制御に必要なソフトウェア(GPIB、Serial、VISA、USBなど)](https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019XKkSAM&l=ja-JP)を見るとわかりやすいです。
上記サイトの図に測定器制御ソフトウェア層が書かれています。
基本的に下位層から、ハードウェア層、ドライバ層、計測器ドライバ層、アプリケーション層に分かれています。また図からわかりますが、今回、ハードウェアから通信を受けるプロトコルにはGPIBを用いるので、ドラ
Python始めました。(その1)
#記事を書くきっかけ
これまではフロントエンドをやっていましたが、バックエンドもできたらかっこいいなと思ってサーバーやデータベースにも手を出し始めました。pythonは機械学習やAIのイメージがあったのですが、どうやらバックエンドもできるらしいということで、習得したらお得じゃね?ということでpythonを学び始めました。
今回は以下の動画教材を用いて勉強しました。
[プログラミング初心者でも安心、Python/Django入門講座](https://www.udemy.com/share/101XAa3@Twltedv7DY1Oa9ym7eF6EqGLHqncpYNk4JnGz3s0vzROQr4WI3aHAWd3-ClRgiJnhA==/)#始める前に
pythonの学習をするにあたってまず、公式からpythonをダウンロードしました。
https://www.python.org/downloads/#基礎知識
今回はpythonのinteractiveshellを使って基礎の基礎をやっています。ターミナルに以下のコマンドを打ち込むことで利用できます
anaconda でstreamlit コマンド実行できない
<現象>
streamlitコマンドが実行できない
![202110142.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1849793/bb6e52f7-f446-9e89-86c3-0256d4ffa026.jpeg)
<解決方法>
“`conda deactivate
pip uninstall streamlit
conda activate 仮想環境名
pip install streamlit“`
リスト,辞書
#今回の授業資料
—
# リスト
複数の値を代入したい時に使用.数字でも文字でも代入が可能.例えば,名簿を作るとしましょう.
|インデックス番号|0|1|2|
|:-:|:-:|:-:|:-:|
| **値** |alfred|beck|charlie|# 実際のコード記述
↓ VS CodeやAtomなどのエディタに書く.
“`python3:array_sample.py
# 変数名 = [要素0,要素1,要素2, …]
name_array=[‘alfred’,’beck’,’charlie’]# [‘alfred’,’beck’,’charlie’]と出力
print(name_array)# ‘alfred’と出力
p
算術計算
#今回の授業のゴール
Python3での,算術演算子,変数を用いた基本的な計算を,
インタラクティブシェル(ターミナルやコマンドプロンプト等)で実行できる.—
#この授業資料の前提とある中学校の授業資料として作成しております.開発環境やカリキュラムなどに関しては[こちら](https://qiita.com/hakukikun/items/ce55fef4fa1ffefb4e6d)を参照してください.
—
# 加減乗除,剰余,累乗
|算術計算の種類|算術演算子|キー(JISの場合)|
|:-:|:-:|:-:|
|加算(足し算)|+|Shift +「れ」|
|減算(引き算)|-|Shift +「ほ」|
|乗算(掛け算)|*|Shift +「け」|
|除算(割り算)|/|Shift +「め」|
|剰余(余り)|%|Shift +「え・5」|
|累乗(同じ数字を掛ける)|**|Shift +「け」|—
#【実習】
—
#【演習1】計算してみよう(授業資料1 演習)
[このページ](https://qiita.com/Rumi_Yamaguchi/ite
Python環境構築メモ
#環境構築
###使うもの
– pip (インストールに使う)
– virtualenv (仮想環境構築に使う)###pipのインストール
以下をコマンドプロンプトにて実行。“`
python get-pip.py
“`
pipと打ってコマンド一覧が出てきたらインストール済みってこと###virtualenvのインストール
以下をコマンドプロンプトにて実行“`
py -m pip install virtualenv
“`
virtualenvと打ってコマンド一覧が出てきたらインストール済みってこと###virtualenv使い方
#####使い方の前に説明します。。。
virtualenvは実行環境(仮想環境)を作ることができるらしい
virtualenvの仮想環境とは:
異なるバージョンのpythonやフレームワークなどを各仮想環境へインストールすることができ、簡単に仮想環境を切り替えることによる簡易テストが可能となる場所を用意してくれます。#####本題(使い方)
仮想環境の作成↓
py -m virtualenv <仮想環境名>
これをコマン
FastAPI 色々なレスポンスまとめ
# この記事は?
自分の備忘録も兼ねて、FastAPI のレスポンスについてまとめました。
FastAPI の基本的な記述方法、HTTP の基礎的な知識については、ここでは説明していません。
チートシート的なものとしてご活用ください以下のドキュメントを元に作成しました。
# JSON レスポンス (単純な方法)
FastAPI では、デフォルトでは JSON 形式のレスポンスをするようになっています。
`return`に辞書オブジェクトを配置すると、JSON に変換されてレスポンスされます。“`py
from fastapi import FastAPI
app = FastAPI()@app.get(“/”)
def index():
return {“mes”: “hello”}
“`ただ、プレーンテキストを記述しても、MIME タイプは`application/json`としてレスポンスされてしまうので注意。
“`py
@ap
AOJトライに関する知識知見の記録共有 (Volume0-0039)
# 概要
Roman Figurehttps://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0039
# コード
補助記号Zを使用“`
def roman_to_alabia(c):
dict_r2a = {
“Z”: 0,
“I”: 1,
“V”: 5,
“X”: 10,
“L”: 50,
“C”: 100,
“D”: 500,
“M”: 1000,
}
return dict_r2a[c]def calc_plus_minus(x, y):
ret = 0
xi, yi = [roman_to_alabia(r) for r in [x, y]]
if xi < yi: ret = -1 * xi else: ret = xi return ret def Roman_Figure(
競プロ用チートシート(Python)
## 概要
Atcoderでよく用いるpythonのコードをすぐに参照するための自分用のチートシートです。
アルゴリズムについて、詳しく知りたい方は、他の記事をご参照ください。演習をこなす度に、詰まった点を中心にアルゴリズム等を追記していく予定です。
### 入力
“`sample.py# 文字列の入力
s = input()
S = input().split()# 整数、数列の入力
num = int(input())
N = list(map(int, input().split()))“`
### 最大公約数、最小公倍数
“`sample.py
# 最大公約数
def gcd(a, b):
while b:
a, b = b, a % b
return a# 最小公倍数
def lcm(a, b):
return a * b // gcd (a, b)“`
### 素因数分解
“`sample.py
# nを素因数分解したリストを返す
def prime_decomposition(n):
【深層学習】活性化関数Leaky ReLUについて
深層学習モデルを構築する時、うまく活性化関数を選ぶことは大事です。
[前編](https://qiita.com/PuchiCorner/items/d71033e903c27be874a7)に続き、もう一つ活性化関数Leaky ReLUについて紹介したいと思います。## Leaky ReLUとは?
Leaky ReLUはReLUの派生形の一つです。
数式を書くと“`math
f(x) = max(ax, x)
“`
ちなみに、$a$の数値は0.01で設定される場合が多いです。
数式により、$x$が負数の場合であれば$f(x)$は$ax$になるでしょう。Pythonで書いてみると
“`python
def leaky_relu(x):
return max(0.01*x, x)
“`## Leaky ReLUの微分
– $x$が正数の場合であれば:
“`math
\frac{\mathrm{d} f(x)}{\mathrm{d} x}=\frac{\mathrm{d} x}{\mathrm{d} x}=1
“
AnacondaでJupyter Notebookにnbextensionsをインストールする
#はじめに
Jupyter Notebookは、そのままでは、タイプしても候補が出ない(自動補完しない)為、エディターとしては使いにくい印象があります。
ここでは、Jupyter Notebookに自動補完(入力候補)機能を追加する為に、Anacondaを前提として、よく使われるnbextensionsをインストールする方法を説明します。Anacondaの場合、「『pipは使うな』と書いてある、でも、『pipでインストールする記事しかない』」、ことが多く、未知のパッケージはインストールが怖い、というのが正直な所ではないでしょうか。
正確を期すため、英語のnbextenstionsの公式サイトを見ながら、実際にやってみました。
当該ページの日本語訳も、筆者が行いましたので、参考までに載せておきます。【nbextenstions(英語)】
https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html#前提条件
* Anacondaがインストールされている
* AnacondaからJupyt
ColabでOpenCV GPUを使っていく~~
# 概要
* ColabでOpencv GPUを使用するそれだけです。
# はじめに
Colabは無料で使えて、なおかつGPUまで無料で使えるのがいいですよね。
ある時、**「OpencvのGPUバージョンも、もしかしたらColabで使えのでは?」**と思い、方法を探したときの備忘録になります。# ColabでOpencv GPU
`pip`でインストールできる`opencv-python`や`opencv-contrib-python`では、GPUは使えないですよね(もし、使えるのであれば僕の苦労が水の泡となってしまう)
なので、1からbuildする必要があります。
また、僕が実験した感じ、opencvのバージョンは最新じゃないとopencvが認識されませんでした。参考にしたサイトは以下になります。
>* [ColabのGPUでOpenCVを使用する方法は?](https://ichi.pro/colab-no-gpu-de-opencv-o-shiyosuru-hoho-wa-41065314358367)
クラス自体に対しての型ヒントに使える python の typing.Type
python の typing モジュールの `Type` についてご存知でしょうか。これは、クラス自体に対しての型ヒントに使えるものです。
ところで、私が初めてこれについて調べようと思った際、 “python typing.Type” といったキーワードで検索してみました。しかし、その際に検索結果として主に表示されたのは python の型ヒント全般に関する記事でした。そのため、所望の情報にたどりつい着くまでに少々苦労しました。そこで python の公式ドキュメントの typing のページを見直したところ、 [こちら](https://docs.python.org/ja/3/library/typing.html#typing.Type) に書いてました。(やはり最初に公式ドキュメントをしっかり読むべきですね。)
今回、 `typing.Type` について簡単にまとめたく、本記事を作成しました。
## typing.Type とは
下記、 [日本語版公式ドキュメント](https://docs.python.org/ja/3/library/typing.html#t
Python3環境で日本語を使うとUnicodeEncodeErrorが出る問題
この記事は以前に投稿したものですが、諸事情でアカウントを作り直したため改めて投稿しています。内容は少し古いかもしれません。
# 背景
私の環境でpython(3.6.2)の文字列に日本語を使うとUnicodeEncodeErrorが出てしまいました。すぐ直せるだろうと軽く考えていたのですが、案外解決に手間取ったので備忘録がてら記事にしておこうと思いました。python2系で同様の問題と解決策を記載したページはいくつかヒットしたのですが、python3系の情報は私の検索の仕方が悪かったのか、まだ情報が少ないようです。
(ないとは言っていません。すでにもっと良質の情報をwebに公開されている先達の方はどうかご容赦ください。)## 動作に失敗した環境
– MacOS High Sierra上のdockerコンテナ
– dockerイメージはconda/miniconda3をpullし、`conda update —all`したもの
– python version 3.6.2サンプルコード
“`python:jp.py
print(‘日本語をプリントします’)
“`“
年と週番号からその週の最初の日付を求める
“`
#!/usr/bin/env python3import os
import sys
import sqlite3
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime, date, timedelta
from dateutil.relativedelta import relativedeltadef get_heatmap(hm_png_filename, dbname, query, duration):
conn = sqlite3.connect(dbname)
cursor = conn.cursor()df = pd.read_sql_query(sql=query, con=conn)
df[“ymd”] = pd.to_datetime(df[“ymd”])
df[“week”] = df[“ymd”].dt.isocalendar().week
df[“year”]
Python mmap 使い方 (共有メモリ操作)
本日はプロセス間、スレッド間などで値をやり取りする方法を紹介します。
使用する手法は、C言語などを触ったことある人は聞いたことある人もいるかもしれませんが
「共有メモリ (Shared Memory)」という仕組みです。Pythonで共有メモリを実装するのに便利な「mmap」というライブラリがあるので、
本日は紹介したいと思います。####共有メモリとは
ざっくりですが共有メモリとは、名前の通りPCのメモリ上の一部を複数のプロセス間で使用できるようにする仕組みです。
最初はこのくらいの理解で十分だと思います。複数のPythonアプリ間でデータの通信ができるので便利です。
応答速度もかなり高速です。> [Python mmap公式ドキュメント](https://docs.python.org/ja/3/library/mmap.html)
—
###ソースコード“`python:ClsMMap.py
”’ —————————
共有メモリ管理クラス
—————————”’
impor