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

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

Seabornのpairplot関数の結果グラフをGoogle ColaboratoryからGoogle driveにアップロードする方法

## この記事でできること
表題の通りです。sklearnの関数で取得できる[UCI Machine Learning Repositoryのwineデータセット](https://archive.ics.uci.edu/ml/datasets/Wine)を利用します
## 手順
1. ColaboratoryにGoogle Driveのアクセス権限を与える
2. Google Driveにファイルの出力をする
**手順2までにはpairplot用のDataFrameを定義しておきましょう**

# 詳しく
## 1. wineデータセットの読み込み
学習に使用することになりそうですし、DataFrameを学習データ(X_train)で作成するのでデータ分割もしています

“`python

from sklearn.datasets import load_wine
wine_dataset = load_wine()

from sklearn.model_selection import train_test_split
X_train, X_test, y_train,

元記事を表示

SQlite3にてレコード作成日時のタイムスタンプ(ローカルタイム)設定でエラー

はまったのでメモ
環境:Python 3.7.1
利用モジュール:sqlite3

レコード新規作成時にローカルタイムのタイムスタンプを自動で挿入するようにテーブル作成

“` sql
create table user_data(
name text not null,
creation_datetime timestamp not null default datetime(current_timestamp,’localtime’))
“`
上記のコードを実行。すると・・・
「sqlite3.OperationalError: near “(“: syntax error」が発生。
「creation_datetime」カラムのdatetime関数を括弧で囲まないと文法エラーになるもよう。

“` sql
create table user_data(
name text not null,
creation_datetime timestamp not null default (datetime(current_timestamp,’localtime’)))
“`

元記事を表示

ABC154のA~DをPython3で解く

### はじめに
こんばんは。tax_freeです。[前回](https://qiita.com/taxfree_python/items/3cf66e65b581673d66d8)からレートが34上がりました。今週は期末テストです()

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

**考えたこと**
if文で条件分岐するだけです。

“`python
s, t = map(str,input().split())
a, b = map(int,input().split())
u = str(input())

if u == s:
print(a-1,b)
else:
print(a,b-1)
“`

###B問題
[問題](https://atcoder.jp/contests/abc154/tasks/abc154_b)

**考えたこと**
与えられる文字列の長さを調べて、文字列の長*’x’してあげればよい。
str()は自分で分かりやすいようにわざと書いています。
@s

元記事を表示

円周率を計算した

円周率を求めるプログラムを作りました。
目標としてはとりあえず100万桁、最終的には1億桁くらい計算したいです。

#円周率の計算方法
とりあえず、Wikipedia先生[1](#参考文献)によるとガウス=ルジャンドルのアルゴリズムというのが速いそうです。
↓計算方法(入力が面倒だったのでWikipediaをスクショコピペ)
![スクリーンショット 2020-02-09 23.22.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391077/90db40c2-693b-05e9-2ff9-cb6844309fac.png)

##何も考えず実装
小数第n位まで求める時はlog2n回くらい反復を行えばいいらしいので、log2106≒19.9にマージンつけて21回計算させてみました。

“`python:gl1.py
import math

def updater(pilist):
a_n ,b_n,

元記事を表示

敢えてRubyで学ぶ「ゼロから作るDeep Learning」禁断のPyCallからのpickleファイルの取り込み

「ゼロから作るDeep Learning」の72p「3.6.2 ニューラルネットワークの推論処理」では、pythonのpickleファイルを呼び出している。このpickleファイルはraw binaryなので、簡単に呼び出せない。そこで、禁断のPyCallからpickleファイルを取り込んでみる。

# 環境構築
“`bash
# pycallのインストール
$ gem install pycall
# pyenvの取り込み
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.bash_profile
$ echo ‘export PATH=”$PYENV_ROOT/bin:$PATH”‘ >> ~/.bash_profile
$ echo ‘eval “$(pyenv init -)”‘ >> ~/.bash_profile
# .bash_profileの再取り込み
$ source ~/.bash_profile
# pyt

元記事を表示

AtCoder Beginner Contest 154 参戦記

# AtCoder Beginner Contest 154 参戦記

## ABC154A – Remaining Balls

2分半で突破. 変数が5つもあることに一瞬戸惑ったけど、書くだけだった.

“`python
S, T = input().split()
A, B = map(int, input().split())
U = input()

if U == S:
A -= 1
else:
B -= 1
print(A, B)
“`

## ABC154B – I miss you…

1分で突破. 書くだけ.

“`python
S = input()

print(‘x’ * len(S))
“`

## ABC154C – Distinct or Not

2分で突破. 書くだけ. ABC063B – Varied を思い出した.

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

if len(set(A)) == N:
print(‘YES’)

元記事を表示

[Pythonで遊ぼう] 文章自動生成をめざす ~形態素解析をする~

#はじめに
AIが文章を書いたり、最近では手塚治虫の漫画の学習を経て作られた漫画ができた、なんて話がありますね。
そのようなレベルは難しいですが、本を見ながら文章の自動生成はできたのでまとめておきます。
複数回にまたがりますが、ゆっくりやっていこうかと思います。

#文章を生成するイメージ
文章を生成するにあたって、イメージとしては次のような感じになります。

– もととなるデータを準備する
– データをきれいに整形する
– 文章を分解する
– マルコフ連鎖を用いて生成する

おおざっぱにいえばこんな感じかと思います。今回は文章の分解をしてみます。

#形態素解析をしてみる
形態素解析(けいたいそかいせき、Morphological Analysis)とは、文法的な情報の注記の無い自然言語のテキストデータ(文)から、対象言語の文法や、辞書と呼ばれる単語の品詞等の情報にもとづき、形態素(Morpheme, おおまかにいえば、言語で意味を持つ最小単位)の列に分割し、それぞれの形態素の品詞等を判別する作業である。 出典: フリー百科事典『ウィキペディア(Wikipedia)』
ということらし

元記事を表示

【構文解析】パソコンだって人間と一緒に早押しクイズに参加したい!!

## こんな記事も書いてます
[【忙しい人向けシリーズ】ニュースを30秒で呼ぶために構文解析で要約してみた](https://qiita.com/nomunomu0504/items/1ec12007cb6c8ac7415e)

## TL;DR
パソコンだって人間と一緒に早押しクイズに参加できる…(はず)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110131/bd5e44aa-f444-959a-fb06-658d66fd3819.png)

## 概要
NTTコミュニケーションズが提供している [自然言語処理・音声処理APIプラットフォームCOTOHA API](https://api.ce-cotoha.com/) を使って**クイズをパソコンに解かせてみた!**という内容です。

「パソコンにクイズ?」

「そんなの普通に検索すればできるやんけ」

「何をいまさら。~~あほなん??~~」

そう思った方も少なからずいるでしょう。しかし、実際に私たちが検索をする際には

元記事を表示

PytestでPublic関数をMockする方法

こんにちは、セールで買った某M○Proteinの「ほうじ茶ラテ味」プロテインが**海老の出汁**みたいな味で飲めないこの頃です(なに

さて弊社のDjangoサーバーのAPIは**テストで120%カバレッジする**というという方針のもと、日々テストコードを実装コードの倍ぐらい書いていく作業をしています。そんな中で本日は「Helperクラスで実装したPublic関数をどうやってAPI経由でテストするか(そしてどこで詰まったか」についてざっくりと紹介します。

## テストしたい実装内容
実装した関数は以下の2つです(投稿用に関数名などはダミーにしています、またsetting.pyやurls.pyは別途設定済みです)

“`app/views.py
from rest_framework.views import APIView
from app.helper import helper_foo
from app.models import HogehogeSerializer

class HogehogeListAPIView(APIView):
“”” Djangoフレー

元記事を表示

【Django3】プロジェクトの構成と各種設定【Python3】

# はじめに

Django でシステム開発を行う際に必要な CLI のコマンドやディレクトリ構成、各種設定をまとめました。

Django は公式ドキュメントが充実しているので、時間がある方はそちらを見ましょう。
日本語多めですよ!
[Django公式ドキュメント](https://docs.djangoproject.com/ja/3.0/)

※順次追記していきます。

# システム構成

– Windows 10 Pro
– Windows PowerShell
– Python 3.8.1
– pip 20.0.2
– Django 3.0.3
– mysqlclient 1.4.6

## Django インストール

“`powershell:PowerShell
# 仮想環境作成
python -m venv venv

# 仮想環境有効化
./venv/Script/activate

# Django インストール
pip install django
“`

※PowerShell で仮想環境を有効化する際に発生するエラーについては、下記記事を参照。
[Qii

元記事を表示

Pythonの主な使い方

今回はPythonの汎用性について僕が認識したことを紹介します。
Pythonとはwebアプリケーションからデスクトップアプリ、データ解析、機械学習などさまざまな分野で使われているプログラミング言語です。
とても便利だと思ったのが、webサイトなどを作るだけでなく手動でやっていたことを自動でできることです。
PyythonはAIを扱えるため、面倒な作業を自動化させることができ、マーケティングなどにも役立ち、ビジネスに非常に活かせそうだと感じました。

元記事を表示

【Python】リスト(配列)内要素の操作【追加・削除】

#はじめに
リストを扱う上で重要な**追加と削除**の方法をまとめました。
基本的に以下のようなコードでコードと出力結果を記載します。

“`ex.py
code = ‘コード’
print(code)
# code(出力結果)
“`

#リスト(配列)に要素を追加するappend, extend, insert
Pythonでlist型のリスト(配列)に要素を追加したり別のリストを結合したりするには、リストのメソッド`append()`, `extend()`, `insert()`を使う。そのほか、+演算子やスライスで位置を指定して代入する方法もある。

・末尾に要素を追加: append()
・末尾に別のリストやタプルを結合(連結): extend(), +演算子
・指定位置に要素を追加(挿入): insert()
・指定位置に別のリストやタプルを追加(挿入): スライスを使う

###・append()・・・末尾(最後)に要素を追加できる。

“`append().py
l = [0, 1, 2]
print(l)
# [0, 1, 2]

l.append(100

元記事を表示

[Amazon Workspaces]mysqlclientのインストール

# 環境

Amazon WorkSpaces
Amazon Linux release 2 (Karoo)
MariaDB 10.4をインストール済

# 注意事項

Amazon WorkSpacesの環境は、最初からMariaDB 5.5が入っています。
削除しようとすると途中で落ちて接続できなくなり、Workspacesの
再構築が必要なります。

# インストール

“`
# Python3のインストール
sudo yum install python3
cd
python3 -m venv ~/myvenv/

# mariadb.repo追加
$ sudo tee /etc/yum.repos.d/MariaDB.repo <

元記事を表示

どうぶつさんたちと学ぶ!オブジェクト指向プログラミング!

## この記事について
* 最近プログラミングの勉強を始めた友人とPUBGモバイルで遊んでいるとき『なんでオブジェクト指向プログラミングで書くのかわからない』と相談された
* PUBGモバイルをやりながら教えても頭に入ってこないし、PUBGもすぐに負けるのでやめた方がいい
* ぼく自身はオブジェクト指向プログラミング推奨派なので、どうぶつさんたちを飼育するゲームの設計をしながら、オブジェクト指向プログラミングで書くメリットを勝手にまとめる
* オブジェクト指向プログラミングという単語は聞いたことがあるけど、なんのことかはわからない人向け

## 最初に結論
ぼくたちが住んでいるこの世界はオブジェクト指向でできているので、『プログラミングで作ったものが現実世界と似ていてわかりやすい』というのが、オブジェクト指向プログラミング最大のメリットだと思います。
ぼくたちが住んでいる現実世界と、プログラミングで作るバーチャルな世界、2つの世界は異なるものなのでとっつきにくいところがありますが、現実世界を作る感覚でコードを書けるので、プログラミングがとてもわかりやすくなります。

## 『プログラミ

元記事を表示

[Python入門] dict型

## 想定読者

+ Python勉強したて。型について知りたい
+ Pythonのdict型について知りたい
+ 理解の助けになる実装例を知りたい
+ int, float, str, list型について知っている

## 目的

+ dict型についてわかる
+ 利用用途が分かる
+ デバッグ方法がわかる

## dictとは

+ [公式リファレンス](https://docs.python.org/ja/3/c-api/dict.html)
+ かなりよく使うデータ型
+ 値を入れておく箱。listとの違いは、keyと呼ばれる索引がついていること。
+ 他のプログラミング言語で同様のデータ構造の例
+ Java: Map
+ Ruby: Hash
+ JavaScript: object
+ PHP: array
+ 備考
+ 言語によっては連想配列と呼ばれ、配列の一種として扱われていることもある

## dictを使うメリット

+ 物を数えたり、集めたりする時に使いやすい
+ dictはlistと同様に値を入れておく

元記事を表示

pythonでターミナル上にNOW LOADINGが左から右に動くものを作った

# このプログラムなに?

ゲームとかしていると、`NOW LOADING`って文字が右下とかにあって、
左から右に移動してたり、一部文字が大きくなってたりするやつがあると思いますが、それです。
わからなかったらもうしわけありません。

コードはpython3で書いてます。拙いコードですが、お許しください…

# コード
キャリッジリターン(\r)を使えば、ターミナルの出力を上書きすることができます。
例えば、ハイフン`-`が0.5秒ごとに右に移動するアニメーションを作りたいなら、以下のようなコードになります。

“`python:sample.py
import time

for i in range(0, 9):
print(‘\r{0} {1}%’.format(‘ ‘ * i, ‘-‘), end=”)
time.sleep(0.5)
“`

これだと10回右に行ったらおしまいなプログラムになるので、`NOW LOADING`がループしつつ、
右にある程度移動したら、だんだん消えていき、左から泡られるようにしました。

元記事を表示

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と言われるという
言葉通りの意味です。

#エラーメッセージの例

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

元記事を表示

python仮想環境を使う【venv】

# はじめに
pythonの仮想環境について教わったメモです。

## なぜpython仮想環境が必要なの?
– プロジェクトごとに必要なライブラリを管理するため
– ライブラリ同士の競合を防ぐため

## 環境
2つの環境で試しました。

1. Windows 10 + Python 3.7.3
2. Linux(Debian 10.2) + Python 3.7.3

# venvでpython仮想環境を使う

## 仮想環境を作成する

“`:Windows
>python -m venv testvenv
“`

“`:Linux
$ python3 -m venv testvenv
“`

`testvenv`は仮想環境の名前です。任意の名前でOKです。
実行すると、カレントディレクトリに、新規ディレクトリ`testvenv`が作成されます。

## 仮想環境を起動する

“`:Windows
>testvenv\Scipts\activate

(testvenv) >
“`

“`:Linux
$ source testenv/bin/activate

(

元記事を表示

OpenCV 差分画像

###はじめに

OpenCVを使って、差分画像の表示、保存する一連の動作を以下の記事を参考にまとめてみました。
関数でよいのですが、クラスのStaticmethodを使ってみたかったので、クラスでまとめてみました。

参考
[Python, OpenCV, NumPyで画像を比較(完全一致か判定、差分取得など)](https://note.nkmk.me/python-opencv-numpy-image-difference/)

###コード
こちらに同じコードがJupyterでファイルであります。
https://github.com/SGyutan/opencv_diff_image

“`
from pathlib import Path

import numpy as np
import cv2
import matplotlib.pyplot as plt

%matplotlib inline
“`
“`
class DiffImage():
“””
差分画像解析

“””

@staticmethod

元記事を表示

OTHERカテゴリの最新記事