- 1. ローカル環境のJupyterLabからAthenaにクエリしたい
- 2. 【覚書】Pythonのバージョン管理について
- 3. WSL(Ubuntu 20.04.3 LTS)で、MeCab を Install して Python3系で動作させる
- 4. GoogleColaboratoryでOpenAI「GPT-3」の始め方(2021年12月現在)
- 5. GPT-3をGoogle Colaboratoryで実行した時の”No API key provided”の対処法
- 6. 【備忘録】youtube-dlの使い方(まとめ)
- 7. Julia, C++, Pythonの実行速度を比較してみました。(2021年版)
- 8. cssタグを使用したスクレイピングでQiitaの記事タイトルといいねとリンク抽出 mshmura
- 9. 体温入力を自動化しよう(倫理観有り) の基礎
- 10. PythonのLoggingを理解する
- 11. 備忘録 – TypeError: cannot create weak reference to ‘A’ object
- 12. matplotlibの様々な方法に関する本とその切り抜き
- 13. gitの差分ファイルをちゃんととるPythonコード作った。
- 14. [Pythonによる物理シミュレーション] 万有引力を受ける天体の軌道。1中心1体系、ルンゲクッタ法
- 15. FastDDSが送出するIGMPv2マルチキャストパケットを追いかける
- 16. Python 1本うどんコード
- 17. デコレータを使用してみる mshmura
- 18. Pythonで順列・組合せを列挙する(再帰関数)
- 19. AtCoderの復習を手助けするWebサイトを作った(AtCoder-Ebbing)
- 20. Scipyによるシンボリック変数での微分積分
ローカル環境のJupyterLabからAthenaにクエリしたい
自分が初めてPythonを触った時、Jupyter Notebookには大変お世話になりました。
そんな感謝の一方で、AWS re:Invent 2021では[SageMaker Studio Lab](https://www.publickey1.jp/blog/21/awsjupyterlab_idesagemaker_studio_labaws_reinvent_2021.html)が発表されてJupyter環境がまた注目されているなーというにわか心もあったので、JupyterLabの使い方を考えてみました。
機械学習しなくても、手元でJupyterLabを使い始めることが目的です。
## 前提
– Assume RoleかつMFAを設定したIAMユーザ情報を`~/.aws/**`に保存
– Athena実行に足りるIAMロール権限を持っていること
– 参考: [Amazon Athena でクエリを実行したとき「Access Denied (アクセスが拒否されました) 」というエラーが表示される理由](https://aws.amazon.com/jp/p
【覚書】Pythonのバージョン管理について
# はじめに
今回は、Pythonで躓きやすいバージョン管理について、覚書を兼ねて解説(?)します。
使いやすい方法は人によって変わってくると思いますので、いろいろな方法を試していただければと思います。Pythonでは、複数バージョンをインストールして、切り替えながら使うということが少し複雑になっています。メジャーバージョン(2系・3系)同士では動くのですが、マイナーバージョンを複数インストールすると思ったように動かないことが多々あります。そんなときに、使える方法をご紹介します。
なお、[こちら](https://wisteria-yt.blogspot.com/2021/08/python.html “Pythonのバージョン管理について(覚え書き)”)のリメイク版となります。
# 方法
ここからはWindowsとmacOSに分けてそれぞれのおすすめの方法をご紹介します。Windowsの方は[こちら](#pythonランチャー–venv-windows)、macOSの方は[こちら](#pyenv–venv-macos)からご覧ください。## Pythonランチャー ×
WSL(Ubuntu 20.04.3 LTS)で、MeCab を Install して Python3系で動作させる
#経緯
形態素解析で利用する MeCab をそのまま“`pipenv install mecab-python3“`としても、Install できなかったので忘備録です。# 環境
– OS: Windows10(WSL: Ubuntu 20.04.3 LTS)
– Python: 3.10.0
– pipenv: 2021.5.29# MeCab に必要な Package を Install する
下記の Package が、MeCab が動作するのに必要で、こちらを Install しないと “`pipenv install mecab-python3“`としても Error が発生して Install できませんでした。“`bash
$ sudo apt update
$ sudo apt install mecab mecab-ipadic-utf8 libmecab-dev swig
“`# MeCab を Install する
“`bash
$ pipenv install mecab-python3
“`無事に Install され P
GoogleColaboratoryでOpenAI「GPT-3」の始め方(2021年12月現在)
#はじめに
OpenAIが開発している言語モデル**「GPT-3」**のAPIを用いると、自分でGPT-3を用いたプログラムが使えます。ただ、**どのように使用するのか**、そもそも**APIキーがどこにある**のか迷ってしまったため共有したいと思います。
**※注意点**
この情報は**2021年12月現在**のものです。今後、**変わる可能性がある**のでお気を付けください。#開発環境
Google Colaboratory#手順
**①「GPT-3 API」と検索→公式サイトに入る**
![OpenAI ホーム.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1925070/74aa8e60-07e9-30c1-7e76-478145924093.png)**②SIGN UPをしてアカウントを作る**
![openai アカウント.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1925070/96df92
GPT-3をGoogle Colaboratoryで実行した時の”No API key provided”の対処法
#はじめに
OpenAIが開発している言語モデル**「GPT-3」**をGoogle Colaboratoryで実行するとエラーが出ました。その解決法が分かったので共有します。
#どんなエラー?
Open AIが公開しているサンプルコードは以下です。“`
import os
import openaiopenai.api_key = os.getenv(“あなたのAPIキー”)
response = openai.Completion.create(
engine=”davinci”,
prompt=”I’m happy.”, #どの文章から始めるか
temperature=0.7,
max_tokens=64,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
“`
しかし、これをGoogle Colaboratoryで実行すると以下のようなエラーが出ました。“`
AuthenticationError: No API key provided. You can set your A
【備忘録】youtube-dlの使い方(まとめ)
# はじめに
youtube-dlの使い方を忘れてしまうので自分用の備忘録も兼ねて残しておきます。
本記事では、pipを用いてyoutube-dlをインストールし、YouTubeの動画をダウンロードする方法をご紹介します。
なお、[こちら](https://wisteria-yt.blogspot.com/2021/03/youtube-dl.html “youtube-dlの使い方”
)のリメイク版です。また、初投稿なので温かい目で読んでいただけると幸いです。#環境
- Python 3.3以上
- venvを使うため
venvの使い方・youtube-dlのインストールは下で解説します。
# 使い方(結論)
“`zsh
#作業ディレクトリに移動
python3 -m venv env #venvで仮想環境(env)の作成
. env/bin/activate #仮想環境(env)の有効化
pip install youtube-dl #youtube-dlのインストールyoutube-dl -f mp4/best
Julia, C++, Pythonの実行速度を比較してみました。(2021年版)
https://qiita.com/m_yamaguchi116/items/984977529cf72be019f2
を受けて投稿します。コメントだと反応が薄いので。
# 環境
macOS Monterey
バージョン 12.0.1
Mac mini(M1, 2020)
チップ Apple M1
メモリ 8 GB# Python の場合
まずは,Python です。M1 チップ対応です。
Python 3.10.0 (v3.10.0:b494f5935c, Oct 4 2021, 14:59:19) [Clang 12.0.5 (clang-1205.0.22.11)] on darwinターミナルから起動して,総実行時間を計測しました。
なお,元のプログラムでは for m in range(0, 11): とありましたが,他の言語では 0 〜 9 までなので,for m in range(0, 10): に修正しました。“`Python
foo [5] > cat pi.py
limit = 10
for m in range(0, 10):
n
cssタグを使用したスクレイピングでQiitaの記事タイトルといいねとリンク抽出 mshmura
cssタグを使用したスクレイピングでQiitaの記事タイトルといいねとリンク抽出
抽出した結果を記事毎に辞書にして、リストに追加する。“`python
from requests_html import HTMLSession
“`“`python
s = HTMLSession()
“`“`python
r = s.get(‘https://qiita.com/’)
“`“`python
### divタグの中のarticleタグ
base = ‘div article’
“`“`python
article_list = r.html.find(base)
“`“`python
title_lgtm_dict=[]for i,v in enumerate(article_list):
dict_unit={}
#タイトル
title_name = v.find(‘h2’)[0].text
dict_unit[“title”] = title_name
#いいね
lgt =
体温入力を自動化しよう(倫理観有り) の基礎
[う え き ぷ に き あ く ん 笑 Advent Calendar 2021](https://adventar.org/calendars/6939 “う え き ぷ に き あ く ん 笑 Advent Calendar 2021”) 9日目です
##環境
Python 3.9.7(Python3以外の言語でも可能です。)##みなさん
体温入力、やっていますか?ところで、このように思ったことがある方は多いのではないでしょうか。
「体温、いちいち入力して送信するのめんどくさい!」
と。
今回は、このストレスを少しでも減らすことを目標にします。##この記事について
基本的には前述の通りですが、少し細かい注意点を説明いたします。
まず、本記事では~~執筆がめんどくさい~~移植のしやすやを考慮しコマンドラインからの実行を想定したプログラムについて解説いたします。
また、体温の入力は実際は手動になります(あくまでも、ストレスを少しでも減らすことを目標にしているため)(保険かけておいてよかった)。ご了承ください。
最後に、本記事内では体温入力・送信はGoogleフォームの利用を
PythonのLoggingを理解する
[ラクスAdvent Calendar 2021](https://qiita.com/advent-calendar/2021/rakus) 8日目の記事です。
ノンビリと眺めていたのですが、カレンダーに穴が空いていることに気づき急遽筆を取ることにしました。
ネタの用意が出来ておらず、メモ書き的な内容ですがご容赦ください。# はじめに
ラクスはJava・PHPがメイン言語ですが、運用ツールなどでPythonも利用しています。
ログ出力周りはちょいちょいと聞かれることもあるので、自分の頭の整理も兼ねて情報を纏めてみたいと思います。# どんなライブラリを使うのか
もしかすると色々と便利なライブラリがあるのかもしれませんが。。。私は標準のLoggingで対応しています。
正直、このライブラリで十分事足りるので他は探したことがありません。
今回は、Loggingを使う時に気をつけることを纏めます。# よくあるだめな例
あるあるですが、よく見る駄目な使い方です。
社内でもたまにだめなパターンのコードが上がってくることもあります。“`python:test.py
imp
備忘録 – TypeError: cannot create weak reference to ‘A’ object
# 環境
Python3.10
# 状況
classの定義に“`__slots__“`を入れるとパフォーマンスが上がるらしい?
試していたらタイトルのようなエラーが出てちょっと困ったので備忘録として。
# 再現コード
“`pythonimport weakref
class A:
__slots__ = ()a = weakref.ref(A()) # TypeError: cannot create weak reference to ‘A’ object
“`
# 原因“`__slots__“`によって, tuple内に挙げられていない属性の追加が制限されます.
“`weakref.ref(x)“`は“`x“`に“`__weakref__“`属性を追加しようとします.
以上
# 対策“`weakref.ref“` に “`__weakref__“`を作ることを許可してあげました.
“`python
import weakref
class A:
__slots__ = (‘__weakref_
matplotlibの様々な方法に関する本とその切り抜き
表題のとおりです.
書籍は全て英語ですが,無料で[公開](https://github.com/rougier/scientific-visualization-book)されています.
また,個人的な切り抜きが以下になります.
1. [個人のお気に入り (9 pages)](https://drive.google.com/file/d/1Xd7Ga9oXIxvohkGzCkuw0-yJBwBcSVL3/view?usp=sharing)
2. [MatplotlibのQuick start (8 pages)](https://drive.google.com/file/d/1YCwKnkWX0k-PwakVcU3pjuufI_cGQCN2/view?usp=sharing)個人のお気に入りに存在するFigureの作成方法は以下を参考にしてください.
1. [Figure 2.7](https://github.com/rougier/scientific-visualization-book/blob/master/code/coordinates/transforms-
gitの差分ファイルをちゃんととるPythonコード作った。
タイトルの意味: リポジトリのmainブランチにある全てのコミットで変更されたファイルについて、それぞれのコミットで変更前と変更後のファイルを取得するPythonコード
経緯とか諸々はワイの個人ブログに書いてます
[https://kanoe.studio/archives/1675](https://kanoe.studio/archives/1675)# どんなもの?
対象のリポジトリのmainブランチ内のコミットについて、各コミットで変更されたソースファイルの修正前と修正後のファイルを書き出します。
かなり雑に作ってますので、悪しからず。# どやって使うの?
ソースコードはGithub上にあります: [https://github.com/KanoeGitHub/getCommitDiffFile/blob/main/getCommitDiffFile.py](https://github.com/KanoeGitHub/getCommitDiffFile/blob/main/getCommitDiffFile.py)7行目に targetDir = “” とあるは
[Pythonによる物理シミュレーション] 万有引力を受ける天体の軌道。1中心1体系、ルンゲクッタ法
2021/12/9 投稿
#0.メニュー1.問題設定
2.運動方程式の数値解法
3.計算コード
4.可視化、アニメーション万有引力を受ける物体の運動方程式を数値的に解き、下図のように天体の運動をシミュレートしていきます。
![animete_0.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/834214/0db8246d-92ef-7dd7-c424-5bed19d37faf.gif)
#1.問題設定
###運動方程式![Figure_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/834214/0158e1ca-1d50-f397-ebeb-b334af2ff34c.png)
“`math
\vec{r}(t) := (x(t),y(t)) \tag{1.1}
“`
質量$m$のオレンジ色の天体が質量$M$の青い天体から万有引力を受けながら運動している。この時オレンジ色の天体が受ける力(
FastDDSが送出するIGMPv2マルチキャストパケットを追いかける
## ROS2ユーザー向けの要約
– FastDDSでデフォルトの`239.255.0.1`に対して、一般的に使われるであろう、239.0.0.0/8のプライベートスコープでMacアドレスが重複するマルチキャストグループは、`239.127.0.1`となります。ROS2以外のアプリケーション(動画配信システム、TV会議システムなど)の動きにも注意して下さい。
– ROS2のQoS周りがIPネットワーク的には変化の余地がありそう。SHMとかの単一ホスト向けの改良の方が優先度高そうですが。## はじめに
先日、[ROSアドベントカレンダー](https://qiita.com/advent-calendar/2021/ros)として投稿した、[AWS\-VPC内でROS2\(FastDDS\-Multicast\-UDP\)を使ったPub/Subを実行する【相性良い/悪い\!?】](https://qiita.com/fudekun/items/d23ea7da97d5f9160824)の補足として、[FastDDS](https://fast-dds.docs.eprosima.co
Python 1本うどんコード
# はじめに
Pythonには[リスト内包表記](https://docs.python.org/ja/3.8/tutorial/datastructures.html#list-comprehensions)という便利な記法があります。リスト内包表記の記法は以下のようになっています。“`python:list_comprehensions.py
[ (式) for (変数名) in (イテラブルオブジェクト) ]
“`イテラブルオブジェクトとは`list`や`dict`のようなイテレーションが可能なオブジェクトのことです。
変数名にはイテラブルオブジェクトの要素が1つずつ取り出され束縛されます。
式には定数や変数、`x < y`, `i * 2`といった演算の戻り値が該当します。 とても簡潔で便利なリスト内包表記ですが、実は[チューリング完全](http://metanest.jp/tm/tm.html)であることが知られています。つまり、リスト内包表記では計算機によって原理上可能な処理をすべて行うことができるということです! このリスト内包表記がうどんの麺のように見え
デコレータを使用してみる mshmura
### 目的
– デコレータの使用に慣れること### 内容
関数実行前にメンバーかどうかを判断し、メッセージを切り替える。“`login_decorator.py
member_list = [“高橋”,”田中”,”井上”]def check_decorator(func):
def check_member(name):
print(f”==={name}さんの会員チェック開始===”)
if name in member_list:
func(name)
else:
print(f”{name}さん、会員登録してください”)
print(f”==={name}さんの会員チェック終了===”)
return check_member@check_decorator
def greeting(name):
print(f”{name}さん、ようこそ”)# 関数実行
greeting(“田中”)
greeting(“佐々木
Pythonで順列・組合せを列挙する(再帰関数)
## はじめに
`Python 組合せ列挙`などと検索すると、標準ライブラリ[`itertools`](https://docs.python.org/ja/3/library/itertools.html)の`permutations`や`combinations`を使って実装している記事が多くでてきます。
**しかしそんなものは甘えに過ぎません、$Pythonista$たるもの標準ライブラリくらい一度は自力で実装しておきたいものです。**
※ライブラリの利用を否定しているわけではありません。
※むしろ、自力で実装するよりはライブラリの方が高速でしょうから、実際に運用するときは大人しく`itertools`使いましょう。### 対象読者
「じゃあ`permutations / combinations`の中身はどうなってるの?」と思ってるそこのあなた
## いざ実装
### 再帰関数って??
すごくわかりやすい記事があるのでそちらを参照してください。
[再帰関数を学ぶと、どんな世界が広がるか](https://qiita.com/drken/items/23a4f
AtCoderの復習を手助けするWebサイトを作った(AtCoder-Ebbing)
この記事は[競プロ Advent Calendar 2021](https://adventar.org/calendars/6713) 8日目の記事です。
# 概要
AtCoderの復習を手助けする[AtCoder-Ebbing](https://atcoder-ebbing.web.app)というサイトを作成しました。
レートや解いた回数、前に解いたときからの期間等を考慮して解くべき問題を一問ずつ出題してくれます。
名前の由来は忘却曲線のエビングハウス氏です。– https://atcoder-ebbing.web.app
– https://atcoder-ebbing.firebaseapp.com(キャッシュのせいか片方見れないことがあります。見れない時はもう片方にアクセスすると良いかもしれません)
## 背景
皆さんAtCoderのレート上がってますか?
僕のレートはずいぶん長いことX軸に平行です?。一度解いた問題をちゃんと身につけるために復習が大切だというのは分かっていますが、復習をするため問題を管理するのはやや面倒です。
特に手間をかけず単語カード的
Scipyによるシンボリック変数での微分積分
#sympyの導入
“`php
import sympy as sym
“`
sympyをこれで導入します。
うまくいかない場合は、“`php
!pip install sympy
import sympy as sym
“`としてみましょう。
#シンボリック変数の導入
Scipyのモジュールでは、シンボリック変数というものを用いて計算を行います。なので、まず、シンボリック変数を導入します。
例えば、x、y、zの三変数を用いたいときは、“`php
x , y , z = sym.symbols(‘x y z’)
“`という風にコードを書きます。
これをやらないとエラーが起こるので注意しましょう。特殊な数字を扱うこともできます。
“`php
ensyuritu = sym.S.Pi
sizentaisu = sym.S.Exp1
kyosu = sym.S.ImaginaryUnit
mugen = sym.oo
“`#微分
sympyを用いれば、数式の微分をすることができます。
今回は、x2の微分をしてみましょ