- 1. Pyhon、len()関数と、random関数について
- 2. Python で日付のイテレータを返すジェネレータを利用してループする
- 3. 現場についていくための数学備忘録 #4
- 4. 【Python】SeleniumでWebスクレイピングする
- 5. AtCoder Beginner Contest 093 過去問復習
- 6. ROS講座113 smachでタスクを実行する
- 7. Twitterユーザーの性別を機械学習で予測する
- 8. 【Python】流体シミュレーション : 非圧縮性 Navier-Stokes 方程式
- 9. Reactのチュートリアルの三目並べをTkinterでやってみる
- 10. Pythonのshuffleとsample、どっちが速い?
- 11. 機械学習のお勉強〜Pandas編〜
- 12. AtCoderを埋めていく
- 13. 2020年のPythonプロジェクトのはじめかた(windows wslとmac共通化編)
- 14. Pythonしか知らない人向けのDart文法
- 15. Pythonで毎日AtCoder #26
- 16. 新型コロナウイルスを封じ込めるために必要な自粛度合いを定量化してみる
- 17. Jupyter NotebookでKernelを追加する際のお決まりお作法
- 18. PythonでABC161のA~Cを解く
- 19. AtCoder Beginner Contest 161 参戦記
- 20. カメラキャリブレーション用の白黒タイルを作る
Pyhon、len()関数と、random関数について
#(1)len()関数
リスト型を引数にすると、その要素を取得できる。“`.py
list = [0,1,2,3,4,5]
print[len]#5が出力される
“`#(2)random()関数
乱数を発生させる。“`.py
import random
r = random.randint(1,100)
print(r)#1から100までのうちの乱数を生成
“`
Python で日付のイテレータを返すジェネレータを利用してループする
## サンプルコード
“`py
from datetime import date, datetime, timedelta# date オブジェクトのイテレータを返すジェネレータ関数
# 開始日: begin
# 終了日: end
def date_iterator_generator(begin, end):
# 終了日と開始日の timedelta から日数を求める
# 終了日を含むように+1
length = (end – begin).days + 1
# 0から日数分の数値シーケンス
for n in range(length):
yield begin + timedelta(n)# 開始日・終了日
begin = datetime.strptime(‘20200331’, ‘%Y%m%d’).date()
end = date.today() # 今日の日付# ジェネレータを生成
gen = date_iterator_generator(begin, end)
print(‘gen: ‘ + str(gen))# 日
現場についていくための数学備忘録 #4
## 行列
今回は行列について簡単にまとめていこうと思います。## 行列とは
その名の通り「行」と「列」で構成されているものを言います。
具体例をいうと下記のような物になります。“`
[5, 13]
[4, 6]
[20, 7]
“`
この場合、「行」は[5,13]。
列は[5, 4, 20]のことを言います。## 行列の加減
2つの行列の加減は要素同士で加減ができます。
具体例) pythonではnumpyのmatix関数で行列を定義できます。“`
>>> A = np.matrix([[5, 13], [4, 6], [20, 7]])
>>> B = np.matrix([[8, 15], [9, 10], [20, 8]])
>>> print(A)
[[ 5 13]
[ 4 6]
[20 7]]
>>> print(B)
[[ 8 15]
[ 9 10]
[20 8]]
>>> C = A + B
>>> print(C)
[[13 28]
[13 16]
[40 15]]
“`## 行列の掛け算
行列の掛け算は加減よりちょっと面
【Python】SeleniumでWebスクレイピングする
PythonでSeleniumを使用する時の、基本的な使い方について記載します。
# ライブラリのインストール
“`
pip install selenium
“`pythonでimportする場合
“`python
from selenium import webdriver
from selenium.webdriver.support.select import Select
“`# 指定したURLに遷移する
“`python
# Chromeを起動
driver = webdriver.Chrome()# 指定したURLに遷移する
driver.get(“指定したURL”)
“`# テキストボックスに入力する
name属性などを取得してから、テキストボックスに文字を入力します。“`python
# 指定したname属性のテキストボックスに文字を入力する
element = driver.find_element_by_name(“name属性”)
element.send_keys(“テキスト”)# 指定したid属性のテキ
AtCoder Beginner Contest 093 過去問復習
#所要時間
#感想
D問題が難しかったです…。
700点問題にビビってしまい、復習にも時間がかかってしまいました。
ビビるほど難しくはないので、**プロセスを言語化する意識**をしっかり持っていきたいと思います。#[A問題](https://atcoder.jp/contests/abc093/tasks/abc093_a)
並べ替えて一緒になる→文字列に含まれる文字が同じ、なので、ここではa,b,cのみからなるのでsetの長さが3であるかを判定します。
“`python:answerA.py
s=input()
print(“Yes” if len(set(s))==3 else “No”)
“`#[B問題](https:
ROS講座113 smachでタスクを実行する
# 環境
この記事は以下の環境で動いています。| 項目 | 値 |
|:-:|:-:|
| CPU | Core i5-8250U |
| Ubuntu | 16.04 |
| ROS | Kinetic |インストールについては[ROS講座02 インストール](https://qiita.com/srs/items/e0e0a9dc3f94c2d3348e)を参照してください。
またこの記事のプログラムはgithubにアップロードされています。[ROS講座11 gitリポジトリ](https://qiita.com/srs/items/25a56a6abda41dcf396e)を参照してください。# 概要
smachは状態遷移をベースにハイレベルなタスクの実行を行うためのpythonライブラリです。状態遷移をGUIで表示するなど便利な機能もあります。
このライブラリの使い方を解説していきます。# インストール
“`shell:smachのインストール
sudo apt install ros-kinetic-smach ros-kinetic-smach-viewe
Twitterユーザーの性別を機械学習で予測する
性別がタグ付けされたTwitterユーザー 2万人分のデータがあったので、このデータを使ってTwitterユーザーの性別予測を行ってみた。テキスト処理にはRuby、機械学習にはPythonを使っている。
## 先に結論
Twitterのプロフィールを用いた単純な機械学習による性別予測は、約60%の精度しかでなかった。
今回用いたデータは外国語のデータであり、日本語のプロフィールだと違った結果になるが、精度は同じようにあまりでないと思われる。こう思う理由は、「Twitterユーザーのデータは、そもそも人が見ても性別の判定が難しい」ため。
## Twitterユーザー性別判定の手順
手順1〜5にはRuby、手順6にはPythonを使っている。
1. プロフィールに含まれる単語をリストアップする
2. 各単語の出現回数を記録する
3. 極端に出現回数が少ない、もしくは多すぎる単語は除去する
4. 単語数を次元数とみなしてユーザーのプロフィールをベクトルで表現する
5. 正解データのラベルを作成する
6. 機械学習を適用する## Rubyでテキストの事前処理を行う
前述の手順
【Python】流体シミュレーション : 非圧縮性 Navier-Stokes 方程式
## はじめに
数値流体力学(CFD)の勉強も兼ねて、液体の数値流体解析コードの構築に必要な知識などをまとめていきたいと思います。間違い等多々含まれていると思われますので、発見された際にはご連絡していただいけると幸いです。
### 対象読者
* Pythonを使える人
* 数値計算に興味がある人
* 流体力学に興味がある人
* 基本的な大学物理や数学を理解している人(簡単な微分方程式と線形代数くらい?)### シリーズ
* 1章:[【Python】流体シミュレーション:移流方程式を実装する](https://qiita.com/KQTS/items/354c85adb7d46e28e8da)
* 2章:[【Python】流体シミュレーション : 拡散方程式を実装する](https://qiita.com/KQTS/items/97daa509991bb9777a4a)
* 2章の補足的な立ち位置:[【Python】疎行列計算が高速にできるようになる記事](https://qiita.com/KQTS/items/e5500ba6e2681456e268)
*
Reactのチュートリアルの三目並べをTkinterでやってみる
#今度はPythonで・・・
またまたくどいですが三目並べチュートリアルを勉強も兼ねてPythonでやってみます。
GUIのアプリを作成する場合に、[Tkinter](https://docs.python.org/ja/3/library/tkinter.html)を使用するのが一般的らしいです。こちらを使用していきます。開発環境は[VSCode](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)で、Pythonのインストールは[以前の記事](https://qiita.com/GodPhwng/items/82bf5ec87cf5e93bd53f#環境構築)で行いました。
#Tkinterのインストール
ターミナル上で以下を実行します。“`
python -m tkinter
“`#マス目に数値を表示させる
こちらの[Hello world](https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-pr
Pythonのshuffleとsample、どっちが速い?
#ご挨拶
はじめまして、[cells_comp](https://twitter.com/cells_comp)です。
ROM専であった私も深夜テンションでQiitaをはじめてしまいました。
記念すべき最初の記事がこんな駄記事で申し訳ないのですが、ひとまず思いついたことを投稿していきたいと思います。#やってみたこと
Pythonでリスト(l)の要素をランダムに並び替えたいとき、素直に考えれば– random.shuffle(l)で並び替え
– l2 = random.sample(l, len(l))で並び替え
– 正しくは「リストの中から指定した個数を重複せずにランダム取得」しています。
– 指定した個数=全要素なので結果としてシャッフルしたリストが得られます。が出てくると思います。ところで、この2つの方法どちらが速いのでしょう?
**速さ言い出すならnumpy使え**という声が聞こえそうですが、どうかご容赦ください。#実行環境
Python 3.5.5
Intel® Core™ i7-6700 3.4GHz
Windows10 (WSL)
Ubu
機械学習のお勉強〜Pandas編〜
#機械学習のお勉強〜Pandas編〜
前回に引き続き今度はPandasについて学習したのでアウトプットとして投稿します。
##1.Pandasって?
PandasとはNumpyと同様にデータの整形を行ったり、
可視化や前処理にも活躍する外部ライブラリ
こちらもNumpyと同様、Anacondaには最初からインストールされています。##2.インポート文
“`pyhton:test.ipynb
import pandas as pd
“`pandasを使う際にいちいちライブラリ名を書くのは手間なのでpdで呼び出せるようにしましょう。
##3.どんな時に使うの?
1.データの整理
2.データの可視化
3.データの前処理どれも機械学習において重要な要素です。
##4.主な関数
###DataFrame関数
その名の通りデータフレームを作成する関数です。“`python:test.ipynb
#自作ver
test = pd.DataFrame({‘culumn1’:[1,2,3,4],
‘culumn2’:[3,4
AtCoderを埋めていく
## はじめに
競技プログラミング初心者がatcoderの問題を埋めていくログです。ログを公開することで継続を促すのが主な目的です。問題設定や解説は公式のものがあるので省略します。解いた感想 (コメント)、コーティングにおいて参考にしたサイトやコードを載せていこうと思います。## ABC
### D問題
#### 145
動的計画法を使おうとする場合、二次元配列を初期化するだけでTLEになってしまう問題。二項係数に気づいても高速化しなければやっぱりTLEになる。「斜交座標を作ればいけるのか・・・?」みたいなことを解き始めた時には考えていましたが無理ですね。ちなみに二項係数の高速化はよくある設定みたいです。
[Python で二項係数 nCr を高速に計算したい](https://www.planeta.tokyo/entry/5195/)“`python
X, Y = map(int, input().split())
n = (2 * X – Y) / 3
m = (2 * Y – X) / 3if n < 0 or m < 0 or not n.is_intege
2020年のPythonプロジェクトのはじめかた(windows wslとmac共通化編)
#Windows 10に、Macと同様の手順で、モダンでlinuxなpython環境を導入する。
2年前、Mac向けの良記事[『2018年のPythonプロジェクトのはじめかた』](https://qiita.com/sl2/items/1e503952b9506a0539ea)を参考に、windows 10上のWSL(Windows Subsystem for Linux)で(当時)モダンなlinuxなpython環境を用意した([記事:10行くらいコマンドを叩いてモダンなPython環境を用意](https://qiita.com/e-a-st/items/72c2e2a6a566d1f5d2a2))。未だに当時の環境をアップデートして使っているのだけれど、scala/java系の業務ではMacを使ってきたこともあり、Macのやり方とより親和的なpython環境構築に採用してみることにした。
結論としては、メンテナンス性を考えるとこのアプローチは断然あり、と思った。言語を問わず汎用的なアプローチなので、pythonもjavascriptも近い将来に使わねばといった初心者の方も、時
Pythonしか知らない人向けのDart文法
# はじめに
Pythonが初めてのプログラミング言語だった方向けにDartの文法についてまとめました。Pythonと違うところにだけ注目してまとめました。また、Pythonのコードとできるだけ似た文法を好む傾向がでています。
現段階では超メモレベルです。そもそもPythonに無い概念などは全く書いてありません。もちろん全ては網羅してません。flutterのかんたんなアプリのコードが理解できるレベルを目標にしています。
# 基本的なルール
基本的に行の末尾にセミコロンを書く必要がある。
インデントではなくて`{}`でまとまりを記述する。中括弧のあとにセミコロンはいらないらしい。
中括弧が必要で一行だけのとき、中括弧を書かずに後ろに続けることができる。ただし末尾にセミコロンが必要。
# main()
dartではファイルの中に絶対に定義されなければならない関数である。なぜならば、ファイルを実行した際に一番最初に自動的に呼び出されるからである。main関数から他の関数を呼び出して…のようにしてプログラムを書いていくので、基本的にすべての処理は関数の中に書くことになる。(
Pythonで毎日AtCoder #26
### はじめに
[前回](https://qiita.com/taxfree_python/items/b6675a4858d613027ffd)
25日目### #25
今日はDFSなるものの[入門問題](https://atcoder.jp/contests/atc001/tasks/dfs_a)を解きます。[こちらの記事](https://qiita.com/gh_takumi/items/79537ade8d2539d89bd2)を参考にしました。DFSは、深さ優先探索の略です。似ている名前に幅優先探索(BFS)があります。DFSは名前の通り今いるグラフの点から行ける点に進んでいく感じです。[詳しい解説](https://qiita.com/drken/items/4a7869c5e304883f539b)
今回の問題はsがどこにあるか指定されていません。ですので、まずは、’s’の場所を探します。’s’を見つけたら、stackにsの座標を追加します(型はlistではなくcollections.dequeです)。stackは最後に入れた要素が最初に取り出されます。
次
新型コロナウイルスを封じ込めるために必要な自粛度合いを定量化してみる
# はじめに
新型コロナウイルス感染症(COVID-19)は、世界中で猛威を振るっており、中国・欧州・米国・アジアなど様々な地域で都市封鎖、いわゆるロックダウンが実行されています。日本においても、4月4日現在、国内での感染者は3360名で、東京都は891名となっており、週末の外出自粛や特定飲食業の回避を知事が要請する事態となっています。また、東京・大阪など都心部だけでなく、全国的な広がりを見せつつあり、まさにオーバーシュートが生じる緊急事態に限りなく近い状況と言えるでしょう。そのような緊急事態を回避するため、[政府の専門家会議](https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/0000121431_00093.html)などでは、3密空間(密閉・密集・密接)を避けるよう、盛んに呼び掛けをしています。
では、このような3密空間をどれだけ避ければいいのでしょうか?本記事では、**感染拡大を防ぐために必要な3密空間の避け具合**を数値として定量化してみたいと思います。# 3密空間と基本再生産数
基本再生産数は、+ 人口集団の典型
Jupyter NotebookでKernelを追加する際のお決まりお作法
Jupyter Notebookで新しくKernelを追加する際のPipenvのお決まり作法
これやっておけば基本問題ない。毎回忘れて調べてしまって時間が無駄なので備忘。コピペでおk
–python 3.7 は必要なpythonバージョン
–name はjupyterで選べるカーネル名
–display-name はブラウザで表示される任意のカーネル名“`
pipenv –python 3.7 #3.6
pipenv install ipykernel python-dotenv
pipenv run ipython kernel install –user –name=kernel_name –display-name=kernel_display_name
pipenv shell
“`
PythonでABC161のA~Cを解く
### はじめに
ノリで書いたツイートが謎に伸びました。こんにちは chokudaiだよ
ABCをはじめるよ
*コーダーのお前らならば
余裕で解けるよね
ハイA、ハイB、ハイC、D、C— tax_free (@taxfree_python) April 3, 2020
ひさしぶりにABCで解けた!と思いました。A~Cの三完です!
### A問題
[問題](https://atcoder.jp/contests/abc161/tasks/abc
AtCoder Beginner Contest 161 参戦記
# AtCoder Beginner Contest 161 参戦記
## [ABC161A – ABC Swap](https://atcoder.jp/contests/abc161/tasks/abc161_a)
3分で突破. 書くだけ. オンラインのコードテストが詰まってて時間がかかってしまった.
“`python
X, Y, Z = map(int, input().split())X, Y = Y, X
X, Z = Z, X
print(X, Y, Z)
“`## [ABC161B – Popular Vote](https://atcoder.jp/contests/abc161/tasks/abc161_b)
4分で突破. 閾値が総投票数の 4 * M 分の一なのでまずそれを求め、その閾値を超える票数の商品がM個以上あるかを調べる. オンラインのコードテストが詰まってて時間がかかってしまった.
“`python
N, M = map(int, input().split())
A = list(map(int, input().split())
カメラキャリブレーション用の白黒タイルを作る
## はじめに
こんばんは
いつもはARCADというソフトを使ってキャリブレーション用の白黒タイルを作るのですが
タイルサイズが変わるごとに作り直すのも面倒なので簡単に作れないか調べてみました。
調べてみたところPDFで簡単に図形を描画できるライブラリがあったのでそれで実装してみました。
実際に印刷して検証したわけではないのでどこまで使えるかは未知数ですが
自分は今後ちょくちょく使う機会がありそうなので
WEBアプリとして公開しとけばどこでも使えていいかなぁとか思ったり。## やりたいこと
↓みたいなのを実寸のサイズ(mm)指定して作りたい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168779/3a75b23b-4dfa-b0fd-22b4-c373c3549ea2.png)## 環境
python:3.8
使用ライブラリ:reportlab## キャリブレーション用の白黒タイルを作る
↓のコードを実装しました“`python:box_grid.py
#! /us