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

Python関連のことを調べてみた2020年02月09日
目次

【DarkNet】YOLOを使ってドアラ検出 Part1

#はじめに
手軽に物体検出を試したいなあと思って手を出した次第であります。
そこで今回は某名古屋球団のマスコットである愛らしいドアラの検出をします。

#DarkNet
今回の主役「DarkNet」

スクリーンショット 2019-10-20 18.08.53.png

これがDarkNetのサイト。
「なんか厨二くさいサイトは・・・」と思うかもしれませんが、こいつが今回の主役です。

DarkNetでは画像検出に用いるアルゴリズムを楽に動かして画像検出の為のプロセスを最小限に抑えてくれてます。

#画像検出アルゴリズム「YOLO」
YOLO(You Only Look Once)とは、深層学習を基礎とした一般検出技術です。一般検出技術にはR-CNNやFast R-CNNなどいくつかあるそうですが、YOLOの強み

元記事を表示

ModuleNotFoundError: No module named ‘mysql.connector’; ‘mysql’ is not a package?

# はじめに
Pythonを書き始めた頃に出会ったエラーが初学者の方の参考になると思い、記事にしました。

# ModuleNotFoundError: No module named ‘mysql.connector’; ‘mysql’ is not a package

![mysql.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508680/f927d223-fa00-ffb7-862e-590326a82a9f.png)

Python3プログラム経由でMySQLに接続しようとした時、掲題の問題に出くわしました。
まず最初に、そのプログラムを実行する前に`mysql-connector-python` をインストールしていたことは確実でした。

