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

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

Python フォルダの作成 既存かチェックあり

##背景
Pythonでフォルダ作成のプログラミングコードはたくさんありますが、
念のため備忘録を作成します。

##サンプルコード

フォルダを作成することはできますが、
そのフォルダが既存だとエラーが出ます。
ifを使って回避します。

“`python:make_folder.py
import os

new_path = “demo_folder”#フォルダ名
if not os.path.exists(new_path):#ディレクトリがなかったら
os.mkdir(new_path)#作成したいフォルダ名を作成
“`

##結果
1回目に実行したら、フォルダが作成されます。
2回目に実行したら、すでにフォルダが作成されているため何も起こりません。

元記事を表示

【pyhton】スライスとは?使い方を具体例で分かりやすく解説

#【pyhton】スライスとは?意味と使い方を実例で分かりやすく解説

pythonを学んでいると耳にするスライス。

範囲指定や変化量をプラスとマイナスで指定するかで挙動が変わるなど、ややこしい。。

範囲指定や変化量をプラスやマイナスにした場合や混在させた場合、範囲外を指定した場合にどういった挙動になるかをパターン別に確認。

**目次**

1. [スライスとは?](#1-スライスとは)
2. [スライスの基本構文](#2-スライスの基本構文)
3. [配列番号の見方](#3-配列番号の見方)
1. [開始値がプラス](#1開始値がプラスの場合)
5. [list型](#1-1-list型)
6. [文字](#1-2-文字)
2. [開始値がマイナス](#2開始値がマイナスの場合)
5. [list型](#2-1-list型)
6. [文字](#2-2-文字)
3. [マイナスとプラスが混在](#3マイナスとプラスが混在)
4. [範囲外を指定する場合の考え方](#4

元記事を表示

AtCoder Beginner Contest 078 過去問復習

#所要時間

スクリーンショット 2020-03-24 19.45.03.png

#感想
バチャコンでC問題わからねえって床で寝転がって爆睡してたら一問も提出できませんでした。バチャコンの意味とは。
普段からしっかり取り組もうと思わずテキトーにやってるからこういうことになるという戒めになった回だと感じています(毎回感じている気はしますが)。
結局C問題はコンテスト後もわかりませんでした。なんで。→極限の解き方忘れていたのと、確率に対して感覚的に取り組めていませんでした…。
D問題は答えをみながらC問題を解いた後に解きます。→ゲームの問題の基本を徹底できていませんでした。

#[A問題](https://atcoder.jp/contests/abc078/tasks/abc078_a)

三項演算子を使うと

元記事を表示

EfficientDetを動かしてみた

# 何をしたいか
– EfficientDetを動かしたい
– COCOでのEvalationまでやると時間がとてもかかるので、1枚の画像の推論まで実行します

# 注意
– [使うレポジトリ](https://github.com/google/automl)はgoogleのものですが、公式のgoogle製品ではないとのことです([参照](https://github.com/google/automl/tree/master/efficientdet#6-training-efficientdets-on-tpus))
– コードが急速に更新されているので、この情報もすぐoutdatedになります

# 環境
– Docker 18.09.1
– Ubuntu 16.04
– GTX1080

# こうやると動きました

“`bash:とりあえずコンソールから
docker pull tensorflow/tensorflow:latest-devel-gpu-py3
docker run -it –name tensorflow -p 8888:8888 tensorflow

元記事を表示

プログラミング初心者のためのpython環境の作り方~Jupyter Labの導入~

僕は今は画像認識の研究をしています。去年の10月、半導体の実験系の研究室から画像認識の研究室に移ってきました。今の研究室に移ってきて一番最初に苦労したのは、画像認識とかディープラーニングの理解とかではなく**PCの環境構築**でした…
それまでプログラミングを勉強しようと度々挑戦しては失敗していました。なぜなら、**何から始めたら良いのかわからないから!**

ある程度できるようになって思うのは、”*初心者の、プログラミングへの導入ハードルの高さ*” です。
最近話題の[「スケベ博士」を作ったDaiさん](https://note.mu/daikawai/n/n252b3f8d1138)を見ていて共感するところが多かったので、初心者のハードルを下げるために書いてみました。

**今回はMACでpythonを使ってプログラミングを始める時の第一歩として Jupyter labを使えるようになるところまで説明しようと思います。**
一回環境構築をしてしまえばpythonを使って勉強も始められると思います。やはり一番手こずるのは **何から始めればよいのか?** だと思うのでそこをわかり

元記事を表示

Udacityの超濃厚な無料コースだけで機械学習エンジニアになれる? 【PythonからPyTorchまで無料】

## イントロ
皆さんご存知のUdacity。知らない人でも知っているUdacity。(?)
いわゆるMOOC(Massive Open Online Course)です。
UdacityにはNanodegree Programと呼ばれる、有料でミニ学位の取得を目指せるコースがあるのですが、Udacityがどんなものか知ってもらい、ユーザーを増やすため、”Introduction to ~”という、基礎的なところを**無料で**勉強できるプログラムが提供されています。
**ですから無料でも、意外としっかりした内容が学べます。**
そしてそのコースをいくつか受ければ、月額$200を払わずとも**余裕で機械学習エンジニアになれるんじゃないか**と思って調べたところその通りだったのでこの記事を書きました。(ちなみに幾つかのコースは既に受講しました)

## 1. Python
[Introduction to Python Programing](https://classroom.udacity.com/courses/ud1110)

時間: 14h
ランク: 初心者
トピック: 7

元記事を表示

各国の新型コロナウイルス感染状況を公開データを使って分析・予測する

# Disclaimer

まず初めに本稿ではコロナウイルスによる死者数の予測についてのデータを示していますが、これは現在までウィルスにより亡くなられた方、また現在もウィルスによる肺炎などの症状で苦しまれている方を貶めるものではもちろんありません。また、この予測についてはあくまで現時点でのデータから科学的に(=ある一定の手法に則ったやり方で)導かれる結果とそれに対する私の個人的な考察であり、政治的・宗教的その他の意図を持ったものでもありません。あくまで本稿では**「公開されているデータからどのような予測があり得るのか?」について、その手法の1つを再現可能な形で示そうとするもの**です。ですので、もし本稿の内容に興味を持たれた方は私の考察を鵜呑みにせず、是非ご自分で色々と分析してみていただければと思います。
また、ここで述べる意見については私個人の意見であり、本稿での間違いは私に帰属し、所属する組織等とは関係ありません。

# 本稿を書くに至った動機

率直に言えば、これは私の個人的な**「現在世界で何が起こっているのかを実際に自分の手を動かすことで知りたい」**という試みです。日々コロ

元記事を表示

Django とは。。。

Pythonの学習を始めた人の多くが耳にするであろう。Djangoについて。。。

自分用であり、誰かの学習に役立てれば嬉しいです。

Djangoを利用して作られたWEBアプリケーションで有名なのが、みんな大好き(私はやっていない)インスタです。あとCMで耳にする「日経電子のバーン」でお馴染みの日経電子版です。(私は毎月無料枠分のみ利用してます。)

Pythonを学習したいと考える人の多くは機械学習やAIに興味があるのではないのでしょうか?
Pythonはデータ分析や機械学習に優れたライブライが充実しているために、近年人気があります。

PythonのフレームワークであるDjangoの人気は今後も上がり続けると考えられます。

それではDjangoとは。。。。

DjangoはpythonでWEBアプリケーションを作成するためのフレームワークである。
DjangoにはWEBアプリケーションに必要な機能が多く用意されているので、開発のハードルが下がる。
 例) Djangoにはユーザー周りの認証機能が標準で搭載されているので、近年のアプリケーションでは必ずと言えるほど用意されているユ

元記事を表示

Influence関数をロジスティック回帰で試す

以前はミスラベルだらけのデータに殺意を覚えましたが,最近諦めました.

# 概要・結論

– influence関数をロジスティック回帰に適用します.
– どのようなサンプルでinfluence値が高いのか調べます
– 結論:**決定境界に近いサンプルと,ミスラベルつきサンプルに対してinfluence値が高くなる**(したがってミスラベルの修正に使える)

# influence関数とは

ICML2017のベストペーパーである[Understanding Black-box Predictions via Influence Functions](https://arxiv.org/pdf/1703.04730.pdf)で提案された関数で,機械学習モデルに対して学習サンプルが与える摂動を定式化したものです.

論文の概要や解説については[素晴らしい記事](https://qiita.com/yuzupepper/items/52261633c9678e2e0aa0)や[素晴らしい記事](https://qiita.com/nayopu/items/9690a8ae8a1c7154e

元記事を表示

YAMLを用いたPythonの設定値管理用ツールを自作した

# この記事の概要

YAMLファイルに何らかの設定値を書き、Pythonからそれをロードして参照することがあると思います。特に機械学習分野だと多い印象があります。

しかし、ロードした結果は辞書オブジェクトとなっており、そのキー名や、階層構造はYAMLファイルを目で見て確認する必要があります。
私はコーディング中にYAML確認作業が入るのが我慢できませんでした。

この記事は、**YAMLファイルでconfigを定義すれば、Python実装中もその項目が自動補完されてほしい**人向けにその実現方法の1つを紹介しています。

コードは[ここ](https://github.com/Nkriskeeic/configer)に置いてあります。このコードはモジュール化されており、pipでインストール可能です。

## YAMLファイルに設定値を記述する

まず、YAMLファイルに設定値を記述する例について見ていきます。

“`yml:config.yml
model:
in_channels: 3
n_blocks: 10

元記事を表示

tkinterで作った透過Frameのpyinstallerでの挙動の違い【Python】

以前、[tkinterで背景が透過するFrameを作る【Python】](https://qiita.com/teahat/items/050b572aad0d1686370b)にて背景が透明なFrameの作り方を紹介した。この透過Frameだが、`$python hoge.py`(以降$pythonと表記)とした場合と、
`$pyinstaller hoge.py –onefile`としたexeファイルを実行(以降$pyinstallerと表記)した場合で挙動に違いがみられたので紹介する。

#環境
Windows10-64bit
Python3.7
Pyinstaller 3.6

#pyinstallerとは
Windows用のexeファイルを簡単なコマンドを実行するだけで作成できるプログラム。

“`
$pip install pyinstaller
“`
でインストール可能。ただし、自分が使っているpythonのバージョンに対応しているか[公式サイト](https://pypi.org/project/PyInstaller/)で確認する必要がある。
2020年3月某日

元記事を表示

Python API通信時の例外処理

仮想通貨の自動売買BOTを作成した際に、
取引所のAPIを利用したところ取引所側で頻繁にエラーが検知されるため
対策として例外処理を実装しました。
忘れないために自分用のメモとして残します。

## 例外処理とは
簡単に`サーバーエラー`などの対策です。
自分の書いたコードが正しい場合でも、実行時にエラーが発生することがあります。
例えば、外部サーバーにリクエストした時に、サーバーが混雑していたり、
一時的にメンテナンス中でサーバーが動いていない場合など、
レスポンス結果としてサーバーエラー(エラーコード)などが返ってきてしまいます。
特に自動売買BOTの様な自動で動く様なプログラムは
サーバーエラーが原因で毎回停止されてしまうと困ります。。。(もはや自動売買BOTではない)

対策として`try-except文`(例外処理)を記述することで予期せぬエラーを未然に防ぐことができます。

## HTTPステータスコード
リスクエストに対して正しいレスポンスが得られたかどうかというのはHTTPステータスコードで参照できます。
下記はHTTPステータスコードの一部で、大分類はこの様になって

元記事を表示

【Python】アメリカ式の週番号の取得

# この記事の目的

週番号を取得しようとしていたときに,
以下のような現象を確認したので, 原因と対策メモ

“`python
import datetime
datetime.date(year=2017, month=1, day=1).isocalendar()

> (2016, 52, 7)
“`
なんで2017年の元日が2016年なの!?

# 原因

次の記事によると, [Pythonで週番号を計算する](https://water2litter.net/rum/post/python_datetime_isoweekday/)

>ISO8601の週番号の定義
> 最初の木曜日を含む週を第1週とする. 週の始まりは月曜日.
>アメリカ式の週番号の定義
> 1月1日を含む週を第1週とする. 週の始まりは日曜日.

ということ.
つまり“`ISO8601“`の形式だと, 上の結果で正しいみたい.
しかし, 今回は“`アメリカ式“`の結果が欲しい…

# 対策

調べても, “`isocalendar()“`を“`アメリカ式“

元記事を表示

pandas.DataFrameへSeriesを列として代入する時には注意が必要

pandasのデータフレームにシリーズを追加しようとするとjoinに近い挙動となるので気を付けましょうという記事。

# まえおき
pandasでデータ処理を行なっているとき、データフレームに列を追加する処理は頻出です。
デーフレームに列を追加する時には大きく分けて二つのやり方があります。
1. 列名を指定して列追加
2. `pd.DataFrame.assign`メソッドで追加

**1. 列名を指定して列追加**

“`python
df[‘new_col’] = data
“`

**2. assignメソッドを用いて列追加**

“`python
df.assign(new_col=data)
“`

いずれの場合においても、値、サイズの等しいリスト・`np.array`・`pd.Series`などを渡すことができます。

# シリーズを代入したときに起こる直感に反した挙動
任意のデータフレームと、同じレコード数のシリーズを用意します。

“`python
df = pd.DataFrame(
[[1,2,3], [4,5,6], [7,8,9]],

元記事を表示

Django 入門 2

#Web上で”Hello World”を表示させてみる
Hello World Appというwebアプリケーションを作成して,”Hello World”を表示してみます.
##初期設定
まず任意のディレクトリに移動し,helloworldという名前(何でもいい)のディレクトリを作成し,そのディレクトリへ移動する.そして仮想環境をに入り,次のコマンドを実行して新規Djangoプロジェクトを作成する.

“`
$ django-admin startproject helloworld_project .
# django-admin.py: 新規プロジェクトに必要なディレクトリとファイルを作成するスクリプト
# helloworld_progect: プロジェクト名なので何でも良い
“`

helloworld_projectディレクトリが作成される.ディレクトリ内には次のファイルが存在している.

“`
├── helloworld
   ├── manage.py #Django プロジェクトに対する様々な操作を行うためのコマンドラインユーティリティ.
 

元記事を表示

pipenv + pyenv の開発環境でdjangoがインストールできない件

“`
pipenv –python 3.6
“`
した後に

“`
pipenv install django
“`
すると

“`
ModuleNotFoundError: No module named ‘pip._internal.download’
“`
とかが出て、インストールできない。
ちなみにpipenvのバージョンは

“`
% pipenv –version
pipenv, version 2018.7.1
“`

pipenvのバージョンが最新だとpyenvが使えないとのことだったので、わざと古いバージョンのものを入れていた。

■解決策
pipenvを最新のものに入れ直したらなぜか解決。

“`
sudo pip3 install pipenv –force-reinstall
“`
を実行するだけ。

理由はわからないがなぜか解決した。
推測だがインストールする順番が影響するのかも(?)
pipenv(最新版) → pyenv → pipenv(旧版)→ pipenv(最新版)
の順番だった。

元記事を表示

100日連続実装生活 3日目

#3日目
##誤差逆伝播法(バックプロパケーション)
今日は少し時間がなかったので、NeuralNetworkの一歩手前の実装までをやろうと思います。

1日目に実装したロジスティック回帰分析では線型的な回帰が得意でしたが、非線形のものはうまく対応できません。
そんなときに、ニューラルネットワークであれば、XORなどの非線形でも回帰することができます。

この分野は機械学習にめっちゃ入ってくるので、バイアスについての明確な根拠がありません。目的に合わせて、バイアスは変化させたり、固定したりします。

##モデル
今回は2入力、中間1層、出力の3層で作っていきます。

イメージはロジスティック回帰と同じで、それの組み合わせのようなものです。

##誤差関数
“`python:誤差導出
”’
入力 : x1,x2
隠れ層 : O1,O2
出力 : Output
誤差 : Error
バイアス : b
重み : w[どの層, どこから, どこへ]
E = (y – Output)^2
”’
#Forward Propagation
Z1 = b11 + x1*w111 + x2*w12

元記事を表示

pythonでLDAPにデータの追加取得をする

# はじめに
認証やツリー構造のデータの管理などでLDAPが使用されます。RDBと比べるとLDAPは使用される機会が少なく使用方法も異なるのでpythonでLDAPを操作する方法をまとめます。さらにLDAP認証のサンプルは色々なところで紹介されていますが、もっと簡単にするためシンプルな例を紹介します。

# 環境準備
## LDAPサーバ
LDAPサーバは、UbuntuやCentosにldapをインストールしてもできますがdockerイメージがあったため、そちらを使用します。

### dockerイメージのpull
dockerイメージは単純にpullするだけです。

“`

docker pull osixia/openldap
“`

### dockerイメージの起動
イメージの起動時にldapのパスワードとトップのドメイン、各ポートのマウントをしておきます。dockerネットワークを利用している場合は、ポートのマウントはせずにネットワークとIPアドレスの設定をします。

“`

docker run -p 389:389 -p 636:636 –env LDAP_D

元記事を表示

Stanzaの実行

[Stanza](https://github.com/stanfordnlp/stanza)というNLPライブラリがでたので、installして処理を実行してみた。

パイプラインというのは、入力テキストを前処理、トークン化、レンマ化、品詞タギング、依存関係解析、ラベルづけのようなフローである。Stanzaではそれら一連のパイプライン処理を組み立てる。

READMEには英語しかなかったので、日本語のケースでの実行を試した。

download可能な言語としては、[こちら](https://stanfordnlp.github.io/stanza/models.html#available-ud-models)。66の言語についてモデルが用意されている。

## install

https://stanfordnlp.github.io/stanza/#getting-started

に従えば良い。

“`python
import stanza

stanza.download(‘ja’)
“`

で、日本語のモデルをdownloadしよう。

downloadがすみ次第、

元記事を表示

Pythonで、位置情報から花粉情報を送るLINEBotを作った。

#(1)背景
・いつもこの時期から花粉に悩まされる。
・今年はコロナもあって花粉症者は辛い。
・マスク不足。
・pythonとscraping、herokuを使って何か作ってみたい。
・アウトプットイメージ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
![unnamed.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29856/187cd985-8383-7265-52e2-b25c920f943d.png)

#(2)環境構築
デスクトップに、ディレクトリline_kafunを作成。
line-sdkを扱うmain.pyと、Yahoo天気情報から花粉情報を収集するweather.pyを作成。

ディレクトリ構成は以下の通り。

“`
line_kafun
├main.py
├weather.py
├Procfile
├runtime.txt
└requirements.txt
“`

必要なパッケージをインストール。

“`
pip install flask
pip install line-bot-

元記事を表示

OTHERカテゴリの最新記事