Python関連のことを調べてみた2021年10月19日

Python関連のことを調べてみた2021年10月19日

Raspberry Pi で cron を使用して繰り返し処理を行う

## Raspberry Pi を利用して繰り返し処理を行いたい
### 1. 環境

| ソフト・ハード | バージョン |
|:-|:-|
| Raspberry Pi | Raspberry Pi 3 Model B+ |
| Raspbian | 10.11 |
| Kernel | 5.10 |
| Python | 3.7.3 |

### 2. コマンド

| コマンド | 内容 |
|:-|:-|
| sudo apt-get install chkconfig | チェック用モジュールインストール? |
| chkconfig cron | cronが動作確認 |
| systemctl enable cron | cron off のとき、ON にする |
| sudo /etc/init.d/cron start | cronの起動 |
| sudo service cron restart | cronサービスの再起動 |
| sudo /etc/init.d/cron stop | cronの停止 |
| sudo cr

元記事を表示

ABC215 C – One More aab aba baa から学んだ

https://atcoder.jp/contests/abc215/tasks/abc215_c

![abc215_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/b41fb707-5d2c-a6ae-63a4-497f92945054.png)
![abc215_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/3a9edfdc-687d-a19b-2d8a-76323c5092d8.png)

重複なし並び替えを実行して K 番目を出力する。
ただし、重複する文言が出てくるので set する

“`abc215c.py
from itertools import permutations
S,K = input().split()
K = int(K)
lis=[]
for i in permutations(range(len(S)),len(S)):
nums = li

元記事を表示

ABC205 C – POW を解いた

https://atcoder.jp/contests/abc205/tasks/abc205_c

![abc205_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/d93bf038-c32f-b1b0-b51f-13b5fc0272eb.png)
![abc205_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/aeef0509-9a97-2882-abef-14ccba3d2e08.png)

A,B はマイナスだったり、プラスだったりする。
C が偶数なら 2 乗、奇数なら 3 乗で大小比較すれば十分だと思った。

“`abc205c.py
A,B,C = map(int,input().split())

if C%2 == 0:
ans1 = A**2
ans2 = B**2
else:
ans1 = A**3
ans2 = B**3

if

元記事を表示

statsmodelsによる線形回帰 入門 続々

