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

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

PythonのPillowでPNG JPG変換できるようにした

#環境
macOS Catalina 10.15.6
python 3.8.2
pillow 7.2.0

#動機
ネット上にあるフリーの変換ソフトは回数制限があったり、セキュリティ面で不安があったりで不便に感じる事があリました。
そこでPythonで自作してみることにしました。

#仕様
前提条件、pythonプログラムと同階層にpngsとimgsというフォルダを用意。
  pngsフォルダ…変換元の画像を入れるフォルダ
  imgsフォルダ…変換後の画像を入れるフォルダ

このプログラムを実行することで、pngsフォルダ内にあるpng画像を一括でjpgに変換してimgsフォルダに保存する。

#コード
“`
from PIL import Image
import os
import datetime

input_path = os.getcwd()
# 指定ディレクトリのファイルを取得
files = os.listdir(input_path + ‘/pngs’)

# 取得したファイルからPNGファイルのみ取得
pngs = []
for f in files:

元記事を表示

TensorFlowのチュートリアルをコメント付けながら実行してみた(はじめてのニューラルネットワーク:分類問題の初歩)

参考URL:https://www.tensorflow.org/tutorials/keras/classification?hl=ja

## 目標
以下のことを行う

– 画像を分類するニューラルネットワークを構築する
– ニューラルネットワークを訓練する
– モデルの性能を評価する

## 準備

### パッケージの用意

“`python
# TensorFlow と tf.keras のインポート
import tensorflow as tf
from tensorflow import keras

# ヘルパーライブラリのインポート
import numpy as np
import matplotlib.pyplot as plt
“`

“`python
# tensorflowのver確認
print(tf.__version__)
“`

2.3.0

### データセットを用意
今回はFashion-MNISTを使用する

10カテゴリーの白黒画像70,000枚が含まれいる
それぞれは下図のような1枚に付き1種類の衣料品が写っ

元記事を表示

TensorFlowのチュートリアルをコメント付けながら実行してみた(初心者のための_TensorFlow_2_0_入門)

参考URL:https://www.tensorflow.org/tutorials/quickstart/beginner?hl=ja

# 目標
以下のことを行う
– 画像を分類するニューラルネットワークを構築する
– ニューラルネットワークを訓練する
– モデルの性能を評価する

## パッケージの用意

“`python
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
“`

“`python
# tensorflowのver確認
print(tf.__version__)
“`

2.3.0

## データセットを用意
今回はMNISTを使用する

他のデータセット:https://www.tensorflow.org/api_docs/python/tf/keras/datasets?hl=JA

“`python
mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_t

元記事を表示

回帰曲線との距離に応じた点の色付け

#目的

– 回帰分析で求めた直線や曲線からの距離に応じて、
プロットする点の色、濃さを変える。
– 距離の分布を他の図でも可視化する。

#コード