“`
pip3 install mysql-connector-python

(For readability, added line feed to each row)
Requirement already satisfied: mysql-c

元記事を表示

cv2.Canny(): Canny法によるエッジ検出の調整をいい感じにする

エッジとは物体同士や背景との境界のことを指し、エッジ検出とは一般に画像中の画素値の変化、輝度勾配が大きい部分を検出することでエッジを検出する画像処理を指します。

スクリーンショット 2020-02-09 3.24.50.png
(画像は[フリー画像サイト](https://www.pakutaso.com/20191228360post-24995.html)から)

### `cv2.Canny()` とは

opencv で実装・提供されているエッジ検出関数。簡単にエッジ画像作成を行えるが、適切に使用するためには(主に)2つのパラメータを調整する必要がある。

公式ページ:[ドキュメント](
https://docs.opencv.org/2.4/modules/imgproc/doc/feature_det

元記事を表示

「メントスと囲碁の思い出」をCOTOHAさんに要約してもらった結果。COTOHA最速チュートリアル付き

# メントスと囲碁の思い出

メントスには深い思い入れがある。
当時あたしは囲碁同好会に参加しており、
碁石を弾いて相手の碁石を落とすという
「シューティング囲碁」に興じていた。
平安貴族も興じていたに違いない、
そのみやびな遊びを理解できない同好会会長は怒り狂った。
曰く、大切な碁石が割れるからやめろ、と。
碁石は割れたら直せない。
割れたら証拠隠滅のために食べてしまえばいい?
それならば、最初から「食べられる碁石」を採用してはどうか?
よく見ると「メントス」は碁石として最適な条件を兼ね揃えていた。
色、ツヤ、形、味、どれも通常の碁石より優れている。
専門店にいかなくても、コンビニで補充が出来る。
白と黒の淡泊な世界に飽きた際には、
色を変えることもできる。
唯一の問題は、夏の暑さに弱そうなところくらいであろう。
囲碁は、相手の石を取ることが出来る。
しかし、取ったからといって何が嬉しいのだろうか。
ちょっとゲームが有利になるだけだ。
メントスならばおいしく食べちゃってもいい。
囲碁を強くなろうという熱意も出てくるというもの。
あたしは同好会会長にこう直訴した。
碁石を全てメントス

元記事を表示

Excelで表題「件名」列に「中計」と書いてある行番号を全て探す◆Pandas◆Python

# 結論

`pandas.DataFrameオブジェクト.reset_index().query( ‘件名 == “中計”‘ ).index`
と記述します。これで表題「件名」列に「中計」と書いてある行番号の配列を得ることができます。具体的には以下のように記述します。

“`python:具体例
list中計行 = list( df全体一覧.reset_index().query( ‘件名 == “中計”‘ ).index )
“`
## 前提条件
1. 表題「件名」列に「中計」と書いてあるExcelシートをPandasのDataFrame`df全体一覧`に格納します

## していること
1. `reset_index()`で`df全体一覧`の行番号に当たるインデックスを初期化します
2. `query()`メソッドで検索条件として`’件名 == “中計”‘`を指定します
3. この`query()`メソッドの`index`プロパティを得ます。これが件名」列に「中計」の行番号です
4. これらの行番号が複数あるので、`list()`関数で配列化し、`list中計行`配列に格納し

元記事を表示

Pythonのエラーメッセージは具体的でわかりやすい「が」(要素[0]でIndexError: list index out of range)

#目的
何かと比較できるほどの経験が乏しいですが、
**Pythonのエラーメッセージは具体的でわかりやすい**
と感じています。
よって、エラーは、ぱっと見るだけでなく、記載内容をまじめに読むことが、
エラー解決の近道である気がしています。

ただ、一瞬、理解できないこともあるので、
**理解できるはずという前提で落ち着いて考えましょう**
という、そんな気持ちを示すための記事です。

## 要素[0]でIndexError: list index out of range
補足の**要素[0]でIndexError: list index out of range**の意味は、
レンジ外と言われてみ、要素[0]がなんで、レンジ外なの?
という意味です。

#エラーメッセージの例

ここで示すコードは、エラーメッセージを出すためのコードで、
全く同じような間違いをする可能性があるコードではありません。
繰り返します。エラーメッセージを出さすためのコードです。
(ただし、もう少し、ややこしいコードで、同じエラーが出ているのをみたことはあります。)

## エラー1
**Index

元記事を表示

Pythonのエラーメッセージは具体的でわかりやすい「が」(3連”””コメントの閉じる側で、SyntaxError)

#目的
何かと比較できるほどの経験が乏しいですが、
**Pythonのエラーメッセージは具体的でわかりやすい**
と感じています。
よって、エラーは、ぱっと見るだけでなく、記載内容をまじめに読むことが、
エラー解決の近道である気がしています。

ただ、一瞬、理解できないこともあるので、
**理解できるはずという前提で落ち着いて考えましょう**
という、そんな気持ちを示すための記事です。

## 3連”””のコメントの閉じる側での、SyntaxError
補足の**3連”””でのコメントの閉じる側で、SyntaxError**の意味は、
コメントを書いただけなのに、エラーになる、しかも、Syntaxと言われるという
言葉通りの意味です。

#エラーメッセージの例

ここで示すコードは、エラーメッセージを出すためのコードで、
全く同じような間違いをする可能性があるコードではありません。
繰り返します。エラーメッセージを出さすためのコードです。
(ただし、もう少し、ややこしいコードで、同じエラーが出ているのをみたことはあります。)

## エラー1
**SyntaxError**が出る

元記事を表示

tf.kerasのcustom layerに対してtf.keras.layers.TimeDistributedを使う時の注意

## 本記事の目的
“`tf.keras“`で定義したcustom layerに対して“`tf.keras.layers.TimeDistributed“`を用いるとエラーを吐いたので、その内容と解決策を共有します。

## version
– Python: 3.6.9
– Tensorflow: 2.1.0

## 目次
– tf.keras.layers.TimeDistributedとは
– custom layerとは
– custom layerに対してtf.keras.layers.TimeDistributedを作用させたときのエラー内容紹介
– 上記の解決法

## tf.keras.layers.TimeDistributedとは
時間方向に1つのlayerを繰り返し作用させたいときなどに用います。 ([参考](https://www.tensorflow.org/api_docs/python/tf/keras/layers/TimeDistributed))

“`python
from tensorflow.keras import Input, M

