- 1. パソコンを買ってからpythonでプログラムを動かすまで
- 2. RStan のコードを PyStan に移植する際の注意点: COVID-19の論文を例に
- 3. AtCoder ABC155 問題D Pairs 検討メモ1
- 4. Python と R の確率分布のmethod名と引数の扱いをいつも忘れる1か月後の自分へ
- 5. Python はじめから勉強 Hour4:オブジェクト指向②
- 6. PICOSとCVXPYのSDP求解速度を比較してみた
- 7. OANDA APIを使用したFXデータ収集
- 8. あさココを自動でChromecast(or Nest Hub)にキャストして目覚まし代わりにする
- 9. Pythonで毎日AtCoder #12
- 10. 指定した期間のツイートを削除
- 11. ManyToManyFieldのthroughを使ってDjangoで扱いやすいフォローモデルを作る
- 12. Googleドキュメントと連携した英単語帳プログラム
- 13. (今さら)GeForce GTX960でGPUのDeep Learning環境構築
- 14. プログラミングについて学ぶ
- 15. 自然数ジェネレータ
- 16. Pythonの基本箇所についての復習(FizzBuzz)
- 17. TCPサーバーをRustで作成したときの記録
- 18. pythonで即時関数(うそ)
- 19. Djangoのインストール
- 20. エクセルで範囲選択した内容をPythonのリスト初期化コードに変換するマクロ(VBA)
パソコンを買ってからpythonでプログラムを動かすまで
## 動作環境
Mac OS Catalina
## この記事について
プログラミングに興味を持ってパソコンを買ってみたが、これから何をすればいいかわから
ない人に向けて、Macでプログラミングを始める際にはじめにすべきことをまとめました。
この記事ではパソコンを買ったばかりの状態から、初めてpythonプログラムを書いて、動か
せるようになることを目標にします。## 環境構築
まずは環境構築をします。環境構築というのは自分のパソコンでプログラムを書く準備をすることです。
pythonの環境構築には以下のものが必要です。
– VSCode
– Python3また今回は必要ないですが、
– jupyternotebook
こちらも後々必要になると思うので合わせて入れておきます。
順番に入れていきましょう。
### VSCodeのインストール
プログラムを書いて動かすにはそもそもプログラムを書くための道具が必要です。これをテキストエディタと呼びます。VSCodeはテキストエディタの一種で、使い方が簡単なので初心者におすすめです。
こちらからダウンロードし
RStan のコードを PyStan に移植する際の注意点: COVID-19の論文を例に
# CAUTION
– この記事は公衆衛生、疫学、医学の観点からの考察は一切ありません。COVID-19 に関する情報は、専門家の包括的な意見を必ず参照してください。
# この記事を書こうとしたモチベーション
– [@Med_KU](https://twitter.com/Med_KU) 氏の blog 紹介 tweet がたまたま目に入ったので、元論文 & supplement(付録物)見てみた
"COVID-19 の潜伏期間をrstanで推定する – 驚異のアニヲタ社会復帰の予備" https://t.co/ztcnDcQyAR
— Kentaro Matsuura (@hankagosa) AtCoder ABC155 問題D Pairs 検討メモ1
#概要
[AtCoder ABC155 問題D Pairs](https://atcoder.jp/contests/abc155/tasks/abc155_d)に関してメモ。
#経緯
2020/02/16に開催された[AtCoder ABC155](https://atcoder.jp/contests/abc155)は仕事が忙しくて参加できなかったのだが、精進の為[問題D](https://atcoder.jp/contests/abc155/tasks/abc155_d)を見てみてみたところ解法思いつかず。解説記事をみて、二分法で数えて行けばよいのかと理解。自分なりにPythonでコーディングしてみたが自力でTLEから抜け出せなった。
[以前の比較](https://qiita.com/MyOden/items/aeccb035f8a0442036fe)からC++でやれば多分行けるんだろうなとは推測したが、
– Pythonで通すことはできないか、
– 通せるすると自分のコードのどこが甘いのかなどが気になったので調べてみた。
# 調査検討結果
## PythonでPython と R の確率分布のmethod名と引数の扱いをいつも忘れる1か月後の自分へ
## この記事の目的
– Python と R の分布関数の操作の対応について基本部分をまとめる
– 年に3回くらい忘れる自分のための知識を誰かのために## summary という名の個人的感想
– Python の method 名は直接的でわかりやすい
– R は 分布パラメータの引数名が直感的だが、Python の `a=, b=` と `loc=, scale=` の使い分けの指定は数式から変換する時に脳に負担がかかる。
– どちらも慣れれば問題なし## Official Documents
– Python: [Statistical functions (scipy.stats)](https://docs.scipy.org/doc/scipy/reference/stats.html)
– R: [Distributions in the stats package
](https://stat.ethz.ch/R-manual/R-devel/library/stats/html/Distributions.html)## 主な methods
正規
Python はじめから勉強 Hour4:オブジェクト指向②
# Python はじめから勉強 Hour4:オブジェクト指向②
* Pythonで何かしようとしたときに、まずサンプルスクリプトを探してなんとなく実行してた私が、
* 自動実行でREST API叩いて、結果の確認、VM操作までやってみたいと思う7時間
* 今回はオブジェクト指向の続き。と言っても、メソッドの確認レベル## 学習資料
* たった 1日で基本が身に付く! Python超入門
* https://a.r10.to/hbHMiv## 過去の投稿
* [Pythonはじめから勉強 Hour1:Hello World](https://qiita.com/matsumo2019/items/5a69381f44456e6e6a5d)
* [Pythonはじめから勉強 Hour2:制御文](https://qiita.com/matsumo2019/items/6daa862fd34c8929fb65)
* [Pythonはじめから勉強 Hour3:関数](https://qiita.com/matsumo2019/items/6c63c737c27e5
PICOSとCVXPYのSDP求解速度を比較してみた
本記事ではSDPを解くためのpythonライブラリである`PICOS`と`CVXPY`のSDP求解速度を比較します.
# SDP(半正定値計画問題)とは
**半正定値計画問題(SDP; SemiDefinite Programming)**は凸最適化問題の一種です.数理計画やシステム制御の分野で注目を浴びており,現在盛んに研究されています.[半正定値計画問題-wikipedia](https://ja.wikipedia.org/wiki/%E5%8D%8A%E6%AD%A3%E5%AE%9A%E5%80%A4%E8%A8%88%E7%94%BB%E5%95%8F%E9%A1%8C)
SDPは例えば以下のような問題です.
>正方行列$A$が与えられたとする.
$P\succ0$, $PA-A^TP\prec0$
を満たす行列Pを求めよ.
($P \succ 0$は $P$ が正定行列であることを表す.)SDPでは制約条件が**線形行列不等式(LMI;Linear Matrix Inequality)**で与えられます.
この問題に解Pが存在することとAの固有値が全て負で
OANDA APIを使用したFXデータ収集
# モチベーション
FXを対象とした自動売買botを作成する際に、どのような戦略で自動売買をしようか考える必要があります。
そしてその戦略はどの程度のパフォーマンスであるかを評価されなければいけません。
この記事では戦略のパフォーマンスチェックのためにOANDA REST APIを使用したFXデータの収集方法について、備忘も兼ねて記載します。# やりかた
## 1. OANDAの登録
OandaというFX業者が公開しているAPI群のことを指します。
FXのAPIを公開している業者は非常に少なく、またネット上にある情報量を考慮するとFXに関するAPIはOANDA REST APIを使用するのが良いと思います。
APIを使用するにはOANDAに登録し、APIキーを発行して貰う必要があります。
下記のリンクから5分くらいで登録できます[OANDA JAPAN](https://www.oanda.jp/)
## 2. oandapyV20のインストール
OANDAに登録し、APIキーが払い出されたら次はAPIを叩く環境を作りましょう。
APIキーは別ファイルに出しておくと便利です。
あさココを自動でChromecast(or Nest Hub)にキャストして目覚まし代わりにする
###はじめに
最近、Vtuber界で勢いを増しているホロライブ。
アイドル色が強く、メンバー同士のコラボも多いことから、箱推しの機運が高まりがちですが、全員の配信を追うことはかなり厳しいです。
そんなホロライブの情報を入手する手段として、4期生の桐生ココさんが平日朝6時に放送している「あさココLiveニュース」(以下あさココ)があります。
あさココは、前日のホロライブメンバーの配信で起こった事などをピックアップして20分ほどにまとめられており、非常に見やすい配信となっています。
ですが、朝6時という時間の都合上、寝過ごして見逃してしまうことが多々ありました。
そこで、あさココを自動で再生し、目覚まし代わりにすることで、見逃しを減らします。
具体的には、Youtube Data APIで配信予定情報を取得し、配信開始を監視、配信が始まったらChromecastにキャストします。###動作確認環境
– Ubuntu 18.04 LTS 64Bit
– Python 3.6.9
– Chromecast Ultra
– Google Nest Hub###事前準
Pythonで毎日AtCoder #12
### はじめに
[前回](https://qiita.com/taxfree_python/items/3c701ec674d86251c8ce)
今日はAGCがあるから書かなくていいかなと思っていたら、一問も解けなかったので書きます。最近はAGC-Aとかもレコメンドに出てくるので疲れる。### #12
[問題](https://atcoder.jp/contests/agc041/tasks/agc041_a)
1WA。参加したけど解けなかった問題**考えたこと**
まず考えるのは$B-A$が偶数のときで、偶数のときは$\frac{B-A}{2}$でよい。問題は、$B-A$が奇数のとき。$B-A$が奇数のときはどれだけ近くなっても同卓できることはない。なのでどちらかが1またはNに行って偶奇を調整しなければならない。当然、1、Nに近い方がそれぞれに行った方が同卓するまでの回数は減るので$min(a-1,n-b)$でどちらが近いかを求める。a-1しているのは、卓の数字は1から始まっているから。1、Nまで行くと偶奇を調整するために+1、$B-A-1$が偶数になったので$\frac
指定した期間のツイートを削除
##黒歴史は無かったことにしたい
世の中にはいろんなツールが既にあるが、
ツイッターの仕様で最新3200件しか削除できないとか、
大量削除は有料とか。
非常に困る。こちとら2010年から積み上げたゴミのようなつぶやきは優に10万を超える。
探せばQiitaに全ツイートを消すソースもある。
でも全部は困るんだよ。
そもそも全消しするならアカウント作りなおした方が早いだろ…黒歴史だけ消して最近の真人間な自分は残しておきたいんだ。
そんな人向け。
##手順
1. python3.6環境の構築
2. 黒歴史が詰まったアーカイブの取得
3. アーカイブの中にあるtweet.jsを編集
4. APIキーの取得
5. ソースコードの編集
6. 実行
7. 完了##1. python3.6環境の構築
もちろん使えるよね?
使えなかったらグーグル先生に聞いてくれ##2. 黒歴史が詰まったアーカイブの取得
① PCでツイッターにログインして設定画面を開く(https://twitter.com/settings/account)
② 「Twitterデータ」タブを選択(パスワード求
ManyToManyFieldのthroughを使ってDjangoで扱いやすいフォローモデルを作る
最近Djangoで改めてフォロー機能のためのモデルを作った際、`through`引数を使ってみたところ書きやすいモデルが作れたので記事にしてみました。
特別に高度な書き方をしているわけではありませんが、フォロー機能について検索してみたところこの通りのモデルがなかなか見当たらなかったので、近い機能を作る方の参考になれば幸いです。
## Djangoにおける多対多の書き方
Djangoでは多対多を表すモデルを作成する際、書き方が大きく分けて3つあります。* `ManyToManyField`のみ使用する
* 基本的な方法です。この場合、中間テーブルは自動生成されます。
* 中間モデルを作成して、`ManyToManyField`を使用しない
* データ同士の繋がり以外の情報(`created_at`など)を持たせるために用います。
* 中間モデルを作成して、`ManyToManyField`の`through`引数に渡す
* 今回紹介する方法です。## できること
“`py
# user1のフォロワー/フォロイー全部の取得
user1.followers.all(
Googleドキュメントと連携した英単語帳プログラム
#はじめに
初めまして。KKと申します。至らないところもあると思いますがよろしくお願いします。また、ブログなど初心者のため編集しまくりますがあしからず。
#プログラムの概要
概要は以下のようになります。– 予めGoogleドキュメント上で英単語帳を作成しておき、
– 作成した英単語帳を読み取り、ランダムな順番で出題する#今回、こういったプログラムを作ろうと思ったわけ
以前私はTOEICの勉強をしていました。当然英単語の勉強にも精を出しており、単語用のノートを買って勉強していました。しかし、大学でPCを使う機会が増えたことによって高校時代は感じることのなかったあるストレスに苛まれました。– いちいち手で文字を書くイライラ
– 荷物が増える・ノートを家に忘れたら勉強できないという紙媒体の非効率性を徐々に感じるようになり、「どうにかGoogleドキュメント等クラウドを用いて管理できないか」と考えました。
実現できれば、場所やデバイスを選ばず(スマホからでも、専用のキーボードを使用すれば問題ない)ストレスなく英単語を追加できるようになります。加えて、「単語をランダムに、
(今さら)GeForce GTX960でGPUのDeep Learning環境構築
#はじめに
最近ほとんど使っていなかった自作デスクトップPCに、NVIDIA製のGPU(GeForce GTX960)が入っているのを思い出し、折角なのでこれを活用してDeep Learningが出来る環境を構築してみようと思いやってみました。
5年前に購入したGPUにも関わらず、処理速度が段違いに速くGPUの素晴らしさに驚きました(笑)
[msi GeForce GTX960 Gaming 2G MGSV](https://jp.msi.com/Graphics-card/GTX-960-GAMING-2G-MGSV)#環境
– Windows 10 Pro (Version 1909)
– Python 3.6.4 (Anaconda3 5.1.0)#必要なもの
– NVIDIA製のGPU
– Tensorflow-gpu
– Keras
– Microsoft Visual Studio C++ (MSVC)
– NVIDIA Driver
– CUDA
– cuDNN#バージョン確認
GPU環境でTensorflow/Kerasを使用するには、上記必要なものをそれぞ
プログラミングについて学ぶ
#AtCorderに挑戦してみた
以前からコードを書く機会が少ないと思っていたので、
AtCorderで問題を解きながらコードを書いていこうと思います習慣づけるためにQiitaに投稿してみることにしました。
自分が知らなかった知識などについては、記事に書いていこうと思います##最初に簡単な問題の実装
###文字列と文字の扱い
pythonだと文字列の中の一文字にアクセスしたいときに簡単にできる
下の例では文字列から最初の文字と最後の文字を出力している“`python:sample1.py
str = ‘abcdef’print(str[0]) #a
print(str[-1]) #f
“`##これからやること
AtCoder Grand Contest 043をやってみようと思います。
自然数ジェネレータ
普段何気なく使っている自然数ですが、数学で扱うためには厳密に定義する必要があります。今回はその方法をご紹介します。
以下、個人的な好みの問題ですが、自然数は$0$から始まるものとしています。## 自然数の作り方
自然数は$0$(または$1$)から始まり、無限に、かつ一列に並ぶ性質を持っています。当然ですが、どこかで途切れたり、分岐したり、合流したりすることはありません。このような自然数が満たすべき性質は「ペアノの公理」というもので定められています。ペアノの公理に関しては、「[高校数学の美しい物語 自然数とは(0を含むこともあるよ)](https://mathtrain.jp/naturalnumber)」等を参考にしていただけると良いかと思います。また、「[数学ガール ゲーテルの不完全性定理](https://www.hyuki.com/girl/goedel.html)」の中で詳しく、かつ分かりやすく議論されています。
ところが、ペアノの公理では自然数であるための条件にしか触れていません。一応これでも問題はないのですが、これらの条件を満たすものを形式的に定義する、つまり自然
Pythonの基本箇所についての復習(FizzBuzz)
#はじめに
pythonでfizz-buzz的なアルゴリズムを作ったので投稿します。
#前提
2の倍数の時は`〜は偶数です`
3の倍数の時は`〜は3の倍数です`
6の倍数の時は`〜は6の倍数です`
それ以外は`〜はそれ以外の数です`
と表示させます。いくつまで判定させるかは、最初に入力できるようにします。
#実行
まずは倍数を判定するための関数を作ります。
“`python
def sample(x):
if (x % 3 == 0 and x % 2 ==0):
print(x,”は6の倍数です”)
elif (x % 3 == 0):
print(x,”は3の倍数です”)
elif (x % 2 == 0):
print(x,”は偶数です”)
else:
print(x,”はそれ以外の数です”)
“``if`や`else`の行の最後には`:`がつく事、
elsifではなく`elif`な事、
&&ではなく`and`を使っていることに注意が必要ですが、
それ以外はrubyと大きな違いはありません。次に、表示回数を入力
TCPサーバーをRustで作成したときの記録
RTMPサーバーを作っている途中の記録を残そうと思って書いています。
**注意:**これらのリポジトリを参考にして作っています。
> https://github.com/KallDrexx/rust-media-libs/tree/master/examples/mio_rtmp_server
> https://github.com/nareix/joy4# RTMPとは?
RTMPは,`Real-Time Messaging Protocol`のことで,映像や音声,またはそれ以外のデータをストリーム形式で送受信するときに用いるプロトコルのことです。
TCPベースで作られているので,1対1で通信を行います。
TCPベースなので,とりあえずTCPサーバーだけ立ててみようと思います。### プロトコル
プロトコルは,ざっくりいうと通信を行う際に決められている手順や規格のことです。# RTMPの処理順序
– Handshake
– 接続
– publish(配信を行う場合)
– play(視聴を行う場合)つまり,この処理順序で通信を行うサーバーを作ればいいってことですかね
pythonで即時関数(うそ)
fizzbuzz
“`python
def b(a=([print(“fizzbuzz”) if i % 15 == 0 else print(“fizz”) if i % 3 == 0 else print(“buzz”) if i % 5 == 0 else print(i) for i in range(1, 101)]})):
pass
“`
Djangoのインストール
#はじめに
pythonをインストールした後にDjangoをインストールしようとして詰まったので、
その際の解決法を書いていきます。
#実行
ターミナル上で次のコマンドを入力します。“`
pip install django
“`
これでDjangoがインストールされるはずですが、次のエラーが出ました。“`
-bash: pip: command not found
“`「`pip`がインストールされていないのでこのコマンドは使えない」というエラーのようです。
ならばpipをインストールすればいいと、次のコマンドを実行します。“`
python -m pip install -U pip
“`
すると今度は次のエラーが出てきます。“`
/usr/bin/python: No module named pip
“`
どうやら「pythonにpipなんてないよ」というエラーのようです。`python`と`python3`が別物だったことを思い出し、次のコマンドを入力しました。
“`
python3 -m pip install -U pip
“
エクセルで範囲選択した内容をPythonのリスト初期化コードに変換するマクロ(VBA)
# 概要
エクセル上の選択範囲の内容を、**Pythonのリスト初期化コードに変換してクリップボードにコピーする**VBAコードです。次の図のように選択範囲の先頭行を**変数名**、以降の行をリストの**要素**とするPythonプログラムを生成します。![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/228f0b37-fe82-998b-f33d-004ca27d8100.png)
クリップボードにテキストをコピーする方法については「[VBA 失敗しない文字列をクリップボードへコピーする方法](https://info-biz.club/windows/vba/vba-set-clipboard.html)」で紹介されているコードを、そのまま利用させていただきました。
# コード
“`vb:選択範囲(Range)をPythonのリスト(初期化コード)に変換
Sub Range2PythonList()If TypeName(Selection) <> “Rang