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

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

Python初心者によるDjango超入門!その1「Hello World」とだけ書かれたHTMLページを表示させてみた

# 背景・目的
Udemyというオンライン講座でDjangoを学習しました。本記事は備忘録を兼ねたアウトプット目的のページです。初心者目線で分かりやすく書いてみようと思います。
参考にさせていただきました講座は以下の2つです。両方とも甲乙付けがたいとてもいい講座でした。

プログラミング初心者でも安心、Python/Django入門講座
【Python 3 x Django 2.0】作りながら覚えるDjango

# Djangoってなに?なぜDjangoなの?
ものすごく簡単に言いますと、Pythonの天才プログラマー達が自分のような初心者プログラマーでも簡単にWebサイトを構築できるように、必要なものを集めてくれた道具箱みたいなものです。カッコよく言うとWebフレームワークと言います。

Djangoの他にもJ

元記事を表示

ROS for Windows インストールから動作確認まで

# はじめに
この記事では、ROS for Windowsのインストール方法と、動作確認としてチュートリアルの[シンプルなPublisherとSubscriberを実行してみる](http://wiki.ros.org/ja/ROS/Tutorials/ExaminingPublisherSubscriber)をやりたいと思います。ROS for Windowsをインストールした時の備忘録的な記事です。
注意点ですが、この記事ではROSをWSL上にインストールするのではなく、Windowsに直接インストールします。WSL上にインストール記事はたくさんあったのですが、Windowsに直接インストールする記事は少なく需要があるかわかりませんが、書いていこうと思います。

※これから紹介するインストール方法は2020/8/10時点のものです。インストールする際は事前に[公式のインストール方法](http://wiki.ros.org/Installation/Windows)を必ず確認してください。

# インストール
公式通りにインストールしていきます。ここでインストールするのはROS n

元記事を表示

Pytorchを使った線形回帰をGoogle Colaboratoryで実装してみる

初心者向けです!ディープラーニングの基礎的な知識があることを前提としています。
機械学習ライブラリのPytorchを用いて線形回帰を実装してみます。
簡単なので機械学習の入門として最適です。
##Pytorchとは?
Facebookの人工知能研究グループにより初期開発された 、Python向けのオープンソース機械学習ライブラリです。読み方はパイトーチです。

Deep Learningライブラリの中でも近年人気が出てきています。非常に簡単に記述できるのでおすすめです。
##Google Colaboratoryとは?
Googleが提供している、無料で使用できるpython実行環境です。

GPUも使用でき機械学習に必要なライブラリもあらかじめインストールされています。ローカルで機械学習の環境を構築するのは大変なので、今回はGoogle Colaboratoryを使用していこうと思います。

使い方は下記参照。1分程で使えるようになります。
https://qiita.com/shoji9x9/items/0ff0f6f603df18d631ab
##線形回帰を実装してみる
必要な

元記事を表示

学習するDiscord Botを作る 1.

#The introduction

  会話を記録していくChatbotを作ります。個人的な使用ならば問題無いでしょうが会話内容がファイルに残るので一応プライバシー等に注意してください。
###今回やったこと
  とりあえずdiscordのChatbotを何か作りたいと思い立って、会話の中で成長する比較的単純なbotを作りました。
###どうしてそれをするのか
https://medium.com/@kirkouimet/my-conversation-with-an-artificial-intelligence-about-coronavirus-covid-19-742c0dd9abbe
この記事に感銘を受けて、私も最終的にこれに似たものを作りたいと思いました。今回これを作ったのには二つの目的があります。一つにはChatbotのAIを作るための第一歩、チャットでランダムに振る舞うbotを作ること、もう一つには自動的に人間が作った文章を記録しデータセットとして残すこと。実際にAIの学習に使うデータセットを作るためにはこのbotで集

元記事を表示

情報系学科OB生が教える学習ロードマップとおすすめ本 ~其ノ二~

#はじめに
前回の記事では「情報系学科OB生が教える学習ロードマップ」として基礎的な学問についての学び順とおすすめ教材をまとめました。まだ見ていない方はこの記事の前に以下の記事に目を通していただけると幸いです。なお、今回の内容だけでも有益なようには書くつもりです。

[情報系学科OB生が教える学習ロードマップ](https://qiita.com/rerere0101/items/2d1a730320cee6502b68)

前回の記事ではコンピュータ通信技術までの学び方を執筆しました。実際に情報系の学生も学んでいる順番通りかと思います。(しょぼい図ですみません^^;)
![学習ロードマップ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134021/370869c3-c88c-281f-4238-6ebd74b717bb.png)

今回はついに応用学問です。コンピュータグラフィックス以降を説明していこうと思います。

#「コンピュータグラフィックス・コンピュータビジョン」
まず有名なCG/C

元記事を表示

numpyでdequeみたいな使い方をする場合どう書くと速いのか

# やりたいこと

numpy.ndarrayでdequeのようなことがしたい場合、単純にnp.append(x, y),np.delete(x, 0)とするのが速いのか、それともdequeを使ってndarrayにしたほうがいいのかというのを検証します。

“`python:遅そうだと思われる疑惑のコード
x = np.append(x, 1)
x = np.delete(x, 0)
“`
最後に追加して先頭を削除しています。

numpyはarray作成時に固定長の領域を確保するみたいなので長さを変えるとなんだか遅そうです。

FIFO【先入先出法 / First-In First-Out / 先入れ先出し】の検証みたいですが、先頭を読み出さず全体を読む場合を想定してます。つまりバッファーのような使い方の場合の検証となっています。

追加するごとにnumpy.mean()やnumpy.std()を使いたいため、結果はnumpy.ndarrayになるように限定しました。
単純に配列を作るだけならdequeをそのまま使ったほうが速いですがそれだとnumpyのmean()やstd()を

元記事を表示

偏相関行列を作って独立グラフを描く

graphvizで独立グラフを描画する手順を紹介します

## 偏相関行列と独立グラフ

相関が観測される原因には以下の2つがあります

– 因果関係がある場合
– 因果関係がある共通の要因がある場合

後者の影響を除いてから相関係数を求めるのが偏相関で、偏相関が高い要因同士を繋いで図示するのが独立グラフです。詳しくは以下を参照してください。

偏相関係数の意味と式の導出
https://mathtrain.jp/partialcor

## 1. graphvizのインストール

確認しきれてませんが多分以下で入ると思います

#### graphvizのpythonラッパーをpipでインストールします

“`terminal:terminal
pip install graphviz
“`
#### graphvizの本体をインストールしてjupyter notebookから使えるようにします

“`terminal:terminal
conda install -c conda-forge python-graphviz
“`

## 2. グラフの描き方

以下のように

元記事を表示

AtCoder Grand Contest 047 参戦記

# AtCoder Grand Contest 047 参戦記

レーティング1200以上の人しかレーティングに関係ないんだから、0完でも問題あるまいと思っていたが、パフォ915で憤死した. 以前に0完したときはパフォ339だったのでそれに比べればマシだけど.

## [AGC047A – Integer Product](https://atcoder.jp/contests/agc047/tasks/agc047_a)

突破できず. Twitter で 109 を掛けて、2と5が何個含まれるかを調べて云々と言っている人がいて、その人の説明は分からない部分があったものの閃いた. ようするに10進数なので、2と5が足りればいいのだと. 入力例で出てくる 2.4 だが、当然10倍すれば整数になるが、1.25倍でも整数になる. 要するに 22×3×5-1 なので 5-1 さえ打ち消してもらえれば、2-2 までは大丈夫なのである. これが分かれば後は Ai

元記事を表示

atomのautocomplete-pythonが動かなかった時の対処法メモ

atomを使ってpythonの環境構築をしていたときに、packegeのautocomplete-pythonがうまく動かず、
調べてもパッと出てこなかったのでとりあえず日本語で残しておこうと思います。

内容はここに書いてあることと同じ。
https://stackoverflow.com/questions/44602603/atom-ide-autocomplete-python-not-working/52023811#52023811?newreg=45250004097448b89124410714d158d6

# 前提
OS:macOS Catalina 10.15.5
pythonバージョン:3.8.5
atom:1.49.0×64
autocomplete-python:1.16.0

# 起こったこと
### 期待していた状態
autocomplete-pythonが正しく動作していれば、
例えばpythonファイルを開いて「i」と打った時に下の画像のような感じでpythonのキーワードが候補として出てきます。
![image.png](https://qii

元記事を表示

kleeでパスワードを言い当てる

# はじめに
kleeなるものがあると聞き,パスワードの特定をやってみたので備忘録を残す.具体的なところは全く理解できていないので,とりあえず動いたところまで.

# 解いてみる問題
kleeチュートリアルの[Using symbolic environment](https://klee.github.io/tutorials/using-symbolic/)に紹介されている`check_password()`関数をターゲットにしてみた.
この関数はパスワード`hello`を入力すると1を,それ以外の場合は0を返す.

“`c:password.c
#include

int check_password(char *buf) {
if (buf[0] == ‘h’ && buf[1] == ‘e’ &&
buf[2] == ‘l’ && buf[3] == ‘l’ &&
buf[4] == ‘o’)
return 1;
return 0;
}

int main(int argc, char **argv) {
if

元記事を表示

Python は、なんでコロンを書かないといけないの?

Python では if, for, def, class などの複合文には、コロン `:` が必要になります。

“`python
if True:
print(‘Hello, world!’)
“`

> 各節のヘッダは一意に識別するキーワードで始まり、コロンで終わります。
> [8. 複合文 (compound statement) – Python 言語リファレンス](https://docs.python.org/ja/3/reference/compound_stmts.html)

## 公式ドキュメント
なぜ、コロン `:` を書かないといけないかは、公式ドキュメントに記載があります。

* [if/while/def/class 文にコロンが必要なのはなぜですか? – Python よくある質問](https://docs.python.org/ja/3/faq/design.html#why-are-colons-required-for-the-if-while-def-class-statements)

## (妄想) 個人的には…

元記事を表示

【成長日記:1日目】友達に教えてもらいながら中日ドラゴンズの選手の成績をWebスクレイピング→pandasでcsvファイルに処理

初めまして。同級生の友人がプログラミングを教えてくれると言うので、教えてもらうついでにどこかでアウトプットして成長日記をつけようと思いQiitaを

元記事を表示

ベイズ推論の考え方(2)・・ベイズ推定と確率分布

##Pythonで体験するベイズ推論より
[「Pythonで体験するベイズ推論」](https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers)

一回書いたけど、なんか馴れてないので、この項目消してしまいました。
そういうわけで、もう一回書いてます。。トホホ。

###ベイズ主義とは
####頻度主義とベイズ主義

頻度主義とは、昔からある古典的な統計学である。
頻度主義では、確率を「長期間における事象の頻度」とみなす.

ベイズ主義では、確率を「ある事象が発生する信念(belief)」あるいは「確信(confidence)」の度合いとみなす。
確率を信念とみなすことは人間にとって自然な考え方である。
##「確率とは信念である」

ある事象が生じる信念を$P(A)$と表し、事前確率と呼び、証拠$X$が与えられて更新された信念を$P(A|X)$と表す。これは証拠Xが与えられた時の$A$の確率である。これを事後確率と呼ぶ。

####ベイズ推論の考え方
ベイズ

元記事を表示

[AtCoder]ABC165C個人的メモ[Python]

# [ABC165 C – Many Requirements](https://atcoder.jp/contests/abc165/tasks/abc165_c)

考えられる数列Aをdfsによって全探索し,得点の最大値を求める.
解答例を2つ示す

– 解答例1-dfsを再帰関数で実装
– calc関数
数列Aから得点の計算をする関数

– dfs関数
考えられる数列Aをdfsによって全探索しつつ,得点の最大値を求める関数
数列Aの長さがNなら得点を計算した後,今までの最高得点と比較,最高得点を記録
それ以下の長さなら,数列Aの制約を満たす様に要素を1つ追加して再帰
Aが空リストなら$x=1$を,それ以外なら$A[-1]\leqq x\leqq M$の$x$をAに追加して再帰

“`py:main.py
#!/usr/bin/env python3
def main():
import sys

def calc(A: list):

元記事を表示

自然言語処理入門の本を読んでみた

#初めに
機会学習・深層学習による自然言語処理入門 著 中山光樹
を読んだ感想を書いてみる
pythonになれるためサンプルコードは自前でカスタマイズしてみた

#第一章、第二章
機械学習とは何かという話と、pythonの実行環境についての話
本著ではpythonの実行環境をMinicondaを使って作っているみたいだが、conda系の開発環境はトラウマしかないため、dockerでpython開発環境用のcontainerを作ったよ
次いでにviでpythonのコードが補完されるモジュールも導入したよ
viのコピペ、pythonでのマルチバイト文字列を扱えるようにするために苦労したことは秘密だ

#第三章
コーパスとは何ぞやを説明している
ぐるなびAPIから機械学習用のデータを取得するコードがあったので、自分なりにカスタマイズした。というか、カスタマイズしないと動かない
もともとのコードは検索キーにジャンルを指定していたけど、サンプルコードの通りに実行するとAPIの仕様が中間一致から完全一致に変わったのか、「検索結果が見つからない」という結果が返ってくる
(ぐるなびAPIいけてなさすぎ

元記事を表示

【Emacs】Pythonの自動補完パッケージjediのインストールで困った話(mac)

# はじめに

・環境
macOS Mojave 10.14.6
GNU Emacs 26.3

macでemacs-jediを導入しようとしたところ、ハマりました。
もともとjediを使用していたのですが、python自体の環境が変わったのに伴い再インストールを試みました。
そういえば最初にインストールした時も、大変だった記憶があります。

ちなみに、もともとの設定はこちら。

“`emacs-lisp

(add-hook ‘python-mode-hook ‘jedi:setup)
(setq jedi:complete-on-dot t)
“`

macとjediは相性が悪いのか、例えばこんな情報もあります。
https://github.com/tkf/emacs-jedi/issues/346

また、デフォルトではvirtualenvのpythonを見に行くというのもややこしい…。

# その時の状況

jedi自体のインストールは`M-x package-list-package`から問題なくできたのですが、`M-x jedi:install-server`でエ

元記事を表示

Nature Remo を Python から操作する

## はじめに

Nature Remo のデバイスは、[API](https://developer.nature.global/)を通じて操作することが可能です。最近 Nature Remo の第3世代を入手したため、これをプログラムやコマンドラインから操作したいと思い、Python 向けにライブラリを書きました。

[nature-remo](https://github.com/morinokami/nature-remo)

ここではこのライブラリの使い方について解説していきます。Remo で遊ぶ上での選択肢の一つとしていただければ幸いです。

## インストール

サポートしている Python のバージョンは 3.8 です。インストールは `pip` からおこないます:

“`sh
$ pip install -U nature-remo
“`

なお、動作確認は Ubuntu と macOS にておこないました。

## 使い方

API を使用する前提として、

https://home.nature.global/

にてアクセストークンを発行しておいてください

元記事を表示

【データサイエンティスト入門】Pythonの基礎♬条件分岐とループ

[昨夜の続き](https://qiita.com/MuAuan/items/f5006ebf836e3741e21a)です。
【注意】
[「東京大学のデータサイエンティスト育成講座」](https://www.amazon.co.jp/%E6%9D%B1%E4%BA%AC%E5%A4%A7%E5%AD%A6%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%83%86%E3%82%A3%E3%82%B9%E3%83%88%E8%82%B2%E6%88%90%E8%AC%9B%E5%BA%A7-Python%E3%81%A7%E6%89%8B%E3%82%92%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E5%AD%A6%E3%81%B6%E3%83%87%E2%80%95%E3%82%BF%E5%88%86%E6%9E%90-%E5%A1%9A%E6%9C%AC%E9%82%A6%E5%B0%8A/dp/4839965250/ref=tmm_pap_swat

元記事を表示

TensorFlow 2.3.0をCUDA11+cuDNN8向けに強制的にビルドする方法

TensorFlowでGPUを利用するためには、互換性のあるバージョンのCUDAやcuDNNを利用する必要があり、2020/8/9時点で最新のTensorFlow 2.3.0も、CUDA 11やcuDNN 8には対応していません。
そのため、ソースコードからビルドしても互換性の問題で失敗します。

…が、利用している環境が「CUDA 11 + cuDNN 8」になっていて、それでもTensorFlowでGPUを使いたい人向けに「強制的に」TensorFlow 2.3.0をCUDA 11 + cuDNN 8向けにビルドする方法を残しておきます。
なお「本来なら対応していない」バージョンの組み合わせなので、全てが正常に動作する保証はありません。簡単なCNNモデルの学習や推論を試した限りでは正常に動作していますが、実験的な扱いに留めておくことをおすすめします。(CUDA11+cuDNN8に正式対応するまでの暫定的な処置)

## 環境情報

ビルドに利用した環境です。CUDAやcuDNNのフォルダなど、事前にパスを通した状態になっています。

* Windows 10 Ver1909 (64

元記事を表示

Pandas個人的注意点まとめ

##概要

自分用に使っていて注意したほうがいい点をまとめる。
順次追加予定。

###indexの型に関して

CSVの読み込み時index_colを利用するとindexの型はdtypeの指定とは別に
自動で決定されてしまうようだ。

“`python
import pandas as pd

# 例) input.csv
#ID,param1,param2
#0001,01,AAA
#0002,02,BBB
#0003,10,CCC

df = pd.read_csv(“input.csv”, dtype=object, index_col=”ID”)
#型をobjectに指定しているがindexだけはint型となってしまい
#先頭の0が抜け落ちてしまう
“`

型を保持するためにはindexの指定を後から行う必要があるようだ。

“`python
df = pd.read_csv(“input.csv”, dtype=object)
df.set_index(“ID”, inplace=True)
#これで元のデータのまま保持できる
“`

元記事を表示

OTHERカテゴリの最新記事