- 1. Pytorch Template 個人的ベストプラクティス(解説付き)
- 2. オムロン環境センサ(2JCIE-BU)をラズパイで使ってみた。(3)
- 3. Pythonで第一世代のポケモンをすべてCSVに出力してみた。
- 4. Python VTKを使ってSTLをVoxelメッシュに変換する改
- 5. 各言語の便利な機能のメモ
- 6. [トリビアの泉]1から9の数字が重複なくある9桁の数字は必ず9の倍数になるらしいけど証明とかめんどいしPythonで調べてみた。
- 7. カレーライス作りで学ぶマルチスレッド
- 8. 辞書型
- 9. 完全未経験が【Aidemy Premium Plan】を受講した感想
- 10. 競プロ典型90問 004 – Cross Sum
- 11. Pythonで正規分布と戯れる
- 12. 競プロ典型90問 003 – Longest Circular Road
- 13. AtCoderで入緑するために必要だったアルゴリズムとデータ構造 (2021年10月版)
- 14. kivyMDチュートリアル其の参什捌 Components – Selection篇
- 15. 【Python3】0から作るPython初心者プログラミング【01】-じゃんけんプログラム-
- 16. Ubuntu 20.04でpython3をデフォルトに設定
- 17. [matplotlib]任意の数の色を使って色分けする
- 18. 【Python】Qiita デイリー LGTM 数ランキング【自動更新】
- 19. メルカリの検索結果からタイトルと値段をスクレイピングしたかった
- 20. pythonで空のリストをデフォルト引数にしようと def func(l=list()) と書いてはいけない
Pytorch Template 個人的ベストプラクティス(解説付き)
## はじめに
– Pytorchでコードを書き始めるとき、乱数固定やデータローダー、モデルの訓練や学習結果の取得等、毎度色々なサイトを参照するのは面倒だと思い、現時点の個人的ベストプラクティス・テンプレートを作成してみました。
– 今後のバージョンアップや便利なライブラリの登場で変わるかもしれませんげ、現在はこれで落ち着いています。
– 個人的な備忘録も兼ねて、前半に簡単な解説付きのコードと最後に全コードを載せています。
– もっと便利な書き方やライブラリなどあれば、コメントいただけると嬉しいです。## テンプレート(解説付き)
### 1. ライブラリインポートと初期設定
– torchやよく利用するライブラリ(numpy, matplotlib)のインポート
– モデルの訓練時(for文)の進捗を表示するtqdmライブラリ(jupyter notebookとコマンドライン版)
– 進捗表示は待ち時間の見積もりやエラーに気づくことができるので基本的には設定する
– torch.deviceではGPUが利用できれば指定(GPU利用ができない場合はCPUを指定)
– f
オムロン環境センサ(2JCIE-BU)をラズパイで使ってみた。(3)
センサーのオムロン 2JCIE-BUとデータを格納するPostgreSQLの準備ができたので、実際にテーブルを作成してデータを格納していく。
# 格納テーブルの作成
## 今回格納するデータ
|格納するデータ|説明|
|—|—|
|Time measured|計測時刻|
|Temperature|温度 -10~60℃|
|Relative humidity|湿度 30~85%RH|
|Ambient light|照度 10~2000lx|
|Barometric pressure|大気圧 700~1100hPa|
|Sound noise|騒音 40~94dB|
|eTVOC|総揮発性有機化学物量相当値 0~29206ppb|
|eCO2|CO2 濃度相当値|
|Discomfort index|不快指数|
|Heat stroke|熱中症警戒度|
|Vibration information|振動|
|SI value|スペクトル強度|
|PGA|最大加速度値|
|Seismic intensity|計測震度相当値|詳細は、以下のページの製品カタログやユーザマニュア
Pythonで第一世代のポケモンをすべてCSVに出力してみた。
どうも、Pythonを主軸に開発を行っている学生エンジニアのirohasです。
今回はPythonでよく使われているスクレイピングで開発を行ってみたので共有します。
*なお今回の記事はある程度スクレイピングの知識がある人向けですので、解説などはしません。ある時、ポケモンの名前のデータが欲しいと思いサイトを見ていたのですが、皆さんご存じの通りポケモンはめちゃくちゃ数が多いので手作業でEXCELなどにまとめていては大変です。
そこでスクレイピングでEXCELに格納までやればよくね?となったので、とりあえずまずは第一世代のポケモンだけ出力するコードを作成しました。
全てのポケモンを出力するやつは暇なときにまた作ります。それではまず、コードの全体像からです。
“`python:index.py
import csv
from os import write
import urllib.request
from bs4.dammit import encoding_res
import pandas as pd
from bs4 import BeautifulSouphead
Python VTKを使ってSTLをVoxelメッシュに変換する改
# はじめに
ほぼ先駆者の方たちのパクリで申し訳ないのですが,自分を含む
– stlからボクセルデータを得たい人
– c++を読むのが大変な人
– vtkのインストールが面倒な人には有用だと思ったため一応記しておきます.
~参考記事~
[Python VTKを使ってSTLをVoxelメッシュに変換する](https://qiita.com/matsxxx/items/aff526ea2e1f09590b34)
[[VTK]閉曲面ポリゴンから解析用構造格子を生成する #2](https://qiita.com/torisan_piyopiyo/items/f4e54d2c7453598a3a39)# 目次
1. [コード](#Chapter1)
1. [toleranceの変更の影響](#Chapter2)~~~python
# 参考元: https://qiita.com/toris
各言語の便利な機能のメモ
複数のプログラミング言語でコードを書いていると、忘れてしまうので備忘録
※文法エラーはご容赦ねがいます。### スプレッド演算子
複数の引数を取る関数に配列の内容を渡したいときに利用する。
工夫次第でコードを短くできるのが嬉しい機能。#### C言語の場合
そんな機能はないのでゴリゴリ書く。
“`C
void handler(int p1, const char* p2) {
printf(“%d, %s”, p1,p2);
}handler(list[0], list[1]);
“`#### TypeScriptの場合
“`Typescript
function handler(p1 :number, p2:string) {
console.log(“test”, p1, p2)
}
const list= [ 1000, “12345” ] as const
handler(…list)
“`#### Pythonの場合
“`python
def handler(p1, p2):
print(p1,p2)
[トリビアの泉]1から9の数字が重複なくある9桁の数字は必ず9の倍数になるらしいけど証明とかめんどいしPythonで調べてみた。
QuizKnockの動画で気になったことがあります(QuizKnock見すぎな)。
後日こちらの動画で$123456789$の桁をどう入れ替えても9の倍数になるという定理が紹介されていたので運命を感じ、組んでみることにしました。
辞書型
#今回の授業資料
:::note info
また本日の授業のサンプルコード (以下で列挙したコードであるdic_sample.pyと前回記事 array_sample.pyを合算したpython3ファイル) を,まなBOXにアップしています.演習や授業の参考としてご活用ください.
:::# 辞書
“`python3:dic_sample.py
gakkyu_iin={
‘1組’:’alfred’,
‘2組’:’beck’,
‘3組’:’charlie’}
print(gakkyu_iin)
# → {‘1組’: ‘alfred’, ‘2組’: ‘beck’, ‘3組’: ‘charlie’} と出力される#値の書き換え
gak
完全未経験が【Aidemy Premium Plan】を受講した感想
#はじめに
プログラム未経験なホテルマンが一からAidemyにてAIを学習した感想になります。#本記事の目的
本記事は全く未経験からAidemyを受講してみようと考えている方の参考になるよう書かれています。#Aidemy Premium Planとは
Aidemyは人工知能分野に特化したプログラミングスクールです。
特徴としては– 数学の知識が不要
– 環境構築の必要がない
– メンターとのマンツーマン指導
– 完全オンラインで学習
– カリキュラム外の講座も受けることができる
– 専門実践教育訓練給付金対応といった未経験の方が学習しやすいサービスとなっています。
#学習内容の感想
カリキュラム、学習スタイルの感想です。
####カリキュラム
1.Python入門
2.ライブラリ「NumPy」基礎(数値計算)
3.ライブラリ「Pandas」基礎(表計算)
4.ライブラリ「Matplotlib」基礎(可視化)
5.データクレンジング
6.データハンドリング
7.機械学習概論
8.教師あり学習(回帰)
9.教師あり学習(分類)
10.教師なし学習
11.時系列解析I(統
競プロ典型90問 004 – Cross Sum
#問題
[競プロ典型90問 004 – Cross Sum](https://atcoder.jp/contests/typical90/tasks/typical90_d)
#考察
####全探索を考える
あるAn,mに対してのBn,mを求める計算量を考えます。
計算量は同じ行と同じ列の数字を全て足すので`H+W`になります。
そして全てのAn,mに対してこの計算を行うので`H × W × (H+W)`となって間に合いません。(制約内の最大値で考えると`1.6*10^10`になってしまう)####各行と列の合計を先に出して仕舞えば良いのでは
行と列の合計を先に求めることによって
An,mがある行と列の合計を足してAn,mを引く計算をするだけでBn,mが求められる。#ソース
~~~python3
H,W = map(int,input().split())A = [[0]*W for i in range(H)]
hSum = [0]
Pythonで正規分布と戯れる
# はじめに
E資格の次は統計検定の合格を!ということで、早速Pythonで統計について理解を深めていきたい。そこでまずは正規分布と戯れてみた。# 正規分布とは
以下の確率密度関数で定義される分布である。$$ f(x) = \frac{1}{\sqrt{2πσ^2}} \exp(-\frac{(x-u)^2}{2σ^2}) $$
# 確率密度関数をPythonで書いてみよう。
腐るほど、いろんな人がやったネタであるが、自分で書いてみよう。
確率変数Xと平均と分散を受け取って確率を返すというもの。
numpyなので複数のXに対して計算できちゃうぞ。“`python
# 正規分布関数
def normal(x, u, v):
ret = 1 / np.sqrt(2 * np.pi * v) * np.exp(-(x-u)**2/(2*v))
return ret
“`#描画してみよう
先ほどの関数を使って平均0、分散1の標準正規分布を書いてみよう。“` python
# matplotlibで描画
x = np.linspace(-5, 5,
競プロ典型90問 003 – Longest Circular Road
#問題
[競プロ典型90問 003 – Longest Circular Road](https://atcoder.jp/contests/typical90/tasks/typical90_c)#考察
#### スコアの最大値とは
スコアは`2都市間の距離+1`となります。
つまり、スコアの最大値を求めるには2都市間の距離の最大値を求めれば良い。#### 2都市間の最長の距離を求めるためにどうすれば良いか
今回、N都市間にN-1本の道路があるので各都市間の行き方は1通りしかありません。よって、
最長距離になる2都市をAq,Bqとすると、任意の都市から最も遠い都市はAq,Bqのどちらかになります。そこで、AqとBqの間の距離を求めるために
まず、ある任意の都市から1番遠い都市を求めます。(これがAqかBqのどちらか)
そこから一番遠い都市との距離を求めればそれが2都市間の最長距離になります。
AtCoderで入緑するために必要だったアルゴリズムとデータ構造 (2021年10月版)
みなさん初めまして
初登校です?少し前になりますが、2021/10/2に行われたABC221で入緑しました!?
![2021-10-16 14.20.49 atcoder.jp 1e4f73cfee52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/572168/d49512b0-2f68-1315-3353-7b6587b443cc.png)
今回は私が入緑するのに必要だったアルゴリズムとデータ構造についてまとめていこうと思います.
よろしくお願いします.# はじめに
### AtCoder緑の現状について
例の[chokudaiさんの記事](https://chokudai.hatenablog.com/entry/2019/02/11/155904)だけではなく,
実はAtCoder内に未完成情報ですが [こんな記事](https://atcoder.jp/posts/676) があったりします.
共通して
“競技プログラミングを熱心に取り組んでいるユーザと考えて問題なく、他社の
kivyMDチュートリアル其の参什捌 Components – Selection篇
ハロー、Qiita!いかがお過ごしでしょうか。
今週も相変わらず、KivyMDの触れ込みをやっております。お時間ありましたら
お付き合いください。ニュース的には、特にとりとめもないのですが、変わったことでいうと衆議院
解散くらいでしょうか。まさかの政治ネタが2週間連続という。投票結果がどう
なるかということをデータ分析で予想するというのも面白そうですね。私は、
知識がおぼつかず見ているだけになりそうですが…ということで今週も元気にやっていきましょう。今週はSelection篇となります。
## Selection
マテリアルデザインのリンクは見ておいて頂けたらと思います。
マニュアルの最初の説明は以下のようになっています。
> Selection refers to how users indicate specific items they intend to take action on.
ここも個人の考え方をいれないよう、依頼をしてみます。
> 選択とは、ユーザーが行動を起こすための具体的な項目を示すことです。
選択 = Selection
となって
【Python3】0から作るPython初心者プログラミング【01】-じゃんけんプログラム-
##【初回ご挨拶】こんにちは! ぬかさんエンジニアリングです。(初投稿‼)
この**「0から作るPython初心者プログラミング」シリーズ**は、Python初心者である私が、**初心者の初心者による初心者のための実践的プログラミングスキル**を皆さんと実践的に学び共有していきたいという趣旨の元に発足した企画です。
お題となるプログラムを最初に提示しますので、各自コーディングをした後にこの記事を読みながら答え合わせをしてみてください!
Python入門書を読み終えてこれから実践的コーディングをたくさんこなしていきたいと思っている……..けど**どんなプログラムを作ればいいかわからない‼**とお題に困っていた皆さん、このシリーズをこなして実践力が上がりました!と言ってもらえるように頑張ってコツコツ書いていきますので**是非ご一読を!それからLGTMも是非!**
Ubuntu 20.04でpython3をデフォルトに設定
久しぶりにUbuntu 20.04をインストールしたら、Python3をデフォルトにする方法を忘れていたのでメモ。
結論としては以下の実行。
“`
$ sudo update-alternatives –install /usr/bin/python python /usr/bin/python3.8 0
“`
これだけでpython3がデフォルトになる。“`
$ python –version
Python 3.8.10
“`自分の環境では何故かpython2が入っていなかった(20.04って元々そうでしたっけ?)。
【以下はただの参考情報】
変更するものがないのでupdate-alternativesで–configすると「変更もなにも変更対象のものがない」と言われ、プライオリティをつけずに–installすると「」と最後にプライオリティのための番号が必要だよと言われた(ので今回は0をつけた)。 “`
$ which python
$ which python3
/usr/bin/py
[matplotlib]任意の数の色を使って色分けする
※ この記事を書く際に利用したコードに関連するライブラリのバージョンは以下になります.
“`
Python: 3.9.7
matplotlib: 3.4.2
numpy: 1.20.3
seaborn: 0.11.1
“`# 要点だけまとめ
色分けで使いたい色の数に応じた対応:– 3~5色程度で色分けしたい: 手動でラベルから色に対応する配列を作る.
– ~20色: `matplotlib.tab10`や`matplotlib.tab20`などを使う.
– 20色以上: `matplotlib.colors.CSS4_COLORS`を使う.# クラスタやカテゴリごとに色分けしたい
## 使う場面
以下のように,散布図の点たちをクラスタごとに(もしくは,クラスタに限らず,何らかの条件で)色分けしたいようなケースを考えます.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/462721/59719702-8834-efef-a2b8-798541fb17eb.png)
【Python】Qiita デイリー LGTM 数ランキング【自動更新】
# 他のタグ
[`AWS`](https://qiita.com/items/8c4aeec4fc98e4b1ba0e) [`Android`](https://qiita.com/items/9c6bf21a9880e242a0d6) [`Docker`](https://qiita.com/items/70aa655b580ed4f91756) [`Git`](https://qiita.com/items/36cfb2318aabe8b3f8df) [`Go`](https://qiita.com/items/16809f8444e0329bed8a) [`iOS`](https://qiita.com/items/da7fabcf41ed103528ae) [`Java`](https://qiita.com/items/9003b8beb47a46292028) [`JavaScript`](https://qiita.com/items/31e7365a838b890f7cc3) [`Linux`](https://qiita.com/items/7bcae94b268b
メルカリの検索結果からタイトルと値段をスクレイピングしたかった
### 前回までのあらすじ
[前回の記事](https://qiita.com/zeeksan/items/bf2f19ab097b022febab)では、とりあえずアクセスしてページ内容を表示するものだった。
せっかくなので、取れそうな情報を抜き出してみた。### 取りたい情報
– 検索結果として表示されたページの商品名
– 上記商品名に対応する値段### 取得手順
1. スタートページにヘッドレスモードでアクセス
1. ちょっと待ってからページ内にある商品名と値段を取得、画面出力
1. 「次へ」ボタンを探してクリック、同様に取得/出力しながらループ。
1. クリックできなければループを抜けて終了### ソースコード
“`python:mercari.py
# メルカリ上で動的レンダリングされた商品情報を取得し、すべてのページから商品名、価格、タイトルを取得する。
from selenium import webdriver
from time import sleep
from selenium.common.exceptions import *op
pythonで空のリストをデフォルト引数にしようと def func(l=list()) と書いてはいけない
関数書くときに
– 引数を受け取らなかった → 結果をlistにして返す
– 引数にlistを受け取った → 続きに書き足して返すみたいな動作を書きたいことがあると思います
# 失敗した書き方
そこで、以下のように書いてみました
“`python:上手くいっているように見える例1
def func1(n, l=list()):
for k in range(n):
l.append(k)
return lfunc1(3) # [0, 1, 2] が返ってきます
“`“`python:上手くいっているように見える例2
def func1(n, l=list()):
for k in range(n):
l.append(k)
return ll1 = func1(3)
l2 = func1(3, l1)
l2 # [0, 1, 2, 0, 1, 2] が返ってきます
“`どうやら期待通り動いてんね、という事で以下を実行するとおかしなことになります
“`python:失敗