“`example.py
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set() #図がきれいに描画出来るおまじないらしい、私はいつも使っている

amp = 100 #振幅
frequency = 0.02 #周波数
offset = 1000 #オフセット

t = np.linspace(0,100,1000)
y_ = amp*np.sin(2*np.pi*frequency*t)+offset #理論値=回帰曲線sin
y = np.random.poisson(y_) #観測値=誤差付きsin

###メイン###
dis = abs( y_ – y )/ y_.max() #理論値と観測値の差を0.0~1.0の値にスケーリング
color_list=[ [1-9*i,0,

元記事を表示

横浜市IRに関するパブコメのテキスト分析

# 0.はじめに
「広報よこはま」8月号が投函されていたので、早速読む。いつも家計相談で「えっ2人で月の食費が5万円ってたかすぎるの!?」など参考にさせてもらっていて楽しく読んでいた。今月は横浜市IRのパブコメ(今年の4月ころにやっていたんですね)についての記事があったので、見てみると、パブコメが1万件ほど寄せられたとのこと。パブコメにこんなにコメント寄せられることは少ないと思われるので、
生データないかな~と思って見てみると[あった](https://www.city.yokohama.lg.jp/city-info/seisaku/torikumi/IR/houkousei.html)!

生のテキストデータは、誹謗中傷などの情報を加工後に公開されていた。
横浜市は、パブコメの論点を5つほどに分類していたけど、

* もっと論点あるんじゃないか、とか、
* パブコメをもとに修正した「横浜IR(統合型リゾート)の方向性(案)」にどんな意見が反映されたんだろうか
などと思ったので、とりあえず基本的な分析をやってみることに。

#1.パブコメまとめ報告書に記載されていた集計結果
とりあ

元記事を表示

GeoPandasによる国土数値情報行政区域データからの全国市区町村界データの作成

# 概要

全国市区町村界データや都道府県界データのGeometryを使いたくなることがあるが、思いのほか入手が大変だったりするのでメモ。

例えばESRIジャパンの提供する[全国市区町村界データ](https://www.esrij.com/products/japan-shp/)は使いやすいものの[ArcGIS](https://www.esrij.com/products/arcgis/)以外では使えないという使用規約になっている。

そこで、今回は[国土数値情報(行政区域データ)](https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v2_3.html)をソースにしてGeoPandasの機能によりgeometry情報を統合して市区町村界データを作る方法を調べた。

# 実行

### 【注意】出典の明記(国土数値情報)

– 国土数値情報について、[利用規約](https://nlftp.mlit.go.jp/ksj/other/agreement.html)を確認、遵守する必要がある
– 商用利用含め割と自由に

元記事を表示

Macの初期設定(データ分析とかする人用)

我が家にMacBook Proが届きました。よく来たね、いらっしゃい。
つい数日前までメモリ4 GBのよわよわMacBook Airを使ってたので感動してます。頑張るぞ〜。
ってことで、n番煎じだろうけど入れたソフトとか環境構築をメモ代わりに書いておきます。

# スペック
* MacBook Pro 2020
* OS Catalina (10.15.6)
* CPU: 1.7 GHz クアッドコア Intel Core i7
* RAM: 16GB 2133 MHz LPDDR3
* グラフィック: Intel Iris Plus Graphics 645 1536 MB
* ストレージ: 500GB SSD

# 入れたソフトウェア
* [Google Chrome](https://www.google.com/intl/ja_jp/chrome/)
* [Google日本語入力](https://www.google.co.jp/ime/)(Macのデフォルトはクソ)
* [Slack](https://slack.com/intl/ja-jp/)(使う人は)
* [Zoom

元記事を表示

DataCamp「Data Scientist with Python」コースの備忘録

# はじめに

**DataCamp「Data Scientist with Python」コースを修了したので備忘録として**残しておく。内容的には入門コースだが、それなりにボリュームがあり、学習した順から忘れていきそうなのと、Numpy/Pandasを中心の多くのパッケージ・関数を扱ったが、それらも自身のインデックスとして振り返れるようにするために。。

### 個人の自由課題として

きっかけとして元々、個人の夏の自由課題的に、普段業務であまり触れない範囲で、今後の事業・技術とシナジーが生まれそうなものを何かやりたいなと思い、いくつかの言語・領域を検討した結果、内容やボリュームも手頃そうであったDataCamp「Data Scientist with Python」コースに決めてみた。(そのため、半分趣味に近く、Pythonに長けてる訳でもなく、ましてやデータサイエンティストでもないので、あしからず。)

# 「Data Scientist with Python」コース一覧

### コース構成

[「Data Scientist with Python」コース](https:

元記事を表示

PyTorchでクロスバリデーション

# はじめに
Pytorch で Dataset を使用するときのクロスバリデーションのやり方を説明します。

## Subsetを使用した分割
`torch.utils.data.dataset.Subset`を使用するとインデックスを指定してDatasetを分割することが出来ます。これとscikit-learnの`sklearn.model_selection`を組み合わせます。

### train_test_split
`sklearn.model_selection.train_test_split`を使用してインデックスを`train_index`と`valid_index`に分割し、`Subset`を使用してDatasetを分割します。

“`python
from torch.utils.data import Dataset, DataLoader
from torch.utils.data.dataset import Subset
from sklearn.model_selection import train_test_split

dataset = g

元記事を表示

自然言語処理の前処理とMeCab(形態素解析エンジン)について

