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

Python3関連のことを調べてみた2020年05月31日
目次

構成図を『描く』から『書く』へ:DiagramsでAWS構成図かいてみる

## やること

`Diagram as Code` ことDiagramsで、AWS構成図をコードでかいてみる

## Diagramsとは

– Diagramsは、Pythonモジュール
– Diagrams使うにはGraphvizも必要
– Pythonのコードでクラウドシステムアーキテクチャを描画できる
– サイトはここ
– https://diagrams.mingrammer.com/
– サイトにあるDiagramsの説明は、英語だけど分量が少ないので一読すべし!(自動翻訳で十分理解できる)

このように、構成図をPythonのコードで書ける。このコードを、Pythonスクリプトとして実行すると、構成図が画像として出力される。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274270/c456fcba-500d-792d-fb35-a8c63834f57d.png)

– **良いところ**
– 構成図をコード化できる
– コード編集で作図編

元記事を表示

結局第何週の何曜日かどうかの判定ってどうやんだよ!!??

# はじめに

酔っぱらったパワーでこの記事を書いてます。

お酒飲みながら、出来上がったコードのリファクタとか(は?)、新規機能開発とかやってたんですけど、
第何週の何曜日っていうのをどうやって判定しよう…みたいなところで
ハマってしまってンンンン!!ってなってしまってこの記事を書いています。

雑で申し訳ない。

# 大体なんで標準モジュールでサポートしてないのよ。

