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

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

Python Scraping – 2

# 目標
* eBay の売り切れ商品のタイトルから、有意だと思われるキーワードを抽出し、タイトル別の特徴を抜き出す
* サンプル数
* 2500 (50*50)
* 以下のアニメタイトルを、抽出対象とする
* ONE PIECE
* Naruto
* Captain Tsubasa
* Detective Conan
* Steins Gate
* 以下のいずれかに該当するキーワードを抽出する
* 固有名詞のうち、キャラクター名や作者名と思われるキーワード
* そのタイトルに特有と思われるキーワード
* 自身が意味を把握できないキーワード
* 出現回数が 20 回以下のキーワードについては、有意とみなさない
* 以下のアニメタイトルについては、曖昧さを回避するため、検索ワードを追加する
* ONE PIECE -> ONE PIECE anime

# 結果
## ONE PIECE
|

元記事を表示

Kaggle Titanic (欠損値補完)

次のプログラムの欠損値の補完を、train と test をマージしたもので行ってみました。結果に変化はありませんでした。
>[Kaggle Titanic 0.78468](https://qiita.com/ekzemplaro/items/9136cbd207174e3005de)

“`py:titanic04.py
#! /usr/bin/python
#
# titanic04.py
#
# Mar/23/2020
# ————————————————————————–
import sys
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import (roc_curve , auc ,accuracy_score)
# –

元記事を表示

【Python】OpenCVによる画像の画素へのアクセスと切り取り (初心者向け)

#はじめに
OpenCVを用いて画像をどうやって切り取るかを解説します。一応[前回](https://qiita.com/sino20023/items/b14c0dd7f90cda99b47f)の続きなので、もしこの記事でわからないところがあれば、ご覧ください。

#環境
MacOS Mojave
Python 3.7

#使用画像
以下の画像 (neko.jpg) を使用します。
![neko.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288555/e45a175e-acd1-8142-5ab5-2bac563dc97e.jpeg)

#画像の大きさを確認
以下のコードで画像の大きさを確認できます。

“`Python:
#ライブラリの読み込み
import cv2
import matplotlib.pyplot as plt

img = cv2.imread(“neko.jpg”)
print(img.shape)
“`
以上のコードを実行すると、以下の結果が出ます。

“`
(9

元記事を表示

Pythonでやさしくしっかり学ぶ正規表現

普段正規表現が必要になるケースがそれなりに発生しているものの、体系立てて勉強したことがなかったので整理・まとめておきます。言語はPythonを使います。

結構長めです。これを読んだ皆さんはきっと「[Pythonの正規表現完全に理解した](https://togetter.com/li/1268851)」とつぶやいても怒られないはず。

# そもそも正規表現って?

英語だとRegular Expression。文字列関係の特殊な操作をやる際に、特定のパターンを指定して色々な処理を行う表現(処理)のことを言います。

普通の文字列関係のビルトイン関数やモジュールなどでは対応が面倒(もしくは対応が難しい)な文字列操作などが正規表現を使うことでシンプルに扱えるケースがあります。

主に以下のような用途で使われます。

– 文字列の特殊な検索(例 : 曖昧検索や表記ぶれなどを含める等)
– 入力値のバリデーション(例 : 入力されたメールアドレスが有効な値になっているか等のチェック)
– 固定パターンの文字列の抽出や置換(例 : CSSのカラーコードを抽出したり、郵便番号から数値部分を抽出し

元記事を表示

【Python】ABC159D(高校数学nCr)【AtCoder】

競プロはノートとペンを用意してやろう!!!
(特に数学の式が出てきたら)

#[ABC159D](https://atcoder.jp/contests/abc159/tasks/abc159_d)
今回は解説の解説をしますw
まずは[解説](https://img.atcoder.jp/abc159/editorial.pdf)より引用。
>①N個のボールから、書かれている整数が等しいような異なる2つのボールを選び出す方法の数
②k番目のボールを除いたN−1個のボールから、k番目のボールと同じ整数が書かれたボールを選び出す方法の数
をそれぞれ求めて、前者から後者を引けば求まります。
前者は、∑Ni=1(ci 2), 後者はcAk−1となります。

**後者は「cAk−1」となります。**
なんでやねん!
##後者は「cAk−1」となります。の意味
こういうときは具体例を考えて法則性を見つける(ノートとペンがないと無理!)
<具体例1>
5個から2個選ぶ→5C2=5*4/2*1=10通り!
4個から2個選ぶ→4C2=4*3/2*1=6通り!
 ⇨10-6=4通り減る!
確かにcAk−

元記事を表示

【Python】Slackから1年間のメッセージ履歴を取得する

とある理由でslackから約1年間のメッセージ履歴を取得したのでPythonでの実装方法を書いておきます。
取得したメッセージを分析しやすいようにリフォーマットしたりしたのですが、いろいろまずいので全公開はできません。公開できそうな部分があればまた記事を書きたいと思います。

Pythonには[slackapi/python-slackclient](https://github.com/slackapi/python-slackclient)がありますが、今回は使用していません。python-slackclientを使った実装方法を知りたい方は本記事以外を読むことをオススメします。

# 環境
## 言語

– Python3.8

## 主な使用ライブラリ

– requests==2.23.0

## 開発補助用ライブラリ

– Pipenv
– mypy
– black
– flake8

# 実装

## Client

slackのtokenは環境変数から取得、またはmainスクリプトに直接記述できるようにインスタンス変数になっています。pipenvを使っていれば自動的に`

元記事を表示

Pythonのunittestを使ってみたメモ

Pythonのunittestを使ってみたメモ。またそのうち更新するかも。

# テストの作成と実行

まずは「[unittest — ユニットテストフレームワーク](https://docs.python.org/ja/3/library/unittest.html)」を使うところから。次のようなテストモジュールを書く。

* `import unittest` する
* `unittest.TestCase` を継承した試験クラスを書く
* 試験クラスには `test_` で始まる名前のテストメソッドを書く
* スクリプト単体で呼出された(`__name__ == “__main__”`)時は`unittest.main()`

unittestの「[基本的な例](https://docs.python.org/ja/3/library/unittest.html#basic-example)」から。

~~~
import unittest

class TestStringMethods(unittest.TestCase):

def test_upper(sel

元記事を表示

DataframeからBokeh(Rangetoolとselect)でインタラクティブなグラフを描こう

#概要
 普段はArduinoやM5stackなどのマイコンやガジェットをいじってるのですが、何台もセンサーをつないでデータが集まったのはいいものの、それをインタラクティブに可視化する手段があまりない。何かいいのはないか?ということでBokehを見つけて勉強を始めました。
 ところが日本語の参考になる記事は多くなく[公式ドキュメント](https://docs.bokeh.org/en/latest/index.html)や[Gallery-Bokeh 2.0.0 Documentation](https://docs.bokeh.org/en/latest/docs/gallery.html)、Qiita記事を参考にしましたがなかなか苦労したのでこの記事を見て役に立てば幸いです。

#完成したグラフ
 読み込んだcsvをDataframeにし、X-AxisとY-Axisにcsv内のcolumnをSelectを使って選択しグラフ化しています。下グラフの選択範囲をRangetoolで選択し拡大画像が上に描画されるようにしています。
 なお今回csvは[csvからbokehグラフ出力](h

元記事を表示

【Python】[Jupyter]スヌーピー画像をゴッホ風と葛飾北斎風の画風に変換してみた(Turi Create)

環境メモ
⭐️Mac OS Mojave バージョン10.14
⭐️Anaconda
⭐️Jupyter

元記事を表示

【Python】[Jupyter]飛行機画像を検索して類似する画像を抽出してみた(Turi Create)

環境メモ
⭐️Mac OS Mojave バージョン10.14
⭐️Anaconda
⭐️Jupyter

↓↓↓完成内容
飛行機画像を検索して類似する画像を抽出

AtCoder Beginner Contest 159 参戦記

# AtCoder Beginner Contest 159 参戦記

## ABC159A – The Number of Even Pairs

3分半で突破. 奇数のペアか、偶数のペアが答えになる. kC2 = k(k-1)/2 が分かっていればあとは書くだけなのだが、A問題にしては難しいね、これ.

“`python
N, M = map(int, input().split())

print(N * (N – 1) // 2 + M * (M – 1) // 2)
“`

## ABC159B – String Palindrome

12分で突破. 時間かかりすぎた orz. 回分チェックルーチンを書いて、後は 1-indexed を 0-indexed に変換しながら、言われたとおりにチェックしていくだけ. B問題にしては難しいね、これ.

“`python
S = input()

def is_palindrome(s):
return s == s[::-1]

N = len(S)

if not i

元記事を表示

Fortniteの画像を100枚スクレイピングする

#Fortniteの画像を、Yahooから100枚スクレイピングしてみた。
・Mac
・python3

#(1)環境構築、ディレクトリ構成
デスクトップにディレクトリfortniteを作成。
ディレクトリ内にimagesフォルダ(画像保存用)と、scraping.pyを作成。

“`
fortnite
├scraping.py
└images
“`

ディレクトリ内で仮想環境構築。

“`
python3 -m venv .
sorce bin/activate
“`

必要なパッケージ、モジュールをインストール

“`
pip install beautifulsoup4
pip install requests
pip install lxml
“`

#(2)scraping.pyを記述
Fortniteの画像スクレイピングは、Yahooの画像検索結果を使う。
https://search.yahoo.co.jp/image/search?p=%E3%83%95%E3%82%A9%E3%83%BC%E3%83%88%E3%83%8A%E3%82%A4%E3%83%8

元記事を表示

PyTorchのチュートリアルのメモ

# 目的
[PyTorch](https://pytorch.org/)のTutorialを簡単にまとめてみます。
環境は[Colaboratory](https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja)を使用しています。

## WHAT IS PYTORCH?
参考ドキュメントはこちらです。
[What is PyTorch? — PyTorch Tutorials 1.4.0 documentation](https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py)
以下引用
> A replacement for NumPy to use the power of GPUs
(GPUのパワーを使用するNumpyの代わりになります。)
> a deep learning research platform that provides maximum

元記事を表示

PySimpleGUIでの時刻表示(timeoutの使い方)

##はじめに
PySimpleGUIでTKのafter(一定時間ごとに繰り返し実行する。JavascriptではsetInterval)みたいなことはできないかと思ったところ、timeoutを使えばできるようでした。
そこで、TKの時刻表示のサンプルを書き換えてみました。

##環境
Win10Pro
Anaconda
Python3.7
PySimpleGUIのインストールやもろもろは、以下を参照してください。
[PySimpleGUIでQRコード作成GUIを作る](https://qiita.com/Gyutan/items/bc9041e4dc372427e355)

##TKによるデジタル時計
[お気楽 Python/Tkinter 入門](http://www.nct9.ne.jp/m_hiroi/light/pytk07.html)
アナログ時計の項目の中のデジタル時計を参考にしています。
>after() メソッド
>今回はユーザからの入力がなくても時計を動かさないといけなので、単純なイベント駆動型アプリケーションでは「時計」を実現することはできません。
このため、プログ

元記事を表示

Pythonでのjsonファイルの読み込みモジュールの比較

## はじめに
テキストファイルの読み込みモジュールについて「[Pythonのテキストファイル読み込みモジュールの比較](https://qiita.com/yasthon/items/360bee5af65fc6eb1069)」を書きました。
jsonファイルの読み込みモジュールも同様で、使用するたびに調べていたので、
同様に書き残します。

## 環境

– OS :CentOS Linux release 7.6.1810 (Core)
– Python:Python 3.7.5

参考
[json — json エンコーダおよびデコーダ](https://docs.python.org/ja/3/library/json.html?highlight=json)

## 4つのモジュール

Pythonでjsonを扱うときに使用されるモジュールは、下記の4つです。

| モジュール名 | 説明 |
|:–|:–|
| json.load() | jsonファイルを読み込み、dict型にする(引数は、ファイルオブジェクト)
| json.loads() | js

元記事を表示

Pythonのテキストファイル読み込みモジュールの比較

## はじめに
ファイルを読み込むモジュールは複数あり、違いがあいまいなまま使用していたので、
正しく理解しておこうと思い立ち書きました。

## 環境

– OS :CentOS Linux release 7.6.1810 (Core)
– Python:Python 3.7.5

参考
[Python 3.8.1 documentation](https://docs.python.org/ja/3/library/io.html)

## 3つのモジュール

Pythonでファイルを読み込む時によく使用されるモジュールは、下記の3つです。
各モジュールでファイルを読み込んで、どのように格納されるのか比較します。

| モジュール名 | 説明 |
|:————|:——————————————|
| read() | ファイルを全て読み込みstr型変数に格納する。 |
| readline() | ファイルを1行読

元記事を表示

python responderを利用してSlack botのチャレンジパラメータを応答させる

python3とresponderを利用して、Slack Botを作成しているので備忘録
responderを利用するためには、python3.6以上が必要です

responderをインストール

“`python
pip install responder
“`

以下のようにpythonファイルを作成

“`python:slack.py
import responder

api = responder.API()

@api.route(‘/’)
async def index(req, resp):
resp.status_code = 200
if req.method == “post”:
req_data = await req.media(format=”json”)
if ‘challenge’ in req_data:
token = str(req_data[‘challenge’])
resp.headers[“Content-type”] = “text/

元記事を表示

macOS Catalina で python の開発環境を作るメモ

*メモ随時更新予定*

狙いとしては python の開発環境の構築

Mojave から Catalina に上げた環境で、普通にやってるとバージョンの違いで `python3` とか `pip3` で期待通りに動かなかったので `pyenv` あたりを利用してうまいこと動かないか試す。

*本当は Docker とか使った方が良さそうだけどひとまず・・・*

# homebrew

ここからスタート。

“`
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
“`

# pyenv インストール

“`
$ brew install pyenv
$ pyenv -v
pyenv 1.2.17
“`

## プロファイルの設定

“`
$ echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.bash_profile
$ echo ‘export PATH=”$PYENV_ROOT/bin:$

元記事を表示

フォルダ内のすべてのxlsxファイルを、CSVファイルに一括変換する

# 背景・前提・仕様とか

仕事用Excel操作ツール作成用メモ。
これ↓の派生。
[フォルダ内のすべてのxlsxファイル名を自然順のリストで取得して、絶対パスを構築する](https://qiita.com/Mistizz/items/715858aff435ad061e0c)

# 使い方

1. デスクトップ上に新しいフォルダを2つ、”folder1″, “folder2″という名前で作る。

2. “folder1″内に、変換したいxlsxのファイルをすべて放り込む。

3. 動かす。

4. “folder2″内に、csvファイルに変換されて保存。

# 実行環境

実行環境と各ライブラリのバージョンは下記の通り。

– Windows10 pro
– Python 3.7.3
– natsort 7.0.1
– openpyxl 3.0.3

# フォルダ内のすべてのxlsxファイルを、CSVファイルに一括変換する。
“`python:all_xlsx_to_csv.py
import os
import csv
import openpyxl
from natso

元記事を表示

OTHERカテゴリの最新記事