- 1. asdf でPythonの最新安定版をインストールする
- 2. [Python] pip/VSCode開発環境の構築 (windows11)
- 3. pythonのテキストデータ読込の仕組みとopen関数を整理する。
- 4. Pytorchのtimm.schedulerを試してみた
- 5. Ubuntu 20.04(WSL2)にPython 3.9.13 をインストールする
- 6. 店選びは任せろ!Streamlitでグルメ王に俺はなる!!
- 7. 【ポートフォリオ】Pythonで迷路問題を解く
- 8. 【競技プログラミング】0-1ナップサック問題をやってみた【組合せ最適化】
- 9. 【競技プログラミング】ナップサック問題をやってみた【組合せ最適化】
- 10. Scrapyでファイルダウンロードしました。
- 11. Airflow資料抄訳(19):変数(Variables)
- 12. カテゴリーデータの加工
- 13. Pythonのクラス学習。挫折からリベンジする話。
- 14. Airflow資料抄訳(18):クロス・コミュニケーション(XComs)
- 15. listの展開(アンパック)
- 16. Google Cloud Vision APIでドキュメントの向き判定をする
- 17. 【Django】ページをPDF出力する【Python】
- 18. 形態素解析器(Janome)を使いこなしたい!
- 19. CMake FindPython のメモ
- 20. MAC導入メモ
asdf でPythonの最新安定版をインストールする
以前はPythonインタープリタのインストールは pyenv が定番でしたが、今後は他ツールも統一管理できる asdf の方が良さそう。
asdf のインストール
“`shell
brew install asdf
asdf plugin-add python
“`全バージョンがインストールできますが、最新の安定版をインストールするには以下のように grep で抽出する。
“`shell
n=python
for v in 3.7 3.8 3.9 3.10; do asdf install $n $(asdf list all $n | grep ^$v | tail -1); done
“`
[Python] pip/VSCode開発環境の構築 (windows11)
# 最初に
Pythonの環境構築方法に関してまとめた。
元々はAnacondaを利用していたが、デフォルトのものに移行した。|環境|詳細|
|—|—|
|OS|Windows11|# Conda環境の削除
conda環境とpip環境は共存しない。
そのため、アンインストールが必要となる。
特に環境変数やVSCodeのsettingsなどが問題になる可能性があるため、Pythonインストール前に実施した方がよい。## anaconda-clean
まず、Anaconda Promptで削除用のパッケージをインストールする。“`:Anaconda Promp
conda install -c anaconda anaconda-clean
“`
インストール後、コマンド実行する。“`:Anaconda Promp
anaconda-clean –yes
“`## アンインストール
Windowsの設定→アプリ→アプリと機能から、Anacondaを指定し、プログラムのアンインストールを実行する。
実行完了後、anaconda関連のディレクトリが削除
pythonのテキストデータ読込の仕組みとopen関数を整理する。
## 初めに。
どうもpython歴3か月の者です。
今回は一度学習してよく理解できずにスルーしていたデータ読込(テキストファイル)についてリベンジしたいと思います。
最初に学習した時より理解できたのでその忘備録やアウトプットにでも。
自分はpythonにおけるデータ読込の理解に苦労したので、このような方に少しでも楽になればと。初めて学習した時面喰いましたよね。excelやwordを開く、みたいに簡単にいかないので。
ファイルをダブルクリックで出来る事が、pythonだと4行くらいのコードが必要だなんて。### 環境
win11 / google colab
## 今回扱う参照コード
最初に今記事にて扱うコードを紹介致します。①
“`python
file = open(“a.txt”)
text = file.read()
print(text)
file.close
“`②
“`python
with open(“a.txt”,”r”) as f:
s = f.read()
print(s)
“`
③
“`python
with open(“a.t
Pytorchのtimm.schedulerを試してみた
# 準備
まず今回使用するモジュールをインポートします。
“`
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import torch
import torch.nn as nn
import torch.optim as optim
import timm
import timm.scheduler
“`
次にshedulerをスムーズに確認するための関数を定義しておきます。
“`
def create_model_and_optimizer():
model = torch.nn.Linear(2,1)
optimizer = torch.optim.Adam(model.parameters(), lr=1e-01)
return model, optimizerdef create_epochs_and_others(
num_epochs=100, repeat = 1, num_steps_per_epoch = 10,
):
n
Ubuntu 20.04(WSL2)にPython 3.9.13 をインストールする
# 概要
掲題の通り。# 環境
“`console
$ uname -a
Linux PC 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
“`“`console
$ cat /etc/issue
Ubuntu 20.04.4 LTS \n \l
“`# 方法
## 依存関係をインストール
Python のビルドに必要な依存関係をインストールする。
“`
sudo apt update
“`
“`
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
“`## ソース コードをダウンロード
以下のページで対象のソースコード(のダウンロードリンク)を探して`w
店選びは任せろ!Streamlitでグルメ王に俺はなる!!
# 目次
1.作ったもの
2.きっかけ
3.リンク
4.具体的な使い方
5.コード# 作ったもの
Streamlitを使えばPythonのみでWebアプリを作れるとのことだったので,以前からあればいいなと思っていたものを作ってみました!その名も**施設選びお助けアプリ**です!すべてコードを公開しているのでPlacesAPIやStreamlitの使い方も参考になれば幸いです.# きっかけ
GoogleMap信者の私は飲食店(主にラーメン屋)を探す際に,必ずGoogleMapの評価を見てから行くのですが,最近,評価が4以上で口コミ数も100件を超えているようなお店はとても美味しいことが多いなと気が付きました.
また,旅行先などでご当地料理を食べに行く際に,ガイドブックに載っているような観光客で賑わっている有名なお店もいいのですが,地元の方が贔屓にしているような隠れた名店にいきたいなと思うこともしばしば.そんな時は,いつもGoogleMapをチェックするのですが,評価や口コミ数を指定することができないので,名店探しは骨の折れる作業になります.
そこで,「GoogleMapの
【ポートフォリオ】Pythonで迷路問題を解く
### !ポートフォリオ代わりのアウトプットです!
某所で公開されている迷路探索問題についてPythonで解いたもの。条件
* “S”がスタート位置、”.”が通行可能な通路、”#”が壁である
* 迷路のマップが1行毎に標準入力される
* 迷路は二次元である
* 脱出できる迷路である場合YESを出力、そうでない場合はNOを出力する“`python
# プレイヤークラス
class Player():
def __init__(self):
self.now = [0, 0]
self.move_log = [‘move_right’]
self.pos_log = []def move_right(self):
self.now = [self.now[0], self.now[1] + 1]def move_left(self):
self.now = [self.now[0], self.now[1] – 1]def m
【競技プログラミング】0-1ナップサック問題をやってみた【組合せ最適化】
# 1.初めに
・アルゴリズムを学ぶために、競技プログラミングを始めました。
・AOJのコースをやっていくので、その備忘録を残します。https://qiita.com/kindamu24005/items/6177591141a146cc0d9d
・前回はコイン問題を解いたので、今回は「0-1ナップサック問題」を解いていきます。
# 2.ナップサック問題
https://onlinejudge.u-aizu.ac.jp/courses/library/7/DPL/1/DPL_1_B
## 2.1問題
価値が vi 重さが wi であるような N 個の品物と、容量が W のナップザックがあります。次の条件を満たすように、品物を選んでナップザックに入れます。・選んだ品物の価値の合計をできるだけ高くする。
・選んだ品物の重さの総和は W を超えない。価値の合計の最大値を求めてください。
### 入力
1行目に2つの整数 N、W が空白区切りで1行に与えられます。 続く N 行で i 番目の品物の価値 vi と重さ wi が空白区切りで与えられます。
#
【競技プログラミング】ナップサック問題をやってみた【組合せ最適化】
# 1.初めに
・アルゴリズムを学ぶために、競技プログラミングを始めました。
・AOJのコースをやっていくので、その備忘録を残します。https://qiita.com/kindamu24005/private/3be5a55ce3c6c5275f4d
・前回は0-1ナップサック問題を解いたので、今回は「ナップサック問題」を解いていきます。
# 2.ナップサック問題
https://onlinejudge.u-aizu.ac.jp/courses/library/7/DPL/1/DPL_1_C
## 2.1問題
価値が $v_i$ 重さが $w_i$ であるような $N$ 個の品物と、容量が $W$ のナップザックがあります。次の条件を満たすように、品物を選んでナップザックに入れます。・選んだ品物の価値の合計をできるだけ高くする。
・選んだ品物の重さの総和は $W$ を超えない。
・同じ種類の品物はいくつでも選ぶことができる。(この部分が0-1ナップサックと違う!!!!!!!!)価値の合計の最大値を
Scrapyでファイルダウンロードしました。
# Scrapyでファイルをダウンロード
## はじめに
Scrapyでファイルをダウンロードしてみようと思ったのですが、調べてみると記事がほとんどなかったので手順整理のためポイントを絞って書いてみます。
– [Scrapyドキュメント](https://doc-ja-scrapy.readthedocs.io/ja/latest/topics/media-pipeline.html)
– [Scrapyのクローラーでファイルをダウンロードして保存する](https://www.nullpo.io/2020/05/09/python-scrapy-filedownload/)の2つを参考にしました。
## 対象者
– Scrapyを使ってみたことがある人
– ベーシックテンプレートやクロールテンプレートの基本操作を試してみたのでファイルの取得をしてみたい人## 設定
プロジェクトやspidersの作成方法は同じです。
基本の設定は省略します。“`spidersファイル.py
#ファイル取得部分
item = downloadItem() #items.pyのクラ
Airflow資料抄訳(19):変数(Variables)
恥ずかしながら最近になって知ったワークフローエンジン [Apache Airflow](https://airflow.apache.org/)。日本語の紹介記事もちらほら出てきていますが、[公式ドキュメント](https://airflow.apache.org/docs/)をちょっとずつ抄訳しながら読んでいこうと思います。
19目の今回は[変数](https://airflow.apache.org/docs/apache-airflow/stable/concepts/variables.html)(Variables)。
バージョン2.3.3時点のものです。—
# 変数(Variables)
変数(variables)はAriflowのランタイムに設定情報を供給するための仕組みです。それは一般的なキー/バリュー・ストアであり、グローバル・スコープを持ち、タスクのコードから問い合わせることができ、Web UIから簡単に指定で可能です。JSONファイルのアップロードによる一括指定も可能です。
変数を使うには、`Variable`モジュールをインポートして、`get`
カテゴリーデータの加工
# 目的
アンケートなどを集計する時に、良い(5)、まあ良い(4)、どちらでもない(3)、あまり良くない(4)、良くない(5)といった順序尺度を良い、悪いの2値に分けたい場面があります。pythonではどのようにデータを加工すれば良いのでしょうか。# 使用するデータ
SIGNATEさんの練習問題として公開されている「レンタル自転車の利用者予測」(https://signate.jp/competitions/114) のtrain dataを使います。日曜日を0、月曜日を1、曜日が進むについて1つずつ増えて、土曜日が6になるデータがあります。これを土日を0として、平日を1にしたい場合どういうコードを実行すれば良いのでしょうか。# 曜日データ’weekday’の確認
まずはデータを読み込みます。データフレームを使いますので、pandasも読み込みます。“`python
import pandas as pd
df = pd.read_csv(‘ファイルのパスをコピペして下さい’)
“`
曜日の変数名は’weekday’です。’weekday’のデータ数と内訳を確認します。
Pythonのクラス学習。挫折からリベンジする話。
## 初めに。
どうもpython歴3か月の者です。
今回は一度学習して理解できずにスルーしていたクラスについてリベンジしたいと思います。
初回に学習した時より理解できたのでその忘備録やアウトプットに。
自分はクラスの理解に苦労したので、このような方に少しでも楽になればと。– 出力結果表示の際にf文字列を使用しております。
## 今回扱う参照コード
このようなコードの理解を深めていきます。なんとなくニュアンスで分かるかもしれませんが、ある程度しっかり把握する事を目標と致します。
“`python
class Student: #クラスの定義def __init__(self,name,math,english): #コンストラクタ(初期化)メソッド。
self.name = name #アトリビュートの設定
self.math = math #アトリビュートの設定
Airflow資料抄訳(18):クロス・コミュニケーション(XComs)
恥ずかしながら最近になって知ったワークフローエンジン [Apache Airflow](https://airflow.apache.org/)。日本語の紹介記事もちらほら出てきていますが、[公式ドキュメント](https://airflow.apache.org/docs/)をちょっとずつ抄訳しながら読んでいこうと思います。
18目の今回は[クロス・コミュニケーション](https://airflow.apache.org/docs/apache-airflow/stable/concepts/xcoms.html)(XComs)。
バージョン2.3.3時点のものです。—
# クロス・コミュニケーション(XComs)
XComs(”cross-communications” の短縮形)は[タスク](https://airflow.apache.org/docs/apache-airflow/stable/concepts/tasks.html)同士が互いに情報のやり取りをするための仕組みです。デフォルトでは、タスク同士は完全に分離されており、まったく異なるサーバー上
listの展開(アンパック)
pythonを学ぶと、*を使った文法が出てきた。
アスタリスクで調べると、ワイルドカード扱いになるため少し時間を要した。“`python
list = [1,2,3,4,5]print(*list)
# ->1 2 3 4 5
“`リストに*を与えると、展開する(アンパック)する見たいです。
辞書も展開することができるみたいです。
“`python
dict = {‘arg1’: ‘one’, ‘arg2’: ‘two’, ‘arg3’: ‘three’}
print(*dict)
# ->arg1 arg2 arg3※print関数では、`TypeError: ‘arg1’ is an invalid keyword argument for print()`が出てくるので
関数の引数に与えてあげるといけるぽいfrom rich.console import Console
def func_default(arg1=1,arg2=2,arg3=3):
print(‘arg1=’,arg1)
print(‘arg2=’,arg2)
Google Cloud Vision APIでドキュメントの向き判定をする
# なにをしたいか
ドキュメントをスキャンor撮影した画像があるとする。それぞれの画像はドキュメントの正しい向きに対してバラバラの向きになってしまっている。これをGCPのVision APIで取得できる情報を使って正しい向きに回転してやりたい。
ちなみに、フリーのOCRであるTesseract OCRでは[PSM(Page Segmentation Model)に`0`や`2`を設定することでテキストの傾斜角度を調べることが可能](https://valmore.work/how-to-use-tesseract4-with-python/)。一方、Google Cloud Vision APIでは調べた限りそのようなオプションは見つからなかったので、自前で実装することにする。
**※なお、本記事では横書きのドキュメントのみを対象とし、縦書きのドキュメントは考慮しない。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/228689/4bdce149-a958-ad76-b9a6-ae7
【Django】ページをPDF出力する【Python】
# 初めに
Djangoで構築したWebアプリケーションのページをpdf出力したい時ってありますよね。
Webページのpdf出力は簡単そうなイメージでしたが、Djangoで作成されたものページは意外と奥が深かったので手法をまとめます。
ライブラリはpdfkitを使用し、Windows環境でページのpdf出力を行います。
ここでは一番簡単な方法でpdf出力をする方法をまとめ、細かい検証は別の記事にまとめます。# 環境
|名称 |バージョン |
|—|—|
|Python |3.10.4 |
|Django |4.0.6 |
|pdfkit |1.0.0 |# pdf出力するページ
今回は以下のページをpdf出力させてみます。
pdf出力関数呼び出し用のボタンを用意してあります。
![キャプチャ.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1225075/030601d4-be82-8bbe-8c53-2d9dff56c068.jpeg)body部は以下のようになっていま
形態素解析器(Janome)を使いこなしたい!
# はじめに
「形態素解析器を使いこなしたい!」、そう思ったのはいったいいつからか…今回は形態素解析器であるJanomeの公式Documentを自分なりにまとめました!
形態素解析器の使い方がよくわかっていない方の参考になれば幸いです!# 参考文献
[Janome API reference v0.4](https://mocobeta.github.io/janome/api/janome.html)
[Janome v0.4 documentation (ja)WELCOME TO JANOME’S DOCUMENTATION! (JAPANESE)](https://mocobeta.github.io/janome/)
[Python, Janomeで日本語の形態素解析、分かち書き(単語分割)](https://note.nkmk.me/python-janome-tutorial/)# 目次
* **Tokenizer**
* **Analyzer**
* char_filters
* token_filters# janome.token
CMake FindPython のメモ
## 背景
CMake で libPython とリンクするアプリ/ライブラリを作成したいが `find_package(Python)` がなんかいろいろややこしい…
例として nanobind https://github.com/wjakob/nanobind で C++ の python モジュールを作るのを想定します.
CMake のバージョンは `3.12 ~ 3.22` を想定します.
主な変更点として– 3.12 : FindPython サポート
– 3.14 : Import target(`Python3::Interpreter` など) が CMAKE_ROLE project のときのみ生成
– 3.15 : `Python3::Module` import taget, Python3_FIND_FRAMEWORK 対応
– 3.18 : Development.Module, Development.Embed モジュールに細分化
– 3.19 : find_package でバージョン指定可能があります. 2022/07 時点で最低
MAC導入メモ
# はじめに
MACを新しいマシンに切り替えました。そのときの手順をメモしておきます。
「MAC版outlookメールファイルの移行」がネット上に情報が全然なかったので、地味に他の方の参考になるかもです。## ネットワーク設定
自宅用Wifi、ディザリング## Apple ID登録
## gmail設定
## ATOK導入
https://mypassport.atok.com
からログイン
ATOKを導入したが、いきなりメニューにATOKがないという問題に遭遇し、ググって次の記事を見つける
https://support.justsystems.com/faq/1032/app/servlet/qadoc?QID=058242
(やっとこれで普通にPCが使えるようになった。いかに自分の体がATOK漬けになってしまっているか、改めて実感。。。)
## ブラウザ導入
firefiox、chrome## アプリ導入
zoom## MAC版outlookメールファイルの移行
移行前にすごくはまった箇所
インポートとエクスポートというメニューはあるが、グレーアウ