- 1. 講義用のフォルダをまとめて作成する[python]
- 2. Pythonでオリジナルのドット絵エディタを作る(1) – シンプルなドット絵エディタ
- 3. LeetCode “40. Combination Sum II”に、ビット演算と再帰で挑んで失敗した話
- 4. 【初心者向け】QGISの自作プラグインにスライダー機能を追加したい!
- 5. Pythonでwebスクレイピング 環境構築からスクレイピングまで
- 6. CNNを用いて飯テロ画像を判定してみた
- 7. Simple function to export and download XGBoost BigQuery model
- 8. Python3でbasemapをインストールする際に出力されるエラーへの対処
- 9. Pythonで九九表を一行で作る
- 10. pythonの業務自動化で東京オリンピックメタル情報を毎日受信してみましょう
- 11. 【Python3】opencvで出来るだけ品質を落とさずresizeする【初心者向け】
- 12. 【Mac】cv2のImportError(Reason: image not found)
- 13. FastAPI × Stripe サブスクリプション登録を試す
- 14. 挿入順を覚えている連想配列
- 15. [Python]等差数列×等比数列の解を求めてみた[備忘録]
- 16. Pythonにおける.gitignoreに追加するべきファイル
- 17. mac pyenv 環境でtkinterがnomodulenamedになる時の対処法
- 18. 大谷選手がホームランを打ったことをLINE通知してみた。
- 19. 【Python】よく使いそうな書き方まとめ
- 20. Pandas DataFrameをリストに入れて都合よく使っちゃおう
講義用のフォルダをまとめて作成する[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}.
[Python]等差数列×等比数列の解を求めてみた[備忘録]
# はじめに
Pythonでコーディングを行ったので、備忘録として残します。
Python環境下にて、是非お使いください。# コーディング
“`py
#sympy内の関数を使用
from sympy import *
n=Symbol(“n”)
a,b,c = map(int,input(“a,b,c=? ? ?”).split())
while c==0:
print(“Input a,b,c except c==0”)
a,b,c = map(int,input(“a,b,c=? ? ?”).split())
Prog = sequence((a*n+b)*c**n, (n, 0, 20))#以下、出力(例:a,b,c=1 1 2)
print([int(N) for N in Prog])
print(Prog[3])
“`
>出力結果
[1, 4, 12, 32, 80, 192, 448, 1024, 2304, 5120, 11264, 24576, 53248, 114688, 245760, 524288, 1114112, 2359296,
Pythonにおける.gitignoreに追加するべきファイル
# .gitignoreファイルとは
Gitの管理下から除外するファイル・フォルダを指定するファイルのこと。
commit内容をできるだけ汚さない為に、ローカル環境(自分のPC)だけに
必要なファイルを追加する。## Gitの管理下から除外推奨のファイル・フォルダ例
各言語における除外すべきファイル・フォルダは公式サイトを参照。https://github.com/github/gitignore
### Python
https://github.com/github/gitignore/blob/master/Python.gitignore+ PyCharmのキャッシュファイル
+ venvの仮想環境フォルダ
+ jupyter notebookのチェックポイントフォルダなど、うっかりcommitすると怒られるので要注意
mac pyenv 環境でtkinterがnomodulenamedになる時の対処法
macでtkinterをinstallしても起動せず、いろいろ格闘した末に起動できたので、どうやって解決したかをまとめてみた。
#使用していた環境・バージョン
・macos mojave (10.14.6)
・pyenv 2.0.4
・tcl-tk 8.6.11 (bottled)[keg-only]
・python3.9.6#結論
`$ brew install tcl-tk`,
`$ brew install python`した後に
`$ brew install python-tk`を入力#症状
python3.9.6を使用。tkinteを使うために以下のようなコマンドを打つとエラーが発生。tkinterはpythonの標準ライブラリのはずなのになぜか起動しない。原因はtcl-tkがパソコンに入っていないことらしいが、最後までイマイチよくわからなかった。“`
$ python3 main.py
(中略)
Traceback (most recent call last):
(中略)
import _tkinter # If this fails your
大谷選手がホームランを打ったことをLINE通知してみた。
##はじめに
大谷選手の活躍が目覚ましいですね!!
普段野球はほとんど観ない私ですら、ついついホームランを打ったかどうか、結果が気になってしまいます。しかし、結果は気になるものの、
・試合日程は把握していない
・そのため、適宜Yahoo!ニュースをチェックして大谷選手がホームランを打っていないかチェックする
という状態であり、段々とチェックするのが面倒になってきてしまいました。
(試合日程を確認すればいいだけなのですが・・・)そこで、大谷選手がHRを打ったことをLINE通知する仕組みを作ってみました。
↓マーベラス、オオタニサン!!
## 通知内容
通知内容は
・大谷選手がHRを打った旨のメッセージ(1パターンのみ)
・画像
・Yahooの記事
の3点です。## はじめに
Python勉強中です。
よく使うであろう、もしくは使いそうな書き方を備忘録としてまとめます。## 文字列関連
### 文字列の演算
“`python
book = ‘book’
print(book * 4)
“`bookbookbookbook
### bool型への変換
“`python
print(bool(”))
print(bool(‘bool’))
print(‘oo’ in ‘bool’) # ‘oo’が含まれている事を確認
print(‘x’ not in ‘book’) # ‘x’が含まれていない事を確認
“`False
True
True
True### format
“`python
a = ‘Python’
b = ‘YEAR!!’
print(f'{a}, {b}’)
print(‘{}, {}’.format(a, b))
“`Python, YEAR!!
Python, YEAR!!### パディング
Pandas DataFrameをリストに入れて都合よく使っちゃおう
本日、私的には大変ありがたい学びがあったのでここに記すことにしました。
タイトルに示した通り、リストの中にPandas DataFrameを格納して必要に応じて呼び出して使うことができました。
また、リストに入れたDataFrameの名前は同一のもので良いことが大変ありがたいと感じました。素人の私はpandasでDataFrameを作るたびになんだかよくわからないDataFrameの名前を用意してdf1,df2・・・などと名前を変えて作成しておりました。それが、listに格納する順番が決まっている場合はわざわざdfにまどろっこしい名前をつけることなく、リストから呼び出すことが可能です。
文で説明するのも大変なのでコードを示します。例えば以下のように変数名が一緒で中身のみ違うdfを用意して、
リストにappendを繰り返すとlistにデータフレームを格納することができています。“`py
dflist = []
df = pd.DataFrame([1,2],[3,4])
dflist.append(df)
df = pd.DataFrame([5,6],[7,8])
df