# はじめに
この記事は機械学習を行うための準備段階のお話です。
今回は自然言語処理における前処理と形態素解析についてまとめました。
[前回](https://qiita.com/you_gin/items/e982ed443c71771ee9b6)の記事では、PythonでWebスクレイピングを行いました。今回はスクレイピングで取得したテキストデータの前処理と形態素解析の予行演習をまとめました。

機械学習の一連の流れは以下になります。
1.機械学習のデータを集めるためにWebからデータをスクレイピング
1.5.テキストデータの前処理 **←今ここ!**
2.スクレイピングしたデータの整形(特徴量)
3.学習モデルの作成、検証

なお、テキストデータ前処理、形態素解析はPythonで実装しています。

# 自然言語処理の前処理について
機械学習を行う上で構造化された膨大な量のテキストデータが必要な場合もあります。構造化されていないテキストデータ(生のデータ)は人間から見たらある程度理解できると思いますが、機械学習ではテキストデータが持

元記事を表示

Polynoteをインストールしてみる

ScalaとPythonの両方を同時に使えるJupyter Notebookみたいな「Polynote」というソフトウェアをインストールしてみました。

PythonのノートとScalaのノートを作れるのではなく、1つのノートにPythonとScalaを混在できるんです!

Polynoteの公式サイト
[Polynote | The polyglot Scala notebook](https://polynote.org/)

Polynoteの紹介記事
[Netflix’s Polynote is a New Open Source Framework to Build Better Data Science Notebooks | by Jesus Rodriguez | DataSeries | Aug, 2020 | Medium](https://medium.com/dataseries/netflixs-polynote-is-a-new-open-source-framework-to-build-better-data-science-notebooks-4bda

元記事を表示

【脱・大量elif】辞書型の活用によるスマートな多分岐

Pythonにはswitch文がありません。それゆえ、多分岐を実装する場合、if文と複数のelif文を書く必要があります。「もっとうまく書けないものか…」そう考えた自分は、以下のように書くようにしました。スマート!(自画自賛)

皆さんはどのように書いていますか?コメントお待ちしております!

#### ビフォー

“`python
都道府県 = “愛知県”

if 都道府県 == “新潟県”:
県庁所在地 = “新潟市”
elif 都道府県 == “富山県”:
県庁所在地 = “富山市”
elif 都道府県 == “石川県”:
県庁所在地 = “金沢市”
elif 都道府県 == “福井県”:
県庁所在地 = “福井市”
elif 都道府県 == “岐阜県”:
県庁所在地 = “岐阜市”
elif 都道府県 == “長野県”:
県庁所在地 = “長野市”
elif 都道府県 == “山梨県”:
県庁所在地 = “甲府市”
elif 都道府県 == “静岡県”:
県庁所在地 = “静岡市”
elif 都道府県 == “愛

元記事を表示

データセット「Moving MNIST」

# はじめに
Moving MNIST はシーケンスの予測・再構築を評価するためのテストセットです。手書き数字が画面内を動き回るように作られた画像の集まりです。

![000000.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211712/d9503e2b-12d2-425d-28db-b5ea5d376cf9.gif “画像タイトル”)
左がデータセットで、右が予測の例です。[こちらのサイト](http://www.cs.toronto.edu/~nitish/unsupervised_video/)から引用しました。

データは10,000種類あり、それぞれ20フレームあります。画像のサイズは64 x 64で、二つの数字が映っています。

## データの読み込み

[こちらのサイト](http://www.cs.toronto.edu/~nitish/unsupervised_video/)からダウンロードできます。

“`bash
!curl -o mnist_test_seq.npy htt

元記事を表示

GroupByのメモ

#DataFrameの作成
“`ruby:qiita.rb
df = pd.DataFrame({‘Animal’: [‘Falcon’, ‘Falcon’,
‘Parrot’, ‘Parrot’,’Parrot’],
‘Max Speed’: [380., 370., 24., 26.,27.],’Annimal_ID’: [1, 1,2,2,2]})

df
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/680528/9866e4ee-6cfc-9f34-f0e5-8afca78b63d0.png)

#Groupby
同じグループに対して処理をしたいときに使用する。

###平均
“`ruby:qiita.rb
#FalconやParrotのグループに対して同じ処理をしたいときに使用する
df.groupby([‘Animal’]).mean()
“`
![image.p

元記事を表示

pip install ○○○でエラー Command errored out with exit status 1:

##実行コマンド

“`
$ pip install ○○○
“`

##エラー内容

“`
Command errored out with exit status 1:

ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
“`

##解決策1
“`
$ pip3 install ○○○
“`

##解決策2
〜/.bashrcに下記のエイリアスを追加する。

“`
alias pip=pip3
“`
ターミナルを再起動してbashrcを再読み込み後

“`
$ pip install ○○○
“`

元記事を表示

Pythonで解く【初中級者が解くべき過去問精選 100 問】(005 – 009 全探索:工夫して通り数を減らす全列挙)

# 1. 目的
[初中級者が解くべき過去問精選 100 問](https://qiita.com/e869120/items/eb50fdaece12be418faa)をPythonで解きます。
すべて解き終わるころに水色になっていることが目標です。

本記事は「005 – 009 全探索:工夫して通り数を減らす全列挙」です。

# 2. 総括
【006.三井住友信託銀行プログラミングコンテスト 2019 D – Lucky PIN】がやや難しかったです。
007と009はベクトルができなければ難しいかもしれません。

# 3. 本編
## 005 – 009 全探索:工夫して通り数を減らす全列挙
### 005. [AtCoder Beginner Contest 095 C – Half and Half](https://atcoder.jp/contests/abc095/tasks/arc096_a)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668985/2d78eda

元記事を表示

【Django】herokuデプロイ時に遭遇したトラブル その①

# 何があったか?
Djangoで作成したWebアプリをherokuでデプロイするため

“`terminal
$ git push heroku master
“`
を実行したところ、以下のエラーが発生した。

“`terminal
“””中略”””

remote:
To https://git.heroku.com/hogehoge.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to ‘https://git.heroku.com/hogehoge.git’
“`

# 原因は?
急いでいる人向けに結論から書きます。

**Procfile、runtime.txt、requirements.txtを作成していませんでした。**

慣れている人からすれば「そんな事ある?」って話でしょうが、あります(泣)
なんなら設置場所を間違えて二重に詰まっていました。

# なぜエラーになるのか
それぞれのファイルの役割と作成方

元記事を表示

#3 AWSのEC2インスタンス(ubuntu18.04)でPython(Django)環境を構築する part2

#はじめに
私はプログラミング言語の初学者です。
その為、読み間違いや理解不足の部分があると思います。
その場合はコメントで教えて頂けると幸いです。

「ゴール」は事前に作成したPythonのwebアプリケーションをデプロイする所まで行きたいと思います。出来るだけ初学者向けに書くつもりです。

作成手順

* AWSのEC2でインスタンスを構築後に、SSH通信をする 
* 構築したインスタンスの中にPythonの環境を構築する
* インスタンスの中に仮想環境を構築し、Django等をインストール(フレームワーク) ←**現在はここです。**
* PostgreSQLを設定する(データベース)
* インターネット上にアプリケーションが接続出来るように設定する(デプロイ前半)
* NginxとGunicornの設定する(デプロイ後半)

##仮想環境を構築し、Djangoをインストールします。

* Django等をインストールします。
* Git Hubからファイルをクローンします。

###ステップ1(インストール編)

“`
pip3をアップデート
$ sudo -H pip3 i

元記事を表示

#2 AWSのEC2インスタンス(ubuntu18.04)でPython環境を構築する

#はじめに
私はプログラミング言語の初学者です。
その為、読み間違いや理解不足の部分があると思います。
その場合はコメントで教えて頂けると幸いです。

「ゴール」は事前に作成したPythonのwebアプリケーションをデプロイする所まで行きたいと思います。出来るだけ初学者向けに書くつもりです。

作成手順

* AWSのEC2でインスタンスを構築後に、SSH通信をする 
* 構築したインスタンスの中にPythonの環境を構築する ←**現在はここです。**
* インスタンスの中に仮想環境を構築し、Django等をインストール(フレームワーク)
* PostgreSQLを設定する(データベース)
* インターネット上にアプリケーションが接続出来るように設定する(デプロイ前半)
* NginxとGunicornの設定する(デプロイ後半)

##環境を構築して行きます。
###ステップ1(接続編)
まずはじめに、環境構築する場所に移動します。
前回の記事に書いてあったSSH接続でubuntuサーバの中に入ります。
入り方は

“`
$ ssh -i xxx.pem ubuntu@’usern

元記事を表示

Pandasのread_csv()・read_table()でヘッダーがずれてしまう

# はじめに
csv形式で取得したファイルをpandasで取り込んで処理しようとしたところ、ヘッダーとデータがずれてしまったのですが意外と答えにすぐたどり着けなかったので記事にしました。
[解決法へジャンプ](#解決法)

# 動作環境
以下の環境で実行しました。

| モジュール | version |
| :–: | :–: |
|python| 3.8.3 |
|pandas| 1.0.5 |

# 問題

次のようなcsv形式ファイルをDatFrameとして取り込みます。

“`csv:example.csv
Time x y z
0 1 2 10
1 2 2 10
2 3 2 10
..
“`
`read_csv()`を使って取り込みます。

“`python:read_csv.py
import pandas as pd
path = ‘csvファイルのパス’
df = pd.read_csv(path)
print(df)
“`
ターミナルでの出力結果は次のようになりました。

“`bash
# T

元記事を表示

OTHERカテゴリの最新記事