- 1. JupyterLab Appの基本の操作メモ
- 2. PythonのSeleniumでファイルアップロードする方法
- 3. pythonのポインタ渡しを理解する話
- 4. datasetのUpsert
- 5. 【python】関数の引数[py_02_20211004]
- 6. Pythonで書いたCGIが動かない時真っ先に確認するたった2つのポイント
- 7. ABC88 C – Takahashi’s Information を解いた
- 8. 超解像用の自作ImageDataGeneratorを作る
- 9. ABC103 C – Modulo Summation で笑ってしまった
- 10. 【Python】enumerateの使い方
- 11. Djangoからherokuへデプロイ時のSECRET KEYの設定(Win10)
- 12. ABC221 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder
- 13. Pythonでしか描けない美しいデシジョンツリー(決定木)をlightGBMでも描こう!
- 14. AmazonLinux2+python+Word2Vecで連想語辞書を作る
- 15. 【Python】OpenCVで間違い探しをする
- 16. 毎日色々と巡回して自動で通知してくれる便利Botを作ってみる【応用可】
- 17. 【Python】for文でリスト繰り返し処理
- 18. 2次元の非適合要素をPythonで実装する
- 19. PythonでRSSのフィードのデータを取得してニュースとか天気を表示する電工掲示板をつくる
- 20. iCalendarデータの仕様とPythonにおける利用方法
JupyterLab Appの基本の操作メモ
# 概要
– JupyterLabのデスクトップアプリがリリースされたということで触ってみた
– アプリのインストールからパッケージの追加インストールまで
– パッケージ管理、環境の切り替えをしたいけどそこがよくわからない# JupyterLabAppとは
その名の通り、JupyterLabのアプリです。
ダブルクリックでインストールしたらJupyterの実行環境ができちゃいます。アプリに内包するAnacondaによってPython実行環境が完結しています。そのため、別途Python環境を構築したりということは必要なくなります。
numpy, scipy, pandas, matplotlibなどのよく使うパッケージはすでに導入済みなので、その辺りもPythonを触ってみようと思っている初学者には嬉しいのかも。詳しくはこちらを参照してください。
https://blog.jupyter.org/jupyterlab-desktop-app-now-available-b8b661b17e9a
インストールパッケージやソースはこちら。
https://githu
PythonのSeleniumでファイルアップロードする方法
“`python:ファイルアップロード
# 要素取得
file_upload = driver.find_element_by_xpath(‘アップロードボタン要素のxpath’)# パス入力
file_upload.send_keys(‘ファイルパス’)
“`
これでファイルがセットされます。「アップロードボタンをクリックするのではなく、パスを入力する」ところがポイントです。
pythonのポインタ渡しを理解する話
#TL;DR
代入をするときポインタが渡される
constな値を代入した際にもその値のポインタが渡される#Pythonでもある意味厄介なポインタ
C言語にもあるポインタの概念、こいつの仕様を理解しようと色々悪戦苦闘したのはなつかしいです(今でも理解できていない節がありますが)。その後Pythonでもポインタを使いたいと思い調べたら言語特有の省略主義的なものゆえか頭が完全にバグったのでまとめておきたいと思います。
(上記の通りポインタに対して完全な理解をしたわけではないので終始誤っていることを記述する可能性がありますが、ご了承ください。また以下のコードはすべてインタプリンタ上で動かしています)#実行環境
python: Python 3.9.0
OS: Windows 10#変数同士の代入
“`python:
a=3
id(a) #1392940902768
b=9
id(b) #1392940902960
b=a
id(b) #1392940902768
“`id関数は引数のアドレスを返してくれます。上記のような単純な代入ではそこいらでも言われている通りちゃんと
datasetのUpsert
# DataFrameのto_sql()を使っていたが、Upsertを簡単に行いたかったので、datasetに変更した
Pandas.DataFrame.to_sql()には現在Upsertが備わっていない(PRはある)ので、簡単にUpsertするために、datasetに変更。
参考: [PandasのSql Upsertを試してみた](https://qiita.com/s2hap/items/b329ce4f9d6c229382ff)CSV操作がかなり入るので、Upsert直前までは、DataFrameを使いたい。
### DataFrame.to_sql() → dataset.upsert_many()に変更
参考: [dataset documentation](https://dataset.readthedocs.io/en/latest/api.html)
bulkのupsertがありそうだったので、以下を利用したいと思いました。
`upsert_many(rows,id)`
upsert_manyの中身は、upsert()が呼ばれている。### 以下
【python】関数の引数[py_02_20211004]
###はじめに
関数へ渡す引数について、いろいろあります。###実行環境
pycharm 2021.2(python3.10)###コード1
基本的な位置引数のデフォルト値設定の記述
(位置引数の場合、デフォルト値設定は設定しない位置引数の後でなければならない)“`python
def func(a,b=4):
print(‘a:’+str(a))
print(‘b:’+str(b))
func(1)
“`表示
“`
a:1
b:4
“`###コード2
キーワード引数はこんなカンジ。“`python
def func(a, b, c):
print(‘a:’+str(a) + ‘ b:’+str(b)) + ‘ c:’+str(c))
func(b=2, c=3, a=1)
“`表示
“`
a:1 b:2 c:3
“`###コード3
引数にリストを利用する場合の注
Pythonで書いたCGIが動かない時真っ先に確認するたった2つのポイント
# TL;DR
– **chmod 755しました?**
– **実行したいファイルの改行文字、LFですか?**# 環境
– RHEL
– httpd
– 開発はVSCode on Windows# 詳細
– Windows上で開発している限り動作する
– Pythonファイルの拡張子をcgiに変更してRHELのhttpd領域にアップロードしても動かない!
– 調べて毎回上記2点で解決するので書いた。コードを疑う前にまずチェックしてみよう的なノリ。
ABC88 C – Takahashi’s Information を解いた
https://atcoder.jp/contests/abc088/tasks/abc088_c
![abc88_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/94fb341b-3046-c473-e072-290ada685dda.png)
![abc88_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/11a7aa7c-564a-d051-c01c-5f6782ddfcbf.png)
![abc88_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/fde01274-b2c9-6792-869d-10fbb14ec8ba.png)ね、眠い。
とりあえず、for 文が面倒だったから、力技。“`TakahashiSinformation.py
C = [list(map(int
超解像用の自作ImageDataGeneratorを作る
TensorFlow(keras)のImageDataGeneratorは便利ですよね。
ただ超解像タスクや、セグメンテーションタスクのように入力と出力が共に画像で、同じ変形をしたい時などはそのままだと使えません。
なのでクラス継承を使って超解像用のImageDataGeneratorを作ります。
# 環境
Google Colabを使います。
最近Pro+に課金しました。# 自作ジェネレータ
結論を言うとImageDataGeneratorとその中のflowやflow_from_directoryを継承すればokです。今回はndarray形式のデータを水増しするということを考えてflowを継承します。
水増し手法は何もしない、左右反転、90,180,270度回転の組み合わせで合計8種類をランダムに行うものとします。以下そのコードです。
“`python
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGeneratorclass MyGener
ABC103 C – Modulo Summation で笑ってしまった
https://atcoder.jp/contests/abc103/tasks/abc103_c
![abc103_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/cef7536c-3b16-43ab-d726-9dcc1ed69971.png)
![abc103_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/da34a38c-c77c-205f-470f-44a7b04dcc48.png)
![abc103_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/e07684bb-0be7-245e-ef6d-6ec903de0baf.png)良くわからん。回答を見た。
https://www.youtube.com/watch?v=nVSWen0oM38
思わず笑ってしまった。そん
【Python】enumerateの使い方
# enumerateメソッドはlist, tuple, dictionaryに全部適用されます。
普通のfor文要素しか取り出せないが、
enumerateだと要素とindexの両方とも取り出せます。### 1. List
“`python
databases = [‘MySQL’, ‘PostgreSQL’, ‘SQLite’, ‘MariaDB’]for index, db in enumerate(databases):
print(index, db)“””
結果:
0 MySQL
1 PostgreSQL
2 SQLite
3 MariaDB
“””
“`### 2. Tuple
“`python
databases_tp = (‘MySQL’, ‘PostgreSQL’, ‘SQLite’, ‘MariaDB’)for index, db in enumerate(databases_tp):
print(index, db)“””
結果:
0 MySQL
1 PostgreSQL
2 SQLite
3 MariaDB
“””
Djangoからherokuへデプロイ時のSECRET KEYの設定(Win10)
# 問題
Djangoで作成したアプリをherokuへデプロイしようとしたときに、SECRET KEYが反映されずに困った。# 解決方法
SECRET KEYの括弧やアンド [ (, ), & ] が原因で認識しているみたい。
上記の記号を””(ダブルクオート)で囲むことでherokuにSECRET KEYの環境変数を指定できた。“`bash
& ‘heroku’ @(‘config:set’, ‘SECRET_KEY=eoik6-“&”dnr9elgmrt7-%3hu_”&”37$3hg!9c6x!^khjr3!z*z”&”b4’)
“`
(SECRET KEYはそれぞれのアプリのもので設定)参考:
https://stackoverflow.com/questions/32130105/setting-environment-variable-in-heroku-via-powershell-with-special-characters?rq=1# 環境
PowerShell(Bashでは反映できなかった)
Django 3.2.7
Python 3.9.5
ABC221 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder
ABC221(AtCoder Beginner Contest 221) A~D問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。その他のABC解説、動画などは以下です。
https://qiita.com/sano192/items/54accd04df62242b70f0
##A – Seismic magnitude scales
https://atcoder.jp/contests/abc221/tasks/abc221_a
32の(A-B)乗を出力すればよいです。
pythonではaのx乗を
a**x
と書きます。入力の受け取り、出力がわからない方は以下の記事を参考にしてください。
https://qiita.com/sano192/items/eb2c9cbee6ec4dc79aaf
**【提出】**
“`python:
# 入力の受け取り
A,B=map(int, input().split())# 答えの出力
print(32**(A-B))
“`##B – typo
https://atcoder.jp/conte
Pythonでしか描けない美しいデシジョンツリー(決定木)をlightGBMでも描こう!
#はじめに
Pythonには、デシジョンツリー(決定木)の可視化・モデル解釈のための **dtreeviz** というライブラリがあります。
この **dtreeviz** で表示されるデシジョンツリーは、もう美しいなんてもんじゃない。
[**こちらの記事**](https://qiita.com/hima2b4/items/04380f160ef6c4193f14) でも紹介させていただきましたが、「プロに頼んだの?」というくらいのビジュアルに、うっとりしてしまいます。
先日、「**lightGBMでもdtreevizが描ける**」と、以下のTweetで知りました。欠損値、multiclassには今のところ非対応っぽい
— suk1yak1 (@suk1yak1) Mar
AmazonLinux2+python+Word2Vecで連想語辞書を作る
pythonとWord2Vecで連想語辞書を作成した際の作業記録を残します。コーパスにはWikipediaのDumpを利用させて頂いています。
# 前提
– OSはAmazonLinux2、形態素解析エンジンのMeCabがインストール済であること。
– ※ MeCabのインストールについては[前回](https://qiita.com/tricrow/items/b722542ee2512bb60b8f)または他の方のインストール記事を参考にして下さい。# 作業手順
## pythonとpip、依存するライブラリのインストール
$ sudo yum install -y python3
$ echo ‘alias python=python3.7’ >> ~/.bashrc
$ source ~/.bashrcそれぞれバージョンを表示させられればOK。
$ python –version
Python 3.7.10
$ pip3 –version
pip 20.2.2 from /usr/lib/python3.7/site-packages/p
【Python】OpenCVで間違い探しをする
# はじめに
OpenCVを使って、いわゆる「間違い探し」をしてみます。# 出来たこと
2枚の画像を読み込ませると、間違い(差分)の部分が白く表示されます。1枚目
![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689015/5103cdcf-4f2e-f425-f7a0-83e17c1b2622.jpeg)2枚目
![b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689015/021f4582-a8e4-57d5-0e83-b4b2a5a5ed14.jpeg)出力
![結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689015/7e4a7893-8880-2260-7275-90c8adf02c34.png)# 環境
– macOS: 11.6
– Python: 3.9.5
– opencv
毎日色々と巡回して自動で通知してくれる便利Botを作ってみる【応用可】
毎日Botが自動でWeb上を見回って通知してくれると便利ですよね。
**祝日まであと何日だろう?**
**明日ってゴミの日だっけ?**
**そういえばいつも見てるあれ今どうなってるかな**こういった時に普通だと自分で確認する事になると思うのですが全て自動でやらせてみる。
という事で出来るだけ初心者でも出来る便利Botの作り方を解説していきます。・Slackの例
![SlackBot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307359/d907200e-ebb5-5d21-fd64-1eb724a11495.png)
・Twitterの例
![TwitterBot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307359/fbe312ea-f28b-e044-d195-7cd51a0a1e70.png)## ? 通知出来るもの
通知したいデータを取得さえ出来ればどんな物でも可能です。
それをSla
【Python】for文でリスト繰り返し処理
# Pythonのリスト繰り返し処理は二種類あるので、簡単にメモします。
### 自分の定義したリストです。
“`python
databases = [‘MySQL’, ‘PostgreSQL’, ‘SQLite’, ‘MariaDB’]
“`### 1. for文とin文で繰り返し処理
“`python
for db in databases:
print(db)
“””
結果:
MySQL
PostgreSQL
SQLite
MariaDB
“””
“`### 2. for文とindexで繰り返し処理
説明: リストの長さは4で、rangeは**最後の数字-1**までを含めるから、
databases[0]、databases[1]、databases[2]、databases[3]がアクセスされます。“`python
for i in range(len(databases)):
print(databases[i])“””
結果:
MySQL
PostgreSQL
SQLite
MariaDB
“””
“`以上、好きな方を使い
2次元の非適合要素をPythonで実装する
# 概要
有限要素法でせん断ロッキングを防ぐ手段として使われる非適合要素をPythonで実装してみます。
この記事では、一番代表的と思われるWilson-Taylorの非適合要素(QM6)を実装しています。
Wilson-Taylorの非適合要素は2次元では4節点の四角形要素となります。# 前提知識
・四角形要素の要素剛性マトリクスの式
[有限要素法の定式化 アイソパラメトリック要素](https://www.fem-vandv.net/c29.html)
[FEM要約(四角形)](https://moridesignoffice.com/FEM-sum-4.html)
・仮想仕事の原理
[仮想仕事の原理](https://www.fem-vandv.net/c34.html)
・ガウス求積# 非適合要素とは
非適合要素は要素を曲げ変形させた時に発生するせん断ロッキングを解決するために使用される要素です。せん断ロッキングは下の図のように曲げ変形して欲しい要素が実際には台形のように変形することによって起きる現象で四角形要素のような要素内の変位が1次式で表される要素に対して起こりま
PythonでRSSのフィードのデータを取得してニュースとか天気を表示する電工掲示板をつくる
#まえがき
ゴミ箱の中から真っ二つになったノートパソコンをみつけた。二つに分離するというだけで、液晶も割れてないしなんだか勿体ない。そこでプラバンを駆使して以下のようなものを作った。
![Q (4).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629378/a50b5928-48e3-e84f-3481-d4644973054f.jpeg)
中々よくできている。この作った一体型パソコン(?)を有効に活用すべく、任意の**RSS**からフィードを取得してニュースやら天気やら情報を表示する電光掲示板を**Python**を用いて製作した。
![Q (6).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629378/28678b76-6a36-9cae-9b91-b55dd8438776.jpeg)
こんな感じ。
本記事ではこのRSSのフィードを取得して表示するプログラムを紹介していく。だれかのなにか創作物にお役
iCalendarデータの仕様とPythonにおける利用方法
## 概要
この記事ではiCalendarデータの基本的な仕様およびPythonでiCalendarデータを扱える[icalendarパッケージ](https://pypi.org/project/icalendar/)についてまとめます。## iCalendarとは
iCalendarとはインターネットを通してPCやスマートフォンなど異なるデバイス間でカレンダー情報をやりとりするためのデータ形式です。現在、カレンダー情報を扱うためのもっとも標準的な形式であり、iCalendar形式で作成されたファイルの拡張子は通常`.ics`、`.ical`、`.icalendar`のいずれかになります。
なおiCalendarではTODO情報やジャーナル情報も取り扱うことが可能ですが、それらについての説明は割愛します。
## iCalendarの歴史
iCalendarは、1998年にIETF(Internet Engineering Task Forceの略。インターネット技術の標準化推進団体)によって[RFC2445](https://datatracker.ietf.org/do