Python関連のことを調べてみた2019年12月14日

Python関連のことを調べてみた2019年12月14日

Numpy操作いろいろ

# このページについて
 いくつか自分で調べた機能を記述していきます。

### 特定条件の部分を抜き出す
 Trueのみを抜き出す。Falseは否定で対応する。

“`python
array[a == b,:]
array[np.logical_not(a == b),:]
“`

参考サイト
[python の配列。要素をまとめて論理演算。not、and、or、xor](http://ailaby.com/logical_and/)
[NumPy配列ndarrayから条件を満たす要素・行・列を抽出、削除](https://note.nkmk.me/python-numpy-condition/)

元記事を表示

ETL処理用フレームワークcliboa〜概要編〜

# ETL処理とは
ETLはextract, transform, loadの頭文字を取って繋げた用語である。extract, transform, loadは日本語に直訳すると抽出、加工、読み込みになる。
ETL処理とは、何らかのデータ(テキストファイル、csvファイル、etc…)に対してETLが示す処理を行うことである。

# cliboaとは
BrainPad社内で開発・運用が行われていたETL処理機能の共通基盤部分をアプリケーションフレームワークとして設計・実装し直したものがcliboaである。

GitHub
https://github.com/BrainPad/cliboa

PyPI
https://pypi.org/project/cliboa/

## cliboaに置けるETL処理の定義
cliboaではextract(抽出)は何らかの箱からデータをダウンロードすること、transform(加工)はダウンロードしたデータを加工すること、load(読み込み)は抽出、加工したデータ

元記事を表示

強化学習35 pythonローカル開発で、myModuleにリンクを貼ってimportする。

中学生から大学生のAI初学者を対象にしています。

chokozainerRLで強化学習の学習環境開発をしていますが、ローカルのgitで変更して、リモートに送って、colaboratoryでチェックするという流れは、結構面倒です。

簡単なモジュール変更のチェックをする場合、ローカルにもpython環境があるのならば、そちらでチェックするのが速い。
そのときに、gitで変更して、リモートに送って、再度 pip installするのもなあということです。

直接、
anaconda3/envs/chainer/lib/python3.7/site-packages/chokozainerrl
を変更すると、、gitで上げるときにコピーしたりするので、、、。

そこで、シンボリックリンクを貼ってみました。

“`bash
ln -s /home/{user name}/chokozainerrl/chokozainerrl anaconda3/envs/chainer/lib/python3.7/site-packages/chokozainerrl
“`

{user name}はそ

元記事を表示

Pythonでつくって遊ぶフラクタル

フラクタルは数学やプログラミングの教材としてとても良いですね。練習がてらにスクラッチしたフラクタル図形を紹介します。

理論の解説はしません。

## マンデルブロ集合
全体のコードは[こちら](https://gist.github.com/kazucmpt/354c3e4eedc4bfd157e00c815ddb0135)。

フラクタルと言えば、マンデルブロ集合ですよね。

>定義
$z_0=0, z_{n+1} = z_n^2 + C$で定義される複素数列$\\{z_n \\}$が$n \to \infty $ で発散しない複素平面上の点$C$の集合をマンデルブロ集合と呼ぶ。

ここで複素数列$\\{z_n \\}$が$n \to \infty $で発散しない、というのは、$|z_n|$が$n \to \infty $で発散しないことを言います。また、$|z_k| > 2$ を満たす $z_k$が存在する場合は$\\{z_n \\}$がいずれ発散することが知られています。この命題の説明は[こちら](ht

元記事を表示

Python3.8をはじめる on Windows

本記事は、Windows8.1 を例に説明します。

プログラミングを始めるためにはその環境が必要ということで
今回は **Python3.8** をインストールします。
※2019/11/17 に行いました。

#自分のPCのバージョンを確認する

まずwindows のバージョンが32bit か64bitか確認を行います。

これによってインストールするものが違うのでメモしておきましょう。
デスクトップの左下スタートボタンを押します

右上にある検索マークをクリック

元記事を表示

Pythonにおけるクラス

# はじめに

ここでは、Pythonの初心者向けに、「クラス」の基本について解説していきます。
Python3系の使用を前提とします。

# クラスの作成

クラスを作成するときは、`class`を使います。

“`python:class_1.py
class Human():
name = ‘ゆきや’
def say_hello():
return ‘こんにちは。’

print(Human.name)
print(Human.say_hello())
“`

以上のようにしてクラスを作成することができますが、この書き方だと、「ゆきや」以外のインスタンスを生成できません。

あるクラスから複数のインスタンスを生成できるようにするには、`__init__`(コンストラクタ)を利用します。
第一引数は`self`となります。

“`python:class_2.py
class Human():
def __init__(self, n):
self.name = n

def say_hel

元記事を表示

Chromeの「自動テストソフトソフトウェアによって制御されています」を消す

自動テストを実行する際に表示される「自動テストソフトソフトウェアによって制御されています」を消す方法をあちこちのページを跨いで解決したのでまとめました。
webdriver_managerを使った場合の消し方になります。

# 環境
Windows10 Pro 64bit
Python3.7
Selenium
webdriver_manager

# やること
・オプションを定義する
・そのオプションを使ってWebdriverを立ち上げる
 …簡単。

“`sample.py
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option(“excludeSwitches”, [‘enable-automation’])
driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)
“`
[‘enable-automation’]を[‘disable-automation’]

元記事を表示

Pythonでユークリッドの互除法を再現

## はじめに
###これは超初心者による備忘録です
今回は初めての投稿です。
pythonをやり始めて一週間。まだまだヒヨッコなので、ネットで見つけた問題集で練習しております。

その時に見つけた問題がうまく解決できなかったので備忘録として記事を残します。

超初心者の方は必見です!!!

###ユークリッドの互除法とは
簡単にいえば、最大公約数を機械的に求めることができる計算方法。

計算方法
①調べたい2つの自然数を用意する
②大÷小をする
③余りが出たら、小さいほうの数字とそのあまりの最大公約数が元の2数の最大公約数と一致している。
④これを繰り返すことで、簡単な数字で最大公約数がわかる

まあこんな感じです。わかりにくくてすいません。

## 実際にやってみる
それではコードを書いていきます。
まずは新しい関数gcd()を定義します

“`Python
def gcd(a,b) #関数を定義
“`
関数を自分で定義するのはdefを使います。

次に、この関数が行う処理を書いていきます。
ユークリッドの互除法では、何度も計算を繰り返さなくてはなりません。
その

元記事を表示

現場からの報告。製造業でAI/IoTを活用するために必要だと思うこと

はじめてQiita投稿させていただきます。
いつもお世話になっているんですけどね、投稿せずに申し訳ない。

## はじめに
「2025年の崖」と言われているように、製造業にとってデジタルトランスフォーメーションが喫緊の課題となっております。新興国が品質とコストで猛追するなか、工場にいて日本の厳しさを感じるんですよね。
もはや「日本の品質って本当にいいの?」って思ってしまいます(まぁうちの工場だけかもしれないけど!)。
とはいえ人口減少する日本にとって、高付加価値品の製造が必要なのは明白であり、特にAI/IoTというのはその大きな試金石となっていると思います。いちメーカでAI/IoT担当(かっこ笑いw)をしている身から現場の感覚をお伝えできればと思います。

言いたいことは下記の3点です。
・本部機構にだけAI・IoT推進課を作っても無駄
・買い物だけでは不十分、プログラミングレベルの全体の底上げが必要
・既存のIT担当者はむしろ邪魔になる場合も

### 本部機構にだけAI・IoT推進課を作っても無駄
大企業で多いのは、工場とは離れた本部機構にAI/IoTの専門部署を作ることですよね。

元記事を表示

VSCodeのPylintがimportでうざい!!!!

この記事は、エラーの握りつぶしに近い行為を行っています。
**一通り問題が解決したら、こちらの記事(https://qiita.com/ysk24ok/items/2711295d83218c699276) も読むべきです。**

#初めに
VSCodeのPylintがimportでうざい!!!!
っていきなりなんだい。って話ですが、

VSCodeでPythonを書くとき、
自作モジュールを相対インポートしようとすると、必ずと言っていいほどエラーが出ます。

#0.環境

グローバル環境(仮想環境を使用せず)で以下のディレクトリ構造です。

“`
~
-Sample
-main.py
-__init__.py
-sub_methods
-method1.py
-method2.py
-out.py
“`
それぞれ、以下のコードを持ちます。

“`python:main.py
print(“main”)
from sub_methods import method1
“`

“`python:__init__.py
print(“__init__”)
impor

元記事を表示

青空文庫の作品の感情レーダーチャートを作ってみた

# 概要
## はじめに
これは、「[富士通クラウドテクノロジーズ Advent Calendar 2019](https://qiita.com/advent-calendar/2019/fjct)」の14日目の記事です。
昨日は[@213](https://qiita.com/advent-calendar/2019/fjct)さんの[今年起こした障害の話](https://qiita.com/213/items/116ffef45dd58547214f)でした。

213さんは果たして、13日の金曜日を無事に乗り切ったのでしょうか。気になるところです。

## 本題
ふとしたときに人は本を読みたくなるものですが、その時の気分によって明るい内容だったり暗い内容だったり**読みたい本の傾向**って変わりますよね。

けど、書店でいちいち手に取ってあらすじや内容を確認する**時間はない**ですし、ネット上でフリーで公開されている[青空文庫](https://www.aozora.gr.jp/)にはあらすじは存在しないので読んでみないとどんな作品なのか把握できません。

だったら内容を確

元記事を表示

間違い探しを秒で解いてくれるプログラムを作ってみた

[富士通システムズウェブテクノロジー Advent Calendar 2019](https://qiita.com/advent-calendar/2019/fsweb) 16日目の投稿です。
記事の内容は全て個人の見解であり、執筆内容は執筆者自身の責任です。所属する組織は関係ありません。

# はじめに
16日目の今回は、サイゼリアの間違い探しを自力でクリアしたことがないでお馴染みの私が

**二枚の画像から差分をとって相違点をぱっとみでわかりやすく表示できるプログラム**

を作る方法を、拙筆ながら書かせていただきたいと思いますまる

# おおまかなイメージ図
スクリーンショット 2019-12-13 21.04.06.png
スクリーンショット 2019-12-</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Python</div>
<div class='tag-cloud-link'>画像処理</div>
<div class='tag-cloud-link'>OpenCV</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/fujisawa-shin/items/3be8b0529b96b7cf9152'>元記事を表示</a></div>
<h3 id=【AWS S3】S3上のフォルダの存在確認

## 概要
PythonのAWSへのAPIラッパーであるboto3ライブラリを用いて、S3上のあるフォルダ[^1]
またはファイルが存在するかどうかを確認する関数を書いた。

## 動機
S3上のフォルダの有無で場合分けをしたい処理があったのだが、ネット上にはboto2を使っていて現在では実装されていない関数を使った処理だとか、S3上の「ファイル」にしか使えない方法ばかりがあって、「フォルダ」に対する存在判定がほぼなかった。

なので自作しました。

##

## コード例

“`python
import boto3
from botocore.exceptions import ClientError

client = boto3.client(‘s3’)
bucket_name = ‘hoge’
key = “fuga/piyo/bar/” # /まで入れるのがキモだと思う。なくてもいけるかもしれない。確かめてません。

result = client.list_objects(Bucket=bucket_name, Prefix=key)

# 次もキモ。上記のパスが存在

元記事を表示

学習記録 その2(6日目)

#学習記録(6日目)
勉強開始:12/7(土)〜
使用書籍:大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年)

【条件分岐、繰り返し、例外処理(Ch.5 / p.129)】 から再開(4日目)、
【リストの要素を並び替える(Ch.6 / p.170)】 まで終了(6日目)

###elseブロックがあるfor文
while文と同様に、繰り返しが終了した時点でelseブロックが実行される。
for文が途中でbreakした場合については実行されない。

###try文(例外処理)
想定されるエラーをあらかじめ例外処理することで、途中でbreakせず最後まで処理を行う。
try 〜 except で例外オブジェクトについて組み込む。except以下は複数定義することが可能。
asで定義することで、例外オブジェクトを他の変数で参照することもできる。

###リストを作る
“`
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
words = [“flowers”, “snow”, “moon”]
mixture = [1, 2, “flowers

元記事を表示

JOI2019/2020 一次予選第三回 A問題,B問題の解き方

JOI2019/2020の一次予選第三回、お疲れさまでした.
コンテスト中ではB問題のみ解けました.
解説が出ているから公開していいはず。
使用言語 : C++,Python3

#A問題
qiita_joia.png
#解法
X < L の時、Lを出力. L <= X <= R の時、Xを出力. R < X の時、Rを出力. #コード ```A.cpp #include

using namespace std;

int main(){
int X;
int L;
int R;
cin >> X >> L >> R;
if(X < L){ cout << L << endl; } else if(L <= X

元記事を表示

価値反復法のeinsumによる実装

普段強化学習,逆強化学習を研究しているのですが,最近おもしろいことを知って実装してみたので,アドベントカレンダーのネタにさせていただきます.

#予備知識
前提となるマルコフ決定過程と価値反復法について概説します.

## マルコフ決定過程
マルコフ決定過程(MDP)とは,マルコフ過程(次状態は現状態にのみ影響されるマルコフ性をもつ過程)に意思決定である行動を加えた過程です.詳しい説明はネット上に多くあると思うので割愛します.

## 価値反復法
価値反復法(Value Iteration)とは,動的計画法と呼ばれるアルゴリズムの一種です.
ある状態$s$の価値を次の手順で求めます.

– $V$, $Q$ を初期化
– $s$, $a$ について収束するまで繰り返し:
– $Q(s,a)=R(s)+\gamma \sum_{s^{\prime}} P(s^{\prime}|s,a)V(s^{\prime})$を計算
– $V(s)=\max_a Q(s,a)$

# einsumによる実装
numpy.einsumは,アインシュタインの縮約記法による行列計算の実装を手軽に行なえ

元記事を表示

Djangoでよく見かけるエラー =随時追加=

##環境
“`
python3,7
Django 2.2
windows
“`
フォルダー構成
ここで触れないファイルは省略します。

“`
├── config
│ ├──__init__.py
├──settings.py
│ └── urls.py
├── manage.py
├──
├──
└── posts
├──templates ── posts ── index.html
├── models.py
├──forms.py
├──views.py
└── urls.py
“`

##項目
1.TemplateDoesNotExist
2.

##内容
### 1.TemplateDoesNotExist
####原因
テンプレートが見つからない

####確認すること
htmlを置く場所が間違っていないか
urls.pyのpathが間違っていないか。

“`python
#views.py
class IndexView(TemplateView):
template_name=’posts

元記事を表示

Pythonとは

今日はある意味本命である
Pythonについて投稿します。

# Pythonとは
1991年にオランダ人のグイド・ヴァン・ロッサム氏によって開発されたプログラミング言語です。

少ないコードで簡単にプログラムを作れ
尚且つコードが読みやすいのが特徴です。

「人工知能(AI)」や「Web開発」、「教育の分野」など活用が広まっています。

# Pythonのメリット

基本メリットとして

* シンプルで覚えやすい
* インデントによるオフサイドルール
* コンパイルが不要
* ライブラリが充実している

これらが挙げられます。

## シンプルで覚えやすい
文法がシンプルで必要最低限のものしかあらず
読みやすく書きやすい言語です。
何通りも書き方は用意されてないので
他人の書いたコードも比較的読みやすいものになります。

## インデントによるオフサイドルール
構文などのブロックを字下げ(インデント)で指定するというものです。
これによって誰が書いても同じコードになるため、
プログラムは書きやすく読みやすいモノになっています。

### オフサイドルール
字下げによって文などのかたま

元記事を表示

ダウンロード画像と顔画像の簡易管理アプリ

# はじめに
– 機械学習用の画像を収集し、目視で仕分けする作業が発生する場合があります。
– Mac では、Finder で画像を見ながら削除を繰り返したりしますね。これは、かなり骨の折れる作業です。
– 今回は、Webブラウザベースの簡易管理アプリを作成しました。
– ソース一式は [ここ](https://github.com/maedamikio/public/tree/master/abe_or_ishihara/learning) です。

# 概要
– `トップページ`では、`config.py` の `CLASSES` を元に各メニューを表示しています。
– `ダウンロード画像、顔画像`では、両者を比較することができます。
– また、顔画像をクリックし、まとめて削除を実施できます。
– `学習画像の予測結果`と`テスト画像の予測結果`は、別途提供する予定です。

## トップページ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/4958d4d0-431c-

元記事を表示

Djangoのデプロイで追い詰められているあなたへ。Ubuntu18.04+NginxでDjango2.2デプロイ完全版

#はじめに
自分が初心者だったこともあって、かなり初心者向けに書いたつもりです。
とは言っても初投稿なので、1ヶ月ほど前にやったことを思い出しながら書いているので、なにか抜けていたり大きなミスをしていたりするかもしれません。
もしご不明な点やミスなどがあればコメントよろしくおねがいします。

完全版とは言いましたが、よくある記事とは違い、プロジェクトの作成からの説明は行いません。
自分自身Djangoのデプロイに苦労して調べていた時に正直無駄だと思ったからです。
この記事では、デプロイするDjnagoプロジェクトが用意できているものとして説明を始めます。

Django3.0がリリースされた今かよって感じですが、おそらくDjango3.0でもそんなに変わらないと思います。
僕がやった範囲内では問題なく動作しました。

#環境
* Ubuntu18.04 LTS
* Nginx1.14.0(最新のものなら基本OKだと思う)
* Python3.8.0(3.x.xならOK)
* Django2.2.8(2.2.xならOK、おそらく3.0でもいける)

#前提
* プロジェクトの名前は “Y

元記事を表示

OTHERカテゴリの最新記事