いろいろ考えたんですが、[PythonのCalendarの公式リファレンス](https://docs.python.org/ja/3/library/calendar.html)を読んでいて気づいたんですよね。
そもそも、カレンダーにはスタートの曜日がどこか問題みたいなのがあるみたいで、
特にカレンダーとかだとアメリカ式・ヨーロッパ式・中東式と国によって結構違うってことを知りました。
(参考文献:[1週間のはじまりは何曜日?アメリカ式とヨーロッパ式って?](ayasato-boueki.com/2017/11/calendar.html))

ちなみに、ヨーロッパ式(日曜始まり)の日本でもお馴染みの形式がIS

元記事を表示

Django REST frameworkの基本

# はじめに

Django REST frameworkを使うと、簡単にAPIを作成することができます。
ここでは、Django REST frameworkについて、最低限知っておきたいことにしぼって解説します。

# `settings.py`への追記

`INSTALLED_APPS`に`rest_framework`を追記します。

“`python:settings.py
INSTALLED_APPS = [
‘rest_framework’, # 追加
]
“`

# serializerの作成

次に、serializerを作成していきます。

“`python:serializers.py
from rest_framework import serializers

class SampleSerializer(serializers.ModelSerializer):

class Meta:
model = 対象モデル
fields = 含めるフィールド(全部の場合は’__all__’) # または、e

元記事を表示

OpenCVのフィルタ処理を調べてみた

#初めに
OpenCVで提供されるフィルタリング処理について調べてみました

#動作環境
Python3,OpenCV

##単純平滑化(ぼかし・ブラー)処理
オリジナルの画像は以下のデータ(グレースケール)であるとして、単純平滑化(ブラー)を行います
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/628168/12f93d67-63f9-c960-6bb0-9738484cb7ee.png)

単純平滑化は、それぞれのピクセルを囲む複数のピクセルの長方形の単純平均を、そのピクセルの値とします
ここでは長方形のサイズを(3*3)としている為に以下のように計算されます
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/628168/693a8fdc-8565-b339-ce67-65409bd4427f.png)

全体のピクセルを計算すると以下のようになります
![Untitled

元記事を表示

Djangoでline botで何かを返すまで!

#Djangoでline botを作る!

まずはline developersのアカウントを取得するためlineのアカウントでログイン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/575112/0ffc1408-ded3-93ee-1b07-a8cb284e6e52.png)

左上のconsole homeから新規provider をcreateするline.png

そのしたのproviderからcreate new channelを選択し、channel typeはmessaging API

その後はそれぞれの設定をする。ここまでするとqrコードで自分の作るline botが登録できるようになる。

元記事を表示

機械学習に必要なpandas,numpy,matplotlibについての簡単な説明

機械学習について少し学びたいなと思い色々とサイト巡りをしていたらどうにもpandas,numpy,matplotlibというのが必要になるみたいで(※他にもまだまだたくさん必要なことはありますがその中から抜粋してますのでご了承ください笑)勉強&自分用がてらまとめられたらなと。
勉強したてほやほやなので間違いがあったりしたらご指摘いただけますと幸いです。

#pandasについて
pandasの読み方は(パンダス)と読みます。
pandasはpythonのライブラリで主に担当することは**csvの読み書き、編集、消去や1次元、2次元のデータを扱ってくれる**やつです。

##pandasの使い方
百聞は一見に如かずなので早速動かしてみましょう。

“`
pip install pandas
“`
これでインストールはok

“`
import pandas as pd
s1 = pd.Series([1,2,3,5])
print(s1)
出力結果
0 1
1 2
2 3
3 5

p2 = pd.DataFrame({
‘名前’ :[‘高橋’, ‘

元記事を表示

【python】スキルチェックのために最低限必要な必要なメソッド一覧

###0.はじめに~まず愚痴から始めてみる~

求人を見ていると、気になる企業がpythonで募集をしていた。
ついこの前まではPHP,そしてrubyの記事を中途半端な知識で書いている癖に、
今度はpythonだと!!!
エンジニアの風上にもおけなければ、風下にもおけない!!
機械学習のプログラムを少し、改修しただけだったがトライすることにした。
PHPと違って色々なやりづらさがある。
###「pythonの一歩はインデントとのコミュニケーション」
と言っても過言ではない。
コミュ障気味の方々や、美しさとは無縁のプログラムを書く人には辛い。
インデントでループや関数の処理が決まるのだ。
条件につける__:(コロン)__も慣れない。

とりあえずスキルチェックに必要な文法をまとめてみた。

###1.標準入力を受け取るinput()
s=input()

“`python
dino=input()
print(dino)
“`

![dino1_python.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

ゼロから始めるLeetCode Day41「394. Decode String」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day40「114. Flatten Binary Tree to Linked List」](https://qiita.com/KueharX/items/3f0af8806a720999bf45)

今はTop 100 Liked Ques

元記事を表示

ESA SNAPで Python API を利用するための環境構築でのPython 3.4.0インストールエラーの回避方法

# ESA SANPを利用し、Pythonを利用しようとした時のエラーの原因と解決方法

## 課題 ESA SNAPをインストール、Python APIを有効にするにチェック
しかし、サポートしているバージョンが2.7, 3.3, 3.4と古かった。

## 問題 asdfによるバージョン管理でpython 3.4.0インストールでエラー
“`
asdf install python 3.4.0
“`
インストールするも、次のエラーが表示

“`
Ignoring ensurepip failure: pip 1.5.6 requires SSL/TLS
“`
## 原因1 High Sierra以降の macOSはOPENSSLをデフォルトでインストールしなくなった
## 原因2 brew install opensslでインストールされるopenssl openssl@1.1/1.1.1dはpython 3.5 からサポート(3.4.0ではopensslライブラリバージョン1.0.2mとdevelパッケージが必要)
## 解決方法

1. openssl@1.1/1.1.

元記事を表示

Python仮想環境リサーチノート:Anacondaをなんとなく敬遠している方々へ

#はじめに
 Python環境をAnacondaを用いて構築した人は多いのではないだろうか。しかし、[pipと併用することについてのこの有名なトラブル](http://onoz000.hatenablog.com/entry/2018/02/11/142347)が念頭にあって、パッケージマネージャ・仮想環境マネージャとしてのAnacondaをどう利用すればいいかいまいちよくわからず、まぁpipでいいか、と敬遠している人が多いと思う。私もその一人だった。
 しかし、Anacondaは実は非常に優秀な仮想環境マネージャである、と主張する記事もいくつか見かけてきた。それではpipとの競合を回避しつつ、Anacondaを使うことはできないのだろうか。実際Anacondaは仮想環境マネージャとしてどれほど優秀なのだろうか。この問に答えるため、随分とGoogle検索を渡り歩いたので、その結果を共有する。ぜひ参考にしてみてほしい。
 
 そういうわけで、筆者自身が様々なウェブサイトを渡り歩いて学んだことをまとめてみた。なお、実際に手を動かしたわけではない。その点はご勘弁いただきたい。

### 話の

元記事を表示

ゼロから始めるLeetCode Day40「114. Flatten Binary Tree to Linked List」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day39「494. Target Sum」](https://qiita.com/KueharX/items/cd08167d7626c2be8787)

基本的にeasyのacceptanceが高い順から解いていこうかと思います。

[Twi

元記事を表示

LinuxをDiscord Botで操作してみた

#初めに

この記事は僕がPythonで作ったDiscord Botを簡単に共有できればと思い書いたものです
あまり詳しくは書きませんが誰かの役に立てれば幸いです

#このBotで出来ること
Discord からLinuxを操作できます
「ls」コマンドや 「less」コマンドなど基本的に何でも使えます。
ただvimやsudoなどユーザーが追加で入力するものなどは使えません(コード追加すれば可能だと思われ)
二千文字の制限がDiscordにあるのでそれ以上のものは送信できません。
あとエラー処理してないのでvimなど開こうとするとbotが飛びます。

#実行環境
Debian 10
Python 3.7.3

#コード
“`python

import subprocess

# インストールした discord.py を読み込む
import discord

# 自分のBotのアクセストークンに置き換えてください
TOKEN = ‘ボットのトークン’

# 接続に必要なオブジェクトを生成
client = discord.Client()

# 起動時に動作する処理
@clien

元記事を表示

「14日で作る量子コンピュータ」を読んでみる。1日目

# はじめに
 今日から「14日で作る量子コンピュータ」という本を買ったので、これを実装しながら量子コンピュータについての理解を深めていきたいと思っています。この本は、14日をかけて最終的に簡易的な量子コンピュータのシミュレータを実装していくというものです。どちらかというと理論重視な感じで、量子力学全くわからない自分ですが、どうにかして読解していきたいと思います。
 今回は、量子力学の基礎のところまでを読んでいきます。

# 0 環境構築
 ここでは、Pythonの環境構築と数値計算、図形描画を行う。
## 0.1 Python、モジュールのインストール
 Pyhthonのバージョンは3.8.2を想定している。インストールの方法については公式サイト([https://www.python.org/downloads/](https://www.python.org/downloads/))からインストーラを
 ・ダウンロード
 ・回答
 ・インストール
 の三段階でできる。これに関しては他のサイトを参考にした方が良い。
 次にPythonで使う外部モジュールは、

“`
numpy:

元記事を表示

月ノ美兎さんの音声合成ツール(Text To Speech) を作ってみた

#何をした?
Youtube上に公開されている動画の音声から、ディープラーニング技術を用いた音声合成ツールを構築しました。
今回対象にしたのは、バーチャルユーチューバー・にじさんじの委員長こと **月ノ美兎** さん([Youtubeチャンネル](https://www.youtube.com/channel/UCD-miitqNY3nyukJ4Fnf4_A)) です。
![unnamed.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645469/3794602a-54da-5142-68d5-369f81fe7034.jpeg)
※選出理由は、単純に私がYoutube上で一番推している方だからです。

#成果
動画から抽出した音声と、音声を文章に起こしたテキストの組み合わせのデータセット約50分ぶんを教師データとして学習した結果
※学習に必要なデータ量は最低でも1時間程度と言われているので、まだまだ足りていません…

PythonのEnumで0オリジンのインデックスを採番する

## 背景
Pythonでは`0`が`false`に判断されてしまうことから、
通常のEnumでは`1オリジン`で採番されますが、
どうしても`0オリジン`にしたい場合の簡単な実装サンプルです。

## 環境
python: 3.7.7

## 実装サンプル
“`python:enum_0_origin.py
from enum import Enum

IDX = Enum(‘IDX’, [‘A’, ‘B’, ‘C’], start=0)
print(IDX.A.value)
# 0
print(IDX.B.value)
# 1
print(IDX.C.value)
# 2
“`

以上、終わり。

元記事を表示

Cloud Pak for Data (Watson Studio)でpandasデータをExcel形式でデータ資産に保存する

project_libを使った分析プロジェクトのデータ資産へのファイル保存方法は[別の記事](https://qiita.com/ttsuzuku/items/eac3e4bedc020da93bc1#%E3%83%87%E3%83%BC%E3%82%BF%E8%B3%87%E7%94%A3%E3%81%B8%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E4%BF%9D%E5%AD%98-%E5%88%86%E6%9E%90%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88)に書きましたが、Excel形式で保存するには少しコツが必要でした。
いろいろ調べていたら、stackoverflowの[こちらの記事](https://stackoverflow.com/questions/56538138/saving-dataframe-as-excel-file-into-ibm-cloud-object-storage-with-python)が有効でした。

実際にやってみた例を記載し

元記事を表示

Cloud Pak for Dataで関数をデプロイする

Cloud Pak for Data (以下CP4D)で、Pythonの関数をデプロイすることが可能です。用途は主にモデル実行の前後処理で、try&exceptのエラー処理も組み込めますし、なにより複数のモデルを呼び出す(使い分ける)ことが可能になります。

CP4D v2.5 製品マニュアルより抜粋
https://www.ibm.com/support/knowledgecenter/ja/SSQNUZ_2.5.0/wsj/analyze-data/ml-deploy-functions_local.html

> Python 関数は、モデルのデプロイと同じ方法で Watson Machine Learning にデプロイできます。ご使用のツールとアプリケーションは、Watson Machine Learning Python クライアントまたは REST API を使用して、デプロイ済みのモデルにデータを送信するのと同じ方法で、デプロイ済みの関数にデータを送信できます。関数をデプロイすることで、詳細 (資格情報など) を非表示にしたり、データをモデルに渡す前に前処理したり、エラ

元記事を表示

✨Pythonで簡単☆死後経過時間推定✨

# もし、あなたの目の前に亡骸があったら?
![](http://blog-imgs-46.fc2.com/k/o/n/konanhitosuzi/20131216231144a8f.jpg)(引用;名探偵コナン「甘く冷たい宅配便」)
コナン君が遺体を見つけた時、かなり最初の段階で死後経過時間について考えますよね?死亡推定時刻が分かれば大きく容疑者を絞り込むことができますしね\(^o^)/
そこで今回は死後経過時間について詳しい求め方を紹介します!

# 例題
室温16℃に設定された冷蔵車に男性の遺体があった。男性の体重は86kg、コナン君が遺体の直腸内温度を計ったところ、27℃であった。男性の死後経過時間を求めよ。

# ニュートンの冷却の法則
まず、簡略化した事象を考えてみましょう。コップに入れられた熱いコーヒーが周囲の温度(空気)によって冷まされる問題を考えます。この時、次の「ニュートンの冷却の法則」が近似的に成り立つと言われています。
ニュートンの冷却の法則を表す微分方程式は

$\frac{dT}{dt} = -γ(T – T_s)$ (1)

で表されます。ここで、各文字

元記事を表示

pythonのrelative_to()で相対パスを指定しようとしたらはまった

# 概要
絶対パスから相対パスを取得するために以下のようなコードを実行した

“`python

import pathlib

p = pathlib.Path()
file_path = ‘image-db’
file_path_rel = p.cwd().relative_to(file_path)
“`

エラー

“`bash

ValueError: ‘/directory/of/python’ does not start with ‘image-db’
“`

relative_to()の中身がカレントディレクトリより外にあると動かないらしい.

# 対策
os.path.reipath(‘行先’, ‘起点’)を使えば複雑な相対パスも取得できる.

“`python
file_path_rel = os.path.relpath(file_path, os.getcwd())
“`

# 参考サイト
https://hibiki-press.tech/python/os_path_abspath/1021

元記事を表示

【Python】Pythonを始めるにはまずはPythonをしっかり使えるようにしないとね

# 結論

MacにPythonをインストールして、Pythonを使えるようにする。
MacはPython2系が元々インストールされているが今回はPython3系をインストールする。

## 背景

Pythonを始めるにはまずはPythonを使えるようにしなければならない。プログラミングを始めるにあたって一番はじめにつまずくのが環境構築。これからPythonを始めたいと思っている人の参考になるように手順を書きたいと思ったため。初心者向けのため仮想環境にインストールするなど複雑なことは考えない。

## 全体の流れ

① コマンド操作を覚える
② Pythonをインストールする

## コマンド操作を覚える

Pythonをインストールする前にMacのコマンド操作を覚えること。
これが少しできるだけでプログラミングも楽しくなる。

“`
ls    # フォルダ内を表示する
ls -a  # 隠しファイルも含めファイルやフォルダを全て表示する
cd    # フォルダを移動する
pwd   # フォルダのパスを表示する
touch  # 空のファイルを作る
mkdir  # フォル

元記事を表示

OTHERカテゴリの最新記事