元記事を表示

VSCodeでPyrightとpylintからのimport警告を無くしたい

同一ワークスペース内の複数フォルダごとに、環境変数PYTHONPATHを切り替えたい(けれど切り替え方法がわからない)、という時に、解決できた方法です。

Pyrightからの「Import ‘xxx’ could not be resolved Pyright (reportMissingImports)」の警告や、
pylintからの「Unable to import ‘xxx’ pylint(import-error)」の警告が出る場合に、フォルダ毎にimport対象の検索フォルダを変えられます。

また、同一ワークスペース内の複数フォルダで、同名のimport対象が存在する場合でも、適切な構文チェックや、文字補完が効くようになります。

ワークスペースを分けたり、venvで仮想環境を使ったりせず、簡易にimportの警告をつぶしたいと思い、いろいろ調べたのですが、同じケースの話題が見つからず、試行錯誤することになったので、備忘録的に投稿します。

#フォルダ構成(例)
“`
src/
├── project1/
│   ├── .env(これを追加した)
│   ├── .v

元記事を表示

League of Legendsのデータ取得して解析してみたい③

#データベースに接続してデータを格納する
前回は自分が欲しいデータをあらかた抽出できたので、今回はそのデータをデータベースに保存していきたいと思います。
(前回の記事はこちらhttps://qiita.com/mattya_527/items/9b90451e94de246525a4)
##環境
2020/2/8現在
OS:windows10
Anaconda:4.8.1
python:3.7.6
MySQL:8.0.19
##データベースの設定
インストールなどの初期設定はこちらを参考にさせていただきました。(https://www.dbonline.jp/mysql/)
##データベースの作成
“`mysql -u root -p“`
でpasswordを入力してmysqlを起動させます。
“`create database LOLdb;“`
でLOLdbという名前のデータベースを作成します。
“`show databases;“`
でデータベースの一覧を確認することができます。LOLdbがあればOK

##データベースに接続する
まずは必要なモジュールをインストールし

元記事を表示

Pandas isinメソッド ラベル条件による学習データの分割

#やったこと
0から9のラベル付き学習データを任意のラベルで分割する関数を作成しました!
~~結局後の他の処理で問題が発生しお蔵入りになりました~~
今回処理するテキストのサンプルを示します。

“`sample.txt
data1 0
data2 1
data3 2
data4 3
data5 4
data6 5
data7 6
data8 7
data9 8
data10 9
“`
データとそのラベルが後ろについています。特にheader等もありません。
今回は特定のラベルを複数選択し、sample.txtを分割します。
以下、ソースコードです。

“`conditional_list_split.py
# -*- coding: utf-8 -*-
import glob
import os
import argparse
from PIL import Image
import cv2
import matplotlib.pyplot as plt
import numpy
import re
import pandas as pd

def conditional_

元記事を表示

書籍「15Stepで踏破 自然言語処理アプリケーション開発入門」をやってみる – 3章Step12メモ