本記事はstatsmodelの英語版サンプルを翻訳、加筆した「[statsmodelsによる線形回帰 入門](https://qiita.com/innovation1005/items/b712ce54a7a697a9bf03)」、「[statsmodelsによる線形回帰 入門 続](https://qiita.com/innovation1005/items/8d79b3715af5a6b76f76)」の続編である。

# 加重最小二乗法

データの分散が一定でない分散不均一性がある場合、古典的モデルの他のすべての仮定を保持すると、OLS推定量とその分散はどうなるのだろうか?この質問に答えるために、2変数モデルを用いる。古典的モデルの他のすべての仮定を保持する。

加重最小二乗法は一般化最小二乗法の特別な場合である。

加重最小二乗法では誤差項の真の分散が既知であることが前提であるので、誤差項の逆数を用いた重みを用いて最小二乗法を適用する。

## 例:人工データの生成-分散不均一性の場合
### モデルの前提条件
#### モデルの誤特定

真のモデルは二次方程式の形式である。

元記事を表示

statsmodelsによる線形回帰 入門 続

本記事はstatsmodelの英語版サンプルを翻訳、加筆した「statsmodelsによる線形回帰 入門」の続編である。結合仮説の項はモデルの構造、説明変数の選択に関するものですが、その続としてAICを追加したものである。また、「statsmodelsによる線形回帰 入門 続々」の内容に入りやすいように

– 推定の問題
– 内生変数と外生変数

を加筆した。これらは2020年に行った勉強会の過程で加筆された。

### [AIC(赤池情報量規準)](https://ja.wikipedia.org/wiki/%E8%B5%A4%E6%B1%A0%E6%83%85%E5%A0%B1%E9の87%8F%E8%A6%8F%E6%BA%96)

つぎにどのようにモデルを選択したらよいのか考えてみる。赤池情報量基準を用いるのだが、ここでいう情報の意味は一般的な使用とは異なるので注意が必要である。情報には多様な意味があるがここでは情報理論に基づく情報という意味で使われている。それは情報・通信を数学的に扱い、情報の定量化に用いられる。そして情報量とはある事象が起きた際にそれがどれほど起こりにくいか

元記事を表示

secrets.randbelowをrandintのように使いたい

結論

“`Python
# randint(a,b)の代わり
secretsRandint = lambda a,b: (secrets.randbelow((b-a)+1))+a
# choices(l, k=n)の代わり
secretsChoices = lambda table, k: [secrets.choice(table) for _ in range(k)]
“`

# 背景
Pythonで乱数を生成する際にはrandom.randintが使えます。しかし、この関数は簡単な規則で乱数を生成されています。このため、パスワードの精製などにはsecretsモジュールの仕様が推奨されます。
ただし、secretsモジュールの関数はrandomと少し異なります。同じように使えるようにします。

# randint(a,b)
予備知識: []は閉区間で以上・以下です。()は開区間で超過・未満です。

– random.randint(a,b) は [a,b]を返します。random.randint(4,7) なら 4,5,6,7が出ます。
– secrets.randbelo

元記事を表示

ABC192 C – Kaprekar Number を解いた

https://atcoder.jp/contests/abc192/tasks/abc192_c

![abc192_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/66528090-0402-c777-535b-6d8521b25fd9.png)
![abc192_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/95db072f-3d69-544a-c477-6a0cea482796.png)
![abc192_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/0dbd3f44-60af-8730-0592-0499eabae492.png)

文章のままを書けばいいと思う。

“`abc192c.py
N,K = map(int,input().split())

for _ in r

元記事を表示

ABC185 C – Duodecim Ferra を解いた

https://atcoder.jp/contests/abc185/tasks/abc185_c

![abc185_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/bfc4250d-8744-0fed-1321-7b3a80024eec.png)
![abc185_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/e01abd03-bcc3-5be1-0b49-2afce6342f7f.png)
![abc185_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/fd074078-0268-8697-9ea2-f26c50d8d54d.png)

0 から L までは、L-1 本の区切りを設けることが出来る。
その中から 11 本を選ぶ組み合わせを求めればよい。

“`abc185c.py

元記事を表示

ABC181 C – Collinearity を解いた。おまけ B 問題付き

https://atcoder.jp/contests/abc181/tasks/abc181_c

![abc181_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/f1d68148-8953-23fc-8ec0-7bd3a553aced.png)
![abc181_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/d2cd0e92-df51-6333-e302-71bd17bdcbfa.png)
![abc181_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/f184a40b-3d0e-1872-a4c1-390d0e61453f.png)

100C3 : 全探索しても ザックリ O(300000)。
間に合う。

“`abc181c.py
N = int(input())
lis

元記事を表示

【AtCoder解説】PythonでABC223のA,B,C,D問題を制する!

**ABC223**の**A,B,C,D問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**までどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: [https://marshmallow-qa.com/u2dayo]**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**

よかったら**LGTM**や**拡散**していただけると

元記事を表示

一般逆行列の初歩の初歩(その2: 連立1次方程式への応用)

※ この記事を書く際に利用したコードに関連するライブラリのバージョンは以下になります.

“`
Python: 3.9.7
numpy: 1.20.3
matplotlib: 3.4.2
“`

# この記事で説明すること

[一般逆行列の初歩の初歩(その1: イメージと計算方法)](https://qiita.com/y629/items/c0a401e991ad56b93bcf)の続きです.

一般逆行列を利用して,連立1次方程式の解を求める方法について説明します(主に参考文献[1]の4.2節に基づいています).
行列を使った連立1次方程式ぐらいの線形代数の知識があれば理解できると思います.
具体的には以下について,pythonのコードを示しながら説明します.

– 一般逆行列を使って解が無数にある連立1次方程式や,解がない連立1次方程式の **それっぽい1つの解** を求める

その1の方では以下について説明しているので,よかったらご覧ください.

– 一般逆行列とはなんなのか
– 一般逆行列がどのように計算されるかの確認

# 連立方程式の解の個数と係数行列の関係を確認

元記事を表示

一般逆行列の初歩の初歩(その1: 一般逆行列のイメージと計算方法)

※ この記事を書く際に利用したコードに関連するライブラリのバージョンは以下になります.

“`
Python: 3.9.7
numpy: 1.20.3
matplotlib: 3.4.2
“`

# この記事で説明すること

一般逆行列の基本的なイメージと計算方法について説明します(主に参考文献[1]の4.2節に基づいています).
行列を使った連立1次方程式ぐらいの線形代数の知識があれば理解できると思います.
具体的には以下について,pythonのコードを示しながら説明します.

– 一般逆行列とはなんなのか
– 一般逆行列がどのように計算されるかの確認
– ~~一般逆行列を使って解が無数にある連立1次方程式や,解がない連立1次方程式の **それっぽい1つの解** を求める~~ → 長くなりそうなので,[一般逆行列の初歩の初歩(その2: 連立1次方程式への応用)](https://qiita.com/y629/items/c2d6a3eaa0f945655ddb)に回しました.

# 一般逆行列とはなんなのか

一般逆行列は,いろんな行列に対して**逆行列っぽいもの**を考えら

元記事を表示

pytorchでDCGANを作成しMNISTのフェイク画像を生成する

# GANとは
 敵対的生成ネットワークGAN(Generative adversarial networks)とは生成器(Generator)と識別器(Discriminator)の2つのニューラルネットワークからなるシステムです。生成器は識別器を欺くように学習し、識別器は生成器の作った偽物と本物を識別するように学習を進めることで、結果として精度の高い偽物を生み出す事ができるようになります。
 生成器と識別器が相反した目的のもとに学習する様が敵対的と呼ばれる所以のようです。

![qiita_20211017_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350321/cb64334e-b31b-c24f-10ed-98e3a0d2e4d1.png)

# DCGAN
 DCGAN(Deep Convolutional GAN)はGANで最も基本的なモデルになります。生成器は複数の転置畳み込み層からなり、ノイズを複数の転置畳み込み層で拡大することによりフェイク画像を生成します。識別機は複数の畳み

元記事を表示

pip install chromedriver-binary が ssl.SSLCertVerificationError で失敗したときの解決方法

## はじめに

`pip install chromedriver-binary` コマンドを実行したとき、 ssl.SSLCertVerificationError エラーで失敗したため解決手順をメモします。

## 再現環境

+ MacOS 11
+ Python 3.9.6
+ pip 21.2.4

## エラー時のログ

“`sh
$ pip install chromedriver-binary
Collecting chromedriver-binary
Using cached chromedriver-binary-95.0.4638.17.0.tar.gz (4.8 kB)
Building wheels for collected packages: chromedriver-binary
Building wheel for chromedriver-binary (setup.py) … error
ERROR: Command errored out with exit status 1:
(中略)
running bdist

元記事を表示

Python開発者のためのクールなPythonプロジェクト案10選

本記事は、[Claire D. Costa](https://medium.com/@harish_6956)氏による「[10 Cool Python Project Ideas for Python Developers](https://towardsdatascience.com/10-cool-python-project-ideas-for-python-developers-7953047e203)」(2020年9月5日公開)の和訳を、著者の許可を得て掲載しているものです。

#Python開発者のためのクールなPythonプロジェクト案10選
>Pythonで作れる面白いアイディアとプロジェクトのリスト

![Cool Python Project Ideas for Python Developers](https://miro.medium.com/max/1400/1*J4xsEISU9wuB237dgDfLNA.jpeg)
Photo by [Andrea Piacquadio](https://www.pexels.com/@olly?utm_content=a

元記事を表示

Fixstars Amplify SDKで、東京観光の最適巡回ルートを求めてみた!

# はじめに
こんにちは!
本記事では、Fixstars社から提供されているイジングマシン(量子アニーリングマシンを含む)向けライブラリである**Fixstars Amplify SDK**を紹介し、その後、Amplifyを使って、組み合わせ最適化問題を解いていきたいと思います。具体的には、[このサイト](https://smartparty.jp/tokyo-skytree-photo-spot)を参考にして、さまざまな制約下での、東京スカイツリーの撮影スポットの最適巡回ルートの求解を行いたいと思います。

量子アニーリングに関しては、まだまだ勉強中のため、間違っている点もあるかもしれませんが、その際は、**有識者の皆様方、(優しく)ご指摘をお願いしますm(__)m**

## 本記事で書くこと

+ Fixstars Amplify SDKについての説明。
+ 利用にあたって、必要なイジングマシンやその入力形式(QUBOやイジング模型)の説明。
+ Fixstars Amplify SDKを用いた、東京スカイツリーの撮影スポットの最適巡回ルートの求解。
+ 参考:[【保存版

元記事を表示

GithubActions上でDocker構築してseleniumを動かしたので簡単にまとめてみた(初心者)

# はじめに
Actionsを触り始めて間もないので、間違ってるところもあるかもです。ご指摘いただければ幸いです。

docker構築せずにseleniumを動かしたいという方は、[こちらの記事](https://qiita.com/yoshi-kin/items/d900a35744dee23657ad)を参考にしてください。

さてActionsでdockerを構築する方法ですが、個人的に大きく分けて2つあるのかなと思います。
・**Actionsのワークフロー上で直接イメージを利用してコンテナを構築する方法**
・**ワークフローとは別にDockerfileを作成しておいてワークフローから間接的に実行する方法**

前者の方が簡単ですが、後者の方が応用が利きそうな気がします。

# 1. ワークフロー上で直接イメージを利用してコンテナを構築する方法
こちらは簡単なのでサクッと行きます。

Actionsを動かしたいリポジトリにて以下の3つを作成します。
・google.chrome.repo(chromeをインストールするので必要)
・test_selenium.py
・.gi

元記事を表示

そーなの?numpy.randomでの乱数生成が変わった(っぽい)

kaggleをしていると見慣れない関数のpartyが夜通し開催されています。
その中で、numpy.randomでの乱数生成の方法が少し変わったぽいので忘れないうちに書いておきます。

# 従来
例えば、整数をランダムに呼び出したいなら“`np.random.randint(n, m)“`みたいな感じでした
正規表現なら“`np.random.normal(loc=u, scale=s)“`みたいな感じでした(loc: 平均, scale:標準偏差)

# 現在
[https://numpy.org/doc/stable/reference/random/generator.html](https://numpy.org/doc/stable/reference/random/generator.html)

一応従来の方法も使えるんで、早急な対応が必要というわけでもなさそうですが、現在のnumpy側の推奨は

– np.random.default_rng()でインスタンス化
– このインスタンスから欲しい乱数を定義

という流れになったそうです。

## 簡単なコード例
`

元記事を表示

ローカルでPub/Sub, Cloud Functionsを同時に動かしながら動作確認する

SNSピリカのサービスでは App EngineからPub/SubにメッセージをPublish → サブスクリプションフィルタで絞り込み → Cloud FunctionsからCloud Tasks経由で再度App Engineに戻して処理するケースがあります。

![SNSピリカサービス GCPサービス間連携例](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967276/3c111555-8115-55d8-a35e-1ee5240f18c5.png)

ローカル環境で開発するとき、Pub/SubからCloud FunctionsをPushサブスクリプション経由で呼び出したいことがあります。

その際のやり方について、備忘録として掲載します。

## 前提
以下の構成で動作することを想定しています。

“`
(Inbound Message)
\–> [Pub/Sub] – トピック: projects/alice/topic

元記事を表示

React から利用する API のロギングでロケーション情報を格納する

## はじめに
API ログを取っていますか、便利に使えていますか?

ログにもいろいろありますが、本記事では Backend API での、アクセスごとのリクエスト・レスポンスのログについて焦点を当てます。このログを使うと、それぞれのエンドポイントがどれぐらい使われているのか、レスポンス速度はどうなのか、エラーレートは問題ないかなどを確認することができますね。

今回は、実際にサービスを運用している中で欲しくなって追加した、特に React などを利用した SPA(Single Page Application) の場合に有効な、ロケーション情報の取得について共有します!

## ロケーション情報の取得
SPA では、それぞれのページで必要な API を叩くことになるため、ページと API は一対一に対応しません。
こんな場合に、ブラウザの URL である、ロケーション情報を API のリクエストの中身に含めて、API ログ情報に付与しておくととても便利なデータになります。

具体的には、以下の3項目です。

| パラメータ | 説明 |
| — | — |
| locati

元記事を表示

OTHERカテゴリの最新記事