- 1. anaconda でstreamlit コマンド実行できない
- 2. リスト,辞書
- 3. 算術計算
- 4. Python環境構築メモ
- 5. pip install が何一つ応答を返さなかったり、反応しなかったり、フリーズした時に見てほしい記事
- 6. FastAPI 色々なレスポンスまとめ
- 7. AOJトライに関する知識知見の記録共有 (Volume0-0039)
- 8. 競プロ用チートシート(Python)
- 9. 【深層学習】活性化関数Leaky ReLUについて
- 10. AnacondaでJupyter Notebookにnbextensionsをインストールする
- 11. ColabでOpenCV GPUを使っていく~~
- 12. クラス自体に対しての型ヒントに使える python の typing.Type
- 13. Python3環境で日本語を使うとUnicodeEncodeErrorが出る問題
- 14. 年と週番号からその週の最初の日付を求める
- 15. Python mmap 使い方 (共有メモリ操作)
- 16. [Pandas] DataFrameの欠損値補完方法の解説サイトを勝手にまとめ
- 17. 【深層学習】活性化関数ReLUについて
- 18. AtCoder Beginner Contest 196 D Hanjo
- 19. 【ツール】マークダウン形式の表とcsvを相互変換するプログラムをpythonで書きました。
- 20. PipenvでPytorchをインストールするときにPipfile.lockを生成する【python】
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 <仮想環境名>
これをコマン
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`としてレスポンスされてしまうので注意。
“`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
[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