- 0.1. 現在出ている気象警報・注意報を取得する
- 0.2. Jupyter notebookのテーマ変更
- 0.3. 【 エラー解消法 】RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
- 0.4. pyinstallerインストール ( Python3, Ubuntu 20.04 )
- 0.5. LeetCode “40. Combination Sum II”に、queueを使って挑んだけど失敗した話
- 0.6. VSCodeの拡張機能Pylanceのimport errorや補完の不具合の解消法
- 1. 起きた問題
- 2. 環境
- 3. やったこと
- 3.1. 講義用のフォルダをまとめて作成する[python]
- 3.2. Pythonでオリジナルのドット絵エディタを作る(1) – シンプルなドット絵エディタ
- 3.3. LeetCode “40. Combination Sum II”に、ビット演算と再帰で挑んで失敗した話
- 3.4. 【初心者向け】QGISの自作プラグインにスライダー機能を追加したい!
- 3.5. Pythonでwebスクレイピング 環境構築からスクレイピングまで
- 3.6. CNNを用いて飯テロ画像を判定してみた
- 3.7. Simple function to export and download XGBoost BigQuery model
- 3.8. Python3でbasemapをインストールする際に出力されるエラーへの対処
- 3.9. Pythonで九九表を一行で作る
- 3.10. pythonの業務自動化で東京オリンピックメタル情報を毎日受信してみましょう
- 3.11. 【Python3】opencvで出来るだけ品質を落とさずresizeする【初心者向け】
- 3.12. 【Mac】cv2のImportError(Reason: image not found)
- 3.13. FastAPI × Stripe サブスクリプション登録を試す
- 3.14. 挿入順を覚えている連想配列
現在出ている気象警報・注意報を取得する
#初めに
現在出ている注意報・警報を取得したいと思うことは無いでしょうか?
現状、それらの情報を取得できるAPIはたいてい有料なことが多いです。
そこで今回は気象庁のWebAPI(?)を利用して取得しようかと思います。
#事前準備
[このページ](https://www.jma.go.jp/bosai/warning/#area_type=japan&area_code=010000&lang=ja)から地方エリアのコードと市町村区のコードを取得しておきます。
例えば東京都千代田区の場合、[関東甲信地方の東京都東京地方](https://www.jma.go.jp/bosai/warning/#area_type=offices&area_code=130000&lang=ja)のURLのoffices&area_code=””の部分が地方エリアコードとなります。
そのあと[千代田区](https://www.jma.go.jp/bosai/warning/#area_type=class20s&area_code=1310100&lang=ja)を選択した際URLのclass20s&
Jupyter notebookのテーマ変更
ちょっとしたデータ分析やデータ可視化にもってこいの Jupyter notebook。
テーマを変更して、いつもと違う気分で使用してみませんか?ここでは基本的な設定のみ取り上げます。詳細設定に関しては公式ページをご覧ください。
https://github.com/dunovank/jupyter-themes
### pipでインストール
“`sh
# jupyterthemesのインストール
pip install jupyterthemes# 最新版にアップデート
pip install –upgrade jupyterthemes
“`### condaでインストール
“`sh
# jupyterthemesのインストール
conda install -c conda-forge jupyterthemes# 最新版にアップデート
conda update jupyterthemes
“`### 以下は共通
“`sh
# テーマ一覧を表示
# chesterish | grade3 | gruvboxd | gruvboxl
# m
【 エラー解消法 】RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
###これだと解決しなかった
– https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10204544165
“`bash:Terminal
pip install numpy –upgrade
pip3 install numpy –upgrade
“`###これで解決した
– https://stackoverflow.com/questions/33859531/runtimeerror-module-compiled-against-api-version-a-but-this-version-of-numpy-is
> “`text:
>9
>This worked for me:
>
>sudo pip install numpy –upgrade –ignore-installed
>“`“`bash:Terminal
sudo pip install numpy –upgrade –ignore-installed
“`
pyinstallerインストール ( Python3, Ubuntu 20.04 )
## 環境
“`
ubuntu 20.04
“`## install
“`
$ pip3 install pyinstaller
“`その後実行すると,以下のエラー発生
“`
pyinstaller: コマンドが見つかりません
“`インストール先を調べる
“`
$ sudo find / -name “pyinstaller”
/home/hoshina/.local/bin/pyinstaller
find: ‘/run/user/1000/gvfs’: 許可がありません
“`以下に実行ファイルがあることがわかった.“`~/.local/bin/pyinstaller“`
/usr/binにコピー
“`
sudo cp .local/bin/pyinstaller /usr/bin/pyinstaller
“`確認 -> OK
“`
$ pyinstaller -v
4.5
“`## 参考
https://www.it-swarm-ja.com/ja/linux/pyinstaller%E3%82%B3%E3%83%
LeetCode “40. Combination Sum II”に、queueを使って挑んだけど失敗した話
![TimelimitExceeded.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1851956/369e99cc-586a-88d6-5684-e17b7993cf5f.png)
LeetCodeの『40. Combination Sum II』に対する、私なりの挑戦です。結果はTime Limit Exceededです。今日も勝てなかったよ……!#問題
こちらから挑戦することができます。
https://leetcode.com/problems/combination-sum-ii/>
>候補となる数字(candidates)と目標となる数字(target)が与えられています。candidatesの中で候補となる数字の合計がtargetになるような、他とは異なる組み合わせをすべて見つけましょう。
>
>candidatesの各数字は、組み合わせの中で一度だけ使うことができます。
>
>気を付けてください:解答の集合には、重複する組み合わせを含んではいけません。
>
>
>例1:
>>
VSCodeの拡張機能Pylanceのimport errorや補完の不具合の解消法
起きた問題
VSCode上でPylanceという拡張機能を使っていて
“`python:sample.py
import numpy as np
import matplotlib.pyplot as plt
“`などと書くとエラーを示す波線が出るのですが実際実行してみると問題なく実行できるという状態になりました。しかし、この「問題ない」というのはあくまでコードが正しく書けていればの話でもしnumpyのメソッドにtypoがあったときなどにVSCodeが「間違っているよ!そんなメソッドは存在しないよ!」と言ってくれなくなります。それにimportする度にエラーの波線が出るのは鬱陶しいので解決法を調べました。
環境
MacOS BigSur, python 3.6.6 64-bit
やったこと
初めにsettings.jsonというファイルをいじりました。このファイルはshift+command+pを押して、settings.jsonと打ち込めば設定画面に移ることができます。ここで設定画面
講義用のフォルダをまとめて作成する[python]
#フォルダーを再帰的に作りたい
いままでは新学期になるたびに講義ファイルをまとめるフォルダーを作っておりました。
大した労力じゃないかもしれないけど、地味に大変だから何とかしたい!
#コード
フォルダーを作りたい場所で動かすと出来上がり。
はじめに一番上になるフォルダーの名前を決めることができます。
曜日や時限数は調整してみてください。“`python:foldermaker.py
import osweek = (‘1_Monday’, ‘2_Tuesday’, ‘3_Wednesday’, ‘4_Thursday’, ‘5_Fliday’)
period = (‘1’, ‘2’, ‘3’, ‘4’, ‘5’)title = input(‘input folder name…’)
for w in week:
for p in period:
os.makedirs(title + ‘/’ + w + ‘/’ + p)
“`
#参考https://note.nkmk.me/python-os-mkdir-makedirs/
Pythonでオリジナルのドット絵エディタを作る(1) – シンプルなドット絵エディタ
#はじめに
Blenderでモデリングを行う過程で、独自の機能を盛り込んだドット絵エディタをPythonで作りました。このドット絵エディタにはFFT機能の他に、ドット絵をそのままSVG形式でエクスポートする機能があります。 pic.twitter.com/cgJuAudnKa
— ヒサン@電子材料・デバイスbot (@Hisan_twi) July 30, 2021
このシリーズではこのドット絵エデ
LeetCode “40. Combination Sum II”に、ビット演算と再帰で挑んで失敗した話
LeetCodeの『40. Combination Sum II』に対する、私なりの挑戦です。結果はTime Limit Exceededです。
#問題
こちらから挑戦することができます。
https://leetcode.com/problems/combination-sum-ii/>
>候補となる数字(candidates)と目標となる数字(target)が与えられています。candidatesの中で候補となる数字の合計がtargetになるような、他とは異なる組み合わせをすべて見つけましょう。
>
>candidatesの各数字は、組み合わせの中で一度だけ使うことができます。
>
>気を付けてください:解答の集合には、重複する組み合わせを含んではいけません。
>
>
>例1:
>>
>>Input: candidates = [10,1,2,7,6,1,5], target = 8
>>Output:
>>[
>>[1,1,6],
>>[1,2,5],
>>[1,7],
>>[2,6]
>>]
>>
>
>例2:
>
>>
>>Input: candidates = [
【初心者向け】QGISの自作プラグインにスライダー機能を追加したい!
# はじめに
この記事は、QGISのプラグイン開発を行うにあたって
**「QGIS上にスライダー機能を有した自作プラグインを追加したい」**
という願いを持つ方に向けて執筆しています。今回の願い:QGIS上で↓こんな画面を作りたい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1147458/3fdbcdb1-ddb9-76f9-7fbc-9804834649c3.png)**※注意**
本当にスライダー機能を追加しているだけです。
今回作成するスライダーを動かしてもQGIS上は何も起きません。
(スライダー動かしたら、なんか動く機能についてはいつか書きます)また、本記事は**「QGIS上のプラグインを作ったことがない方」**
を想定読者として、なるべく初心者に優しい記事を目指します。そのため、この記事内の情報だけでプラグイン作成が完結するように心がけます。
(作業中にあっちこっちのページ見ると、混乱するよね)
他記事と重複する内容もありますが、何卒ご了承くださいませ。
Pythonでwebスクレイピング 環境構築からスクレイピングまで
# Webスクレイピングの基礎
私が行っているWebクローリング方法について紹介します。
開発言語は`Python 3`です。## 1. 開発環境を整える
言語は`Python 3`を使用します。外部ライブラリのインストールのために`Anaconda(conda)`もしくは`pip`を使用します。
個人的には`Anaconda`をオススメします。`Jupyter`などの非常に使いやすい開発ツールや、よく使用するライブラリがデフォルトで入っているため、別途パッケージをインストールする手間が省けます。なお、外部ライブラリについては以下のものを使用します。
|ライブラリ|用途|
|—|—|
|Beautiful Soup 4|`jQuery`ライクのcssセレクタでHTMLを処理します。|
|Selene|`Selenide`という実際にWebブラウザを操作しながらスクレイピング処理を行えるライブラリのPythonラッパーです。ログイン処理などを介したクロールについてはこちらのライブラリを使用します。|### [Beautiful Soup 4](https
CNNを用いて飯テロ画像を判定してみた
###**目次**
[1.検証内容](#検証内容)
[2.検証動機](#検証動機)
[3.開発環境](#開発環境)
[4.開発言語](#4開発言語)
[5.学習用データセット](#5学習用データセット)
[6.達成目標](#達成目標)
[7.前処理](#2前処理)
[8.学習モデルの作成(料理ラベル全部)](#学習モデルの作成(料理ラベル全部))
[9.学習モデルの作成(料理ラベル10種類限定)](#学習モデルの作成(料理ラベル10種類限定))
[10.学習モデルを用いた画像判定](#学習モデルを用いた画像判定)
[11.まとめ(考察)](#まとめ(考察))
[12.今後の展望](#今後の展望)###**検証内容**
畳み込みニューラルネットを使ってtwitter上の料理画像を判別できるか検証してみました。
*判定用の画像はtwitter上の「#飯テロ」から拝借###**検証動機**
機械学習を学んでおり、その学習の入り口として画像認識をしてみたかった。とにかく学んだことをアウトプットしてみようと思っていました。なんで料理の画像認識なのかというと、自分が食品の会社に勤めてい
Simple function to export and download XGBoost BigQuery model
Today I would like briefly share with you a simple function I have assembled in order to export and download XGBoost BigQuery model in a single shot. I would like to mention that the procedure was suggested to me by my boss and colleague E. Torii and I just
figured out how to do it completely in Python and assembled the pieces.So, here goes the [code](https://gist.github.com/nailbiter/b19ef8cf4c3c68783438209fb722fdac):
“`py
from google.cloud import storage, bigquery
import xgboost as xgb
imp
Python3でbasemapをインストールする際に出力されるエラーへの対処
# basemapのインストール
地理データなどを表示するために役立つbasemapは[ここから](https://github.com/matplotlib/basemap)ダウンロードできる。
しかし、basemapを使用する際に必要なlibgeosをビルドする際に問題が起きる。basemapのリポジトリのREADEME.mdのインストール方法は、以下のように掲示されている。
“`sh
cd geos-3.3.3
./configure –prefix=$GEOS_DIR
make; make install
“`2行目まではパスするが、3行目でマクロに関するエラーが出力される。
このエラーには、環境変数のCXXにコンパイラの情報を設定することで解決できる。“`sh
export CXX=”g++ -std=c++98″
“`## matplotlibの呼び出し
再度インストールを実行しようすると,今度はmatplotlib関連のエラーが出力される。
このエラーには、以下のコマンドを入力することで対処できる.“`sh
pip install
Pythonで九九表を一行で作る
# 概要
プログラミングのテスト前日、Pythonのテキストにある演習問題にこうあった。
> 次のような九九表を作成してみよう“`
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
“`コードゴルファー(クソ弱い)としてはこれを一行で書いてみたい。
というか書けるの、これ?ググってもだれもやってない。だったらやるしかないじゃない。
明日がテストなので足早に、テンション高めで書いていきます。……ということで完全にネタです。
個人の趣向ですが、フォーマッタは使用します。
普通に書いたほうが短いとかいうツッコミはNGです。# 実際に書いたコード
実際に考えたのは次のような
pythonの業務自動化で東京オリンピックメタル情報を毎日受信してみましょう
## 当記事で実現していること
– webから毎日のオリンピックメタルランキング(TOP10)の情報を取得する
– 取得した情報はEXCELに保存する
– オリンピック開始日から当日分のメタルランキング(TOP10)をEXCELから取得する
– 当日のメタルランキング(TOP10)をグラフで表示する
– メタルランキング(TOP10)の毎日のメタル推移をグラフで表示する
– 当日のメタルランキング(TOP10)の情報、上記作ったグラフを毎日一定時間に自動でメールでお知らせする## 当記事で共有する機能
– pythonでWEBからデータ取得
– pythonでEXCELにデータ書き込みとEXCELからデータ読み取り
– pythonで表データをグラフで表示する
– pythonでメール送信する「添付ファイルなし」
– pythonでメール送信する「添付ファイルあり」
– windowsのスケジューラの使い方## 早速作りましょう
### 必要なライブラリ
“` tokyo2020.py
# 使てない物もあるかもしれません
import sys
from datetime
【Python3】opencvで出来るだけ品質を落とさずresizeする【初心者向け】
cv2.resizeをデフォルト設定で行うと、画像の品質が劣化する。
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) → dst
画像の縮小には interpolation=INTER_AREA、拡大には INTER_CUBIC(処理遅め)、またはINTER_LINER(速くて見た目もよい)を使用すると良いようだ。
イラストだと劣化がわかりにくいため、文章のファイルを使用する。
試しに「吾輩は猫である」の冒頭をスクショ。画像として保存。https://www.aozora.gr.jp/cards/000148/files/789_14547.html
### オリジナル画像(shape=(1590, 2621, 3))
![neko.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0
【Mac】cv2のImportError(Reason: image not found)
### エラー内容
“`
ImportError: dlopen(/Users/user/venv/lib/python3.8/site-packages/cv2/cv2.cpython-38-darwin.so, 2): Library not loaded: /opt/homebrew/opt/ffmpeg/lib/libavcodec.58.dylib
Referenced from: /Users/user/venv/lib/python3.8/site-packages/cv2/cv2.cpython-38-darwin.so
Reason: image not found
“`### 環境
+ homebrew 3.2.5
+ python 3.8
+ venv### 状況
仮想環境上にてpipを使用しopencvをインストール後、importした時にエラーに遭遇
“`
$ pip install opencv-python
$ python3
$ import cv2
“`### 解決策(備忘録)
ターミナルを開き、homebrewを使って
FastAPI × Stripe サブスクリプション登録を試す
## はじめに
サブスクリプション課金を行う際、Stripeを利用すると比較的簡単に課金が行えますが、DB上にある顧客の情報を使いたかったり、すでにサブスクリプション課金が行われている顧客に再度登録が走らないようにしたいなどの理由で、バックエンド側のAPIサーバーを絡めるケースはあるかと思います。Stripeでサブスクリプション登録をするためには、以下3つの作業が必要になります。
1. Planを登録する
2. Customerを登録する
3. Subscriptionを登録するこれら3つについて、FastAPI経由での実装を試してみました。
## 事前準備
### FastAPI
[FastAPI公式](https://fastapi.tiangolo.com/ja/#_3)に従いアプリケーションの準備を行います。### Stripe
[Stripe公式](https://stripe.com/jp)にてアカウント登録を行います。登録を行うと、テスト環境が利用可能となります。
また、ダッシュボードの「商品」タブから商品登録を行います。この際料金情報の登録は不要です
挿入順を覚えている連想配列
# これは何?
Ruby の Hash には shift があることの紹介。
と思って調べたら、 Python3 の `dict` にも順序があるのがあったので、それも紹介。# Ruby の Hash
Ruby の Hash は挿入順を覚えている。
挿入順を利用して古いものから順に取り出せる。
以下のような感じ。“`ruby:ruby
h={foo:111,bar:22,hoge:3}
h[:bar]=44
h[:baz]=55
s=””
while ! h.empty? do
s += h.shift.inspect
end
p s #=> “[:foo, 111][:bar, 44][:hoge, 3][:baz, 55]”
“`先頭の値を見る `first` と、先頭の値を撤去する `shift` はあるけど、末尾を扱う `last` と `pop` は無い。
“`ruby:ruby
{a:1}.first #=> [:a, 1]
{a:1}.last #=> NoMethodError: undefined method `last’
{a:1}.