- 1. pip install が何一つ応答を返さなかったり、反応しなかったり、フリーズした時に見てほしい記事
- 2. FastAPI 色々なレスポンスまとめ
- 3. AOJトライに関する知識知見の記録共有 (Volume0-0039)
- 4. 競プロ用チートシート(Python)
- 5. 【深層学習】活性化関数Leaky ReLUについて
- 6. AnacondaでJupyter Notebookにnbextensionsをインストールする
- 7. ColabでOpenCV GPUを使っていく~~
- 8. クラス自体に対しての型ヒントに使える python の typing.Type
- 9. Python3環境で日本語を使うとUnicodeEncodeErrorが出る問題
- 10. 年と週番号からその週の最初の日付を求める
- 11. Python mmap 使い方 (共有メモリ操作)
- 12. [Pandas] DataFrameの欠損値補完方法の解説サイトを勝手にまとめ
- 13. 【深層学習】活性化関数ReLUについて
- 14. AtCoder Beginner Contest 196 D Hanjo
- 15. 【ツール】マークダウン形式の表とcsvを相互変換するプログラムをpythonで書きました。
- 16. PipenvでPytorchをインストールするときにPipfile.lockを生成する【python】
- 17. a = (1 and 2 or 3 and 4)を説明できますか?
- 18. # 使い終わった壁紙を自動で削除したい!
- 19. Pythonでエラーが出た時、まずやること
- 20. 【5】辞書型で自販機データを作ろう
pip install が何一つ応答を返さなかったり、反応しなかったり、フリーズした時に見てほしい記事
# 起きたこと
wsl2上のUbuntuで、
“`
pip install (モジュール名)
“`
を実行しても何も起きない。エラーメッセージも帰ってこない。
フリーズ。応答しない。反応しないような状態。
Ctrl + Cで終了させるしかない。
エラーメッセージも出ないのでマジで何が悪いのかわからない。# 解決策
X Windows Server(DISPLAY環境変数)の指定が誤っているので初期化する参考
https://stackoverflow.com/questions/68369527/python3-on-wsl-2-takes-forever-over-6-minutes-to-import-keyringターミナルで以下を実行
“`
export DISPLAY=
“`# 原因と思われるもの
pipをインストールし直そうとして、get-pip.pyを動かしてみたところ、それも動かなかったので、中のコードを漁ってみた。
keyring というモジュールをインポートするところで止まっていた。keyring hangupとかで調べてみると以
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`としてレスポンスされてしまうので注意。
MIME タイプを調
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
[Pandas] DataFrameの欠損値補完方法の解説サイトを勝手にまとめ
# 概要
欠損値補完方法についての情報が検索してもなかなかうまくヒットしないので、独断と偏見でサイトさんをまとめました。
`dataframe.resample(‘1Min’).asfreq()`みたいなアップサンプリングをしたときに私が欲しい情報でした。## fillna関連
欠損箇所を、ある程度決まりきった値で補完するメソッド。
※`method=’ffill’` や `’bfill’` を使うと、fillnaでも柔軟な補完が可能### わかりやすい
分かりやすかったのは以下の2サイト
http://hxn.blog.jp/archives/9674676.html
https://qiita.com/0NE_shoT_/items/8db6d909e8b48adcb203#fillna
### 詳しい
非常に詳しいのはここ(半分より少し下までスクロールする)
https://note.nkmk.me/python-pandas-nan-dropna-fillna/
## interpolate関連
前後の値やindexを考慮して柔軟に補完することができ
【深層学習】活性化関数ReLUについて
深層学習モデルを構築する時、うまく活性化関数を選ぶことは大事です。
その中で、よく使われている活性化関数ReLUについて紹介したいと思います。## ReLUとは?
ReLUはRectified Linear Unitの頭文字から取ってきたものです。
数式を書くと“`math
f(x) = max(x, 0)
“`数式により、$x$が負数の場合であれば、
$f(x)$は$0$のままということがわかります。Pythonで書いてみると
“`python
def relu(x) :
return max(x, 0)
“`## ReLUの微分
– $x$が正数の場合であれば:
“`math
\frac{\mathrm{d} f(x)}{\mathrm{d} x}=\frac{\mathrm{d} x}{\mathrm{d} x}=1
“`– $x$が$0$以下の場合であれば:
“`math
\frac{\m
AtCoder Beginner Contest 196 D Hanjo
# この記事について
– AtCoder Beginner Contest 196 D Hanjo について、以下の人向けの解法を紹介
– DFS を死んでも書きたくない人
– 文責: [kys](https://twitter.com/___kyskyskyskys)# 問題
– [AtCoder Beginner Contest 196 D Hanjo](https://atcoder.jp/contests/abc196/tasks/abc196_d)
– 縦 $H$ メートル、横 $W$ メートルの部屋に以下を敷き詰める場合の数を求める問題
– $2$ メートル $\times~1$ メートルの互いに区別できない $A$ 枚の畳(縦長にも横長にも使える)
– 以降、長方形の畳と呼ぶ
– $1$ メートル $\times~1$ メートルの互いに区別できない $B$ 枚の畳
– 以降、正方形の畳と呼ぶ
– 部屋全体の回転や反転は区別
– 制約
– $1
【ツール】マークダウン形式の表とcsvを相互変換するプログラムをpythonで書きました。
どうも、たかふみです。
マークダウン形式の表(行の部分)とcsvを相互に変換するプログラムを書きました。## ■プログラム例1
「csvで記載されたデータ(左)」を「マークダウン形式の表における行のフォーマット(右)」に変換します。“`
■ プログラムA
タイトル1,URL1 | 1 | [タイトル1](URL1) |
タイトル2,URL2 ⇔ | 2 | [タイトル2](URL2) |
タイトル3,URL3 | 3 | [タイトル3](URL3) |
“`その他、マークダウン形式の表をcsvへ変換するプログラムやヘッダー含めてマークダウン形式の表に変換するプログラムがあります。
プログラムはpython3, 環境構築はdockerでやっています。
PCにdockerを入れれば環境は簡単に構築できますし、プログラム自体も`python {所定のファイル}.py`で実行できます。## ■github
URL:https://github.com/wallkickers/python3_output_txt_from_csv## ■環境構築
PipenvでPytorchをインストールするときにPipfile.lockを生成する【python】
#概要
`pipenv`で`PyTorch`をインストールするとき、普通にやると`Pipfile.lock`の生成に失敗するので、回避策を調べました。
#環境“`
% sw_vers
ProductName: macOS
ProductVersion: 11.5.2% pipenv –version
pipenv, version 2021.5.29
jiro@JiroMBA gpt2test %
“`#問題
`pipenv`で`PyTorch`(cpuバージョン)をインストールしてみます。“`
mkdir test
cd test
pipenv –python 3.9.6
pipenv install torch torchvision torchaudio
“`以下のようなエラーメッセージが表示され、`Pipfile.lock`の生成に失敗します。
“`
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] d
a = (1 and 2 or 3 and 4)を説明できますか?
# 目的
pythonのand/or演算子を掘り下げておきたい。# 題材
and/or演算子が複数含まれている文。a = 1 and 2 or 3 and 4
タイトルでは()をつけたがなくても一緒。※括る場所を変えると結果は変わる。
ポイントは右辺の演算結果は何者か?なぜそうなるか。# 先走って結論
a = 2 と同等です。# ポイント
* TrueやFalse以外の変数だってand/or演算子の処理ができる。
* and/or演算子は結果としてTrueやFalseを返さない。(演算子の左右にそれ自体がいれば話は別)
* and/or演算子は左右のどちらかを選ぶ処理。
* 同時に and/or (またはnot)が含まれるとき、優先順位がある。# 解説
## and/or演算子
`if money >= 1000 or points >= 1200`
こんな感じの条件分岐はよく見るでしょう。現金1000以上さもなくばポイント1200以上の場合は、って意図です。
現金なくてもお買い物ができそうなケースに使えるif文です。次のケースでは、財布を忘れずに持ってきていれ
# 使い終わった壁紙を自動で削除したい!
# 使い終わった壁紙を自動で削除したい!
「東京ディズニーリゾートの壁紙を毎月自動でダウンロード・設定するプログラムを作った!」と友人に話をしたところ、「昔の壁紙は消えないの??」と聞かれました。
私は何かと記念に残しがちですが、よくよく考えれば確かに要らない気がするので、ダウンロードするタイミングで削除しちゃおうと思います。前回の記事はこちら↓
https://qiita.com/ayk_f/items/40eca2f7376a2b04ce4c
# ざっくりフローチャート
前回の記事で、「今月の壁紙が指定フォルダに格納されていない場合、壁紙をダウンロードする。」という条件分岐を追加したので、壁紙をダウンロードする処理の前に、古い壁紙を削除する処理(オレンジ部分)を追加します。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/b9c7522e-a36d-f0a4-3fad-dcf2d24c91ac.png)
# 削除対象ファイルのリストアップ
まずは削除対象の
Pythonでエラーが出た時、まずやること
## はじめに
プログラミングにおいて、エラーとの戦いは付き物です。特に最初のうちは、基本的な構文エラーで止まってしまうことが多くあります。このようなエラーを自分で解決できるようになるために、エラーが起きた時にすることをまとめてみました。### 想定読者
Pythonで初めてプログラミングに触れる方
すでに環境は整っているものとします。### 環境
– VisualStudioCode
– Python3.9
– JupyterNotebook(VSCode版)## 1. エラーメッセージを読む
ほとんどのプログラミング言語では、実行時に想定と異なる状況が起きた時エラーが出るようになっています。
(C言語などではその一段階前のコンパイル時にエラーが出る場合もあります)Pythonでは読みやすいエラーメッセージが出てくるので、読んでみましょう。
### よくあるエラー
#### IndexError
リストなどのインデックスがリストの長さを超えてしまった時に出るエラーです。
リストの長さが10のとき、インデックスは0~9の範囲でなければならないことに注意してくだ
【5】辞書型で自販機データを作ろう
# 演習問題
keyに商品名(str型),valueに値段(int型)を代入し
自販機の中身(キーバリューの組み合わせ)が表示され,
「[自分の好きな商品の値段]円を入れてください!」とアナウンスされるアプリを作りましょう.– 辞書型変数名は任意で構いません.※自販機=vendingmachine
– 要素は最低5個以上作りましょう.
HINT:print(str(vm[‘おでん’])+”円を入れてください!”)
print関数内で,数字の型を文字の型として表示させる作業が必須..pyファイルで提出してください!
【出力例】
“`
{‘ラーメン’: 600, ‘おしるこ’: 80, ‘ゼリー’: 100, ‘プロテイン’: 170, ‘おでん’: 200}
200円を入れてください!
“`解き終わり次第,[まなBOX](https://daltontokyo.mana-box.jp/epf-web/Servlet/)にて提出しましょう.演習の提出状況で成績判断をします.
→[次の演習]()へ
#### 演習問題一覧は[こちら]()#引用
[Am