# 内容
[15stepで踏破 自然言語処理アプリケーション入門](https://www.amazon.co.jp/dp/4865941320) を読み進めていくにあたっての自分用のメモです。
今回は3章Step12で、自分なりのポイントをメモります。
CNN自体は大体勉強したことがあるので、内容はざっくりと。

# 準備
– 個人用MacPC:MacOS Mojave バージョン10.14.6
– docker version:Client, Server共にバージョン19.03.2

# 章の概要
前章ではword embeddingsを導入することにより、単語の分散表現を特徴量として扱えるようになれた。
ただ、文レベルの特徴量に仕立てるには分散表現の合計や平均を取る必要があり、それだけだと予測がBoW系に劣ってしまう。
この章では単語の分散表現を文に対応する形で並べた列を入力とした畳み込みニューラルネットワーク(CNN)を構築する。

# 12.1 ~ 12.4

|CNNの層 |内容 |
|— |— |
|Convolutional layer |・入力
 ・w

元記事を表示

データサイエンティストになれるかな

自己紹介も兼ねた駄文から始めてみようと思う。

世の中AI(人工知能)ブームである。一昔前、AIといえばAction Itemを指していたが今や「AIって書くと紛らわしいからアクションアイテムって書けよ」と言われる(実話)時代になった。

現在は第3次人工知能ブームということで、いろんな人が「我が社もAIに取り組まないとけない」と鼻息が荒くなってきた。自分はといえば、データ分析の重要性についてはなんとなく認識しつつ、目立つWebページなんかはつまみ食いしていて、なんとなく概要はわかっていたものの、体系的に勉強したり技術をつけるということは年齢的なものや仕事を理由にこれまで避けてきた。

ところが、いろんなWebや書籍などの情報を見れば見るほどデータがいかに大事かということに気づく。その昔パソコンが使えるとヲタクだと言われたが、自分がその時に感じた、これ(コンピュータ)は将来くるぞという感覚に似たものを感じた。これは乗るしかない、この大波に!というわけで、何周遅れかわからないほど遅れているが、データサイエンティストの勉強の経過を記していこうと思う。

# 筆者のスペックや経験など

*

元記事を表示

2020年Jリーグの移籍状況を可視化したいんだけど、どうする?

## 動機
* サッカーは、毎シーズン多くの選手が移籍します。
* 今シーズンの公式サイトには、1650名(2020/1/31時点)の選手が登録されています。
* また、移籍情報を公開しているサイト[J’S GOAL’Sサイト](https://www.jsgoal.jp/transfer/2020/)に移籍情報が上がっています。
* 以前から、この選手の流動状態を可視化出来ないものかと考えていました。
* Google先生に「流入流出 グラフ」と検索しても使えそうなものはヒットしませんでした。
* それを「流入流出 可視化」とすると「サンキーダイアグラム」を発見!これは使えるかも!

## サンキーダイアグラムについて
>サンキー・ダイアグラム(英Sankey diagram)は工程間の流量を表現する図表である。矢印の太さで流れの量を表している。特にエネルギーや物資、経費等の変位を表す為に使われる。

[出典: フリー百科事典『ウィキペディア(Wikipedia)』](https://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%B3%E3%82%AD%

元記事を表示

pythonでツイートにいいねしてみた。。

#**python学習アウトプット #3**
##1. インタラクティブシェル
ターミナルでpythonと打って実行すると(>>>)こんなやつが出てきたらインタラクティブシェルに入ってるって感じすかねぇ
####・ インタラクティブシェルとは…
インタラクティブシェルとは、オプション -c を付加されずに起動されるシェルで、標準入出力が(仮想)端末に接続されているもの、、、らしい笑
よくわかんないす。

##2.whichコマンド
####・ whichコマンドとは
コマンドが実際に実行されているパスを探してくれるらしい。
パスとは、プログラム名だけで実行できるようにするために、PATH という環境変数(設定の一種)に「このプログラムも名前だけで実行できるようにしてください」という値を追加すること、、、らしいです。

##3. twitter APIを使って、あるキーワードに引っかかったツイートに[いいね]を押してくれるプログラムを試してみました!
###結果…
ちゃんとキーワードに引っかかった方のツイートにいいねを押してくれてましたっ
まぁコードは教えてもらっている先生が書い

元記事を表示

Python ブール演算の戻り値はbool型とは限らない

Pythonでブール演算を行えるのはbool型だけではなく、戻り値もbool型とは限らない。

オブジェクトの真理値を確認するには`bool()`:

“`python

>>> bool(123)
True
>>> bool([1,2,3])
True
>>> bool(‘abc’)
True
>>> bool({‘a’:1, ‘b’:2, ‘c’:3})
True
>>> bool((1,2,3))
True

>>> bool(0)
False
>>> bool([])
False
>>> bool(”)
False
>>> bool({})
False
>>> bool(())
False
>>> bool(None)
False
“`

## and
左オブジェクトの真理値が真なら右オブジェクトを返す:

“`python

>>> True and True
True
>>> [1,2,3] and ‘abc’
‘abc’
>>> ‘abc’ and [1,2,3]
[1, 2, 3]

>>> True and False
False
>>> [1,2,3] an

元記事を表示

CHEMBLIDから構造データを取得する

#はじめに
CHEMBLIDからChEMBLに問い合わせてSDFやSMILES等の構造データを取り出す方法について調べてみた。

#単一化合物のSDF(MOL)の取得

まず、単一のChEMBLIDを指定してMOLデータを取得するには以下の通りURLをたたけばよい。
CHEMBLIDは所定のものを指定する。ここでのポイントは末尾にformat=sdfをつけるという点である。

“`
https://www.ebi.ac.uk/chembl/api/data/molecule/CHEMBL1607289?format=sdf
“`

#複数化合物のSDFの取得
次に複数のChEMBLIDを指定して一気にSDFを取得するには、以下のURLをたたけばよい。
ここでのポイントは複数のChEMBLEIDを指定する際にセミコロンで区切るという点である。

“`
https://www.ebi.ac.uk/chembl/api/data/molecule/set/CHEMBL1607289;CHEMBL1607290?format=sdf
“`

#化合物データの取得
SDFではなく、分子量

元記事を表示

ALMAデータリダクション

気がむいたら更新していく予定

# 目次
## casaを用いた解析
### データ処理
– download
– concat
– split
– clean

– 番外編
– large surveyのダウンロード&処理用pkgはこちら

### データの加工
– cubeを積分強度 or 速度分散 or 速度場 or T peakにする
– 速度軸をbiningする
– 空間グリッドを揃える
– 速度グリッドを揃える
– 空間をsmoothingする
– 連続波を差し引く
– rms以下をzeroにする

### 便利ツール集
– image -> fitsに変換
– fits -> imageに変換
– headerを確認する
– 観測の境界線のfitsを作成
– listobsからspwを自動選択

## pythonを用いた解析
– Jy/beamからKに単位変換
– headerを編集する
– Missing Fluxを求める
– 空間分解能を揃える(convolution)
– 質量を求める
– continuumから求める
– 12COから求める

元記事を表示

Pythonローカル開発環境構築テンプレート【Flask/Django/Jupyter with Docker + VSCode】

# 概要

ローカル環境を構築することには、それなりのコストを伴います。もちろんここで多少苦労したほうがよいという意見はすごく分かります。が、それで気持ちが削がれてしまうのももったいないと思う次第です。
そこで、Flask/Django/JupyterNotebook向けの **Python開発環境構築を3コマンドで完了** させられるようなテンプレートを作成しました。(`cd`を除く)

# 前提条件

– MacOSであること
– `git`および`make`コマンドが有効であること(デフォルトで有効なはず)

※`conda`がインストールされている場合は、pipとのバッティングが発生し中途で失敗する可能性があります。

# ローカル構築イメージ
Dockerコンテナ上でアプリを動かすことになります。よく分かっていなくても、**Dockerコンテナを使って開発している**と言うことができます。

![Flask_Nginx_unicorn_diagramdrawio-local-template (1).png](https://qiita-image-store.s3.ap-n

元記事を表示

クラスメソッド スタティックメソッド

“`py:
class Person(object):
kind = ‘human’

def __init__(self):
self.x = 100

@classmethod
def what_is_your_kind(cls):
return cls.kind

@staticmethod
def about(year):
print(‘human about {}’.format(year))

print(Person.what_is_your_kind())
Person.about(1999)
“`

“`:実行結果
human
human about 1999
“`

`Person.what_is_your_kind()`で
`Person()`となっておらずオブジェクトができていないので、
本来はエラーとなる。

しかし、
`what_is_your_kind`をクラスメソッドにする事で、
`what_is_your_kind`オブジェクトのメソッドではなく、

元記事を表示

OTHERカテゴリの最新記事