Python3関連のことを調べてみた2021年01月26日

Python3関連のことを調べてみた2021年01月26日

[WIP] WLS2で画像開発環境を整える

# やりたいこと
wls2 + python3 + opencv + vscode + docker

# 環境
Windows10

# DONE
* WSL(ubuntu20.04):略
* docker for windows インストール:略

# TODO
* docker image 作成
* python3 で opencv を使ええるようにする
* vscode の設定
* sample 実行

元記事を表示

「ValueError: Graph disconnected」Inputレイヤーの扱いミス

多次元の数値から連続値を予測するNNを実装。
データの形を正すために、poolingやreshapeを使用していたらValueError…。

“`terminal:エラー文
ValueError: Graph disconnected: cannot obtain value for tensor Tensor(“input_state:0”, shape=(?, 10, 22), dtype=float32) at layer “attention_vec”.

The following previous layers were accessed without issue: []
“`
“`text:google翻訳
ValueError:グラフが切断されました:レイヤー “attention_vec”でテンソルTensor( “input_state:0″、shape =(?, 10、22)、dtype = float32)の値を取得できません。

次の前のレイヤーは問題なくアクセスされました:[]
“`

[同じようなエラーに関する質問](https://te

元記事を表示

MacOS CatalinaでVisualStudioCodeの環境設定【Python3】

# はじめに
Python3の開発環境構築の忘却録。

## pyenvのインストール
“`
cd ~/
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
“`
Pythonのバージョンを複数切り替えて使いたいので、GitHubからDownload。

## .zshrcに設定追加
“`
export PYENV_ROOT=”$HOME/.pyenv”
export PATH=”$PYENV_ROOT/bin:$PATH”
eval “$(pyenv init -)”
“`
Terminal立ち上げ直すか、`source`で読み込み直しする。

## 該当のPythonをインストール
“`
pyenv install –list // Versionリスト表示
pyenv install 3.9.0 // 現時点で最新版
pyenv global 3.9.0 // globalで使用許可
python –version
“`

## 仮想環境の構築
“`
mkdir python-app
cd pytho

元記事を表示

Djangoの環境構築からプロジェクト作成まで〜

#はじめに
Linux(Ubuntu)でのDjangoの環境構築からプロジェクト作成までをまとめました。
Djangoを勉強し始めたのはつい先日で、使ったコマンドからアウトプットとして記録していきたいなぁと思います。
また、今回の記事は以下の参考サイトに書かれていることを簡易的にまとめたものですので、詳しく知りたい方はそちらの方をご覧ください。あくまで自分用です。

#参考
* [Django Girls](https://tutorial.djangogirls.org/ja/)
* [Django公式](https://docs.djangoproject.com/en/1.11/ref/django-admin/)

#仮想環境(virtual environment)の作成
###ディレクトリの作成
“`html:command-line
$ mkdir (作成するディレクトリの名前)
$ cd (作成したディレクトリの名前)
“`

###仮想環境の作成
“`html:command-line
$ python -m venv myvenv
“`
myvenvは仮想環

元記事を表示

k-means法を理解する

本記事は教師なし学習において代表的な「k-means」に関するもの。

初学者
・PythonとScikit-learnを用いてk-meansを実装したい。
中級者
・k-meansの発展、k-means++までしっかりと理解したい。
・エルボー法を用いてクラスタ数kの最適化を行いたい。

## 初学者
アルゴリズムの深い理解は必要なく、とりあえずk-mean法の実装だけを目的とした方向けの内容。
### k-means法のアルゴリズム(視覚的理解)
k-means法では、下記手順に従ってデータのクラスタリングを行う。
初めにクラスタ数Nを決定する。(今回の場合 N=2 とする)
 ①クラスタ数Nに従い、データにクラスタをランダムに付与する。
 ②各クラスタの重心を求める。
 ③各データにおいて最も距離が近い重心のクラスタに変更する。
 ④各クラスタの重心が収束するまで②、③の処理を繰り返す。
![k-means1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617816/87365485-ece7-

元記事を表示

julia v1.5.3から始めるJupyter Notebook

[前回](https://qiita.com/doorei/items/c0916f0866bfc2859c2f)、juliaをインストールしたあと環境をきれいにしたところ、juliaがちょっとバージョンアップしていた。特に困ったことはないけど再々々度書いてみる。

# やってみた環境
– Windows 10 Home (64bit) Ver 20H2 (OSビルド19042.746)
– julia v1.5.3 (64bit)

# やり方
0. juliaがインストール済みの前提(インストーラー版)
1. juliaのコンソールを起動(緑字のプロンプト)
2. `]`キーを押してパッケージモードへ(青字のプロンプトになる)
3. `add IJulia`を実行(Cloning~となり、しばらく時間がかかる)
4. バックスペースでパッケージモードを抜ける(緑字のプロンプト)
5. `using IJulia`を実行(Precompilingされる)
6. `notebook(detached=true)`を実行
7. 「install Jupyter via Conda,

元記事を表示

Pythonのunittestでmock_openを使った時、openを複数回呼び出すコードは、assert_has_callsではなくcall_args_listで検証すると学びました

「Pythonの`unittest`を使ったコードにおいて、関数呼び出しの引数は、モックのassert_xxx系のメソッドで常に検証できる」という思い込みが粉砕されたので、アウトプットします。
だいぶハマったので再発防止の目的です。

モックのassert_xxx系のメソッドとは、公式ドキュメントの以下にあるメソッドを指しています(例:`assert_called_once_with`)。
https://docs.python.org/ja/3/library/unittest.mock.html#unittest.mock.Mock

元記事を表示

Pythonでメールを受信する

プログラムで自動でメールを処理したい時があったので、その時のメモ。
以下では全て、動作環境はWindows10とPython3.9、メールはGmailで行っています。

# 準備(Gmailのみ)

以下はGmailに限った話であって、デフォルトでIMAPを使う設定のメールを使う場合は関係ありません。

現在のGmailでは、デフォルトではIMAPでメール受信は出来なくなっています。
またアカウントのパスワードではメールを使えないので、アプリパスワードを発行して利用します。

– [他のメール プラットフォームで Gmail のメールをチェックする](https://support.google.com/mail/answer/7126229)
– [アプリ パスワードでログインする](https://support.google.com/accounts/answer/185833)

# プログラム

以下ではメールサーバへ接続、メッセージを検索、取得、それをprintするプログラムです。

## メールサーバへ接接続

メールサーバにログインした後、INBOX(受信トレイ)を選択

元記事を表示

Python3.10の新機能(1) – 引数仕様変数 (Parameter Specification Variables)

## はじめに

2021年10月にリリースが予定されているPython3.10で新たに加わる変更を[Python3.10の新機能 (まとめ)](https://qiita.com/ksato9700/items/2cd85bec2ae4c1785238)という記事でまとめ始めました。その中で比較的分量のある項目を別記事に切り出すことにしていますが、その第一弾として引数仕様変数(Parameter Specification Variables)を取り上げます。この変更は [PEP-612](https://www.python.org/dev/peps/pep-0612/) で詳しく述べられていて、この記事はそれを簡単にまとめて紹介したものです。

## この変更で解決しようとしている問題

PEP-612は型ヒントの付け方に関する変更提案なのですが、例えば「関数を呼ぶ前にDBにログを記録する」という機能をデコレーターで実現することを考えます。Python 3.9ではこのように書けます。

“`python
from typing import Awaitable, Callabl

元記事を表示

[Python]ループ実行時間の目安

# 条件
以下の二重ループを [AtCoder](https://atcoder.jp) のコードテストで各条件 3 回ずつ実行し、実行時間 (ms) の中央値を記録した。
試行した時間帯は日曜 AM 9 時ごろ。

“`python
count = 0
for i in range(n):
for j in range(m):
count += 1
print(count)
“`

# 実行結果
ネストに関わらず、実行時間はほぼループ回数に依存するとみて良い。

## Python 3.8.2
|m \ n |$10^0$|$10^1$|$10^2$|$10^3$|$10^4$|$10^5$|$10^6$|$10^7$|$10^8$|
|–:|–:|–:|–:|–:|–:|–:|–:|–:|–:|
|$10^0$|| | ||||107|801|7613|
|$10^1$|| | |||110|768|7605|TLE|
|$10^2$|||||108|829|7599|TLE||
|$10^3$||||102|785|7858|TLE|||
|$1

元記事を表示

Pythonのinput関数

#Pythonについて
Pythonは、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。(Wikipediaより)
簡単に言うと有名で簡単なプログラミング言語です。

#Pythonのinput関数
ちょっと躓いたことのリマインドとしてinput関数を挙げておきます。
input関数は、terminal等にキーボードで打ち込んだ文字を認識するための関数です。

python2系

“`python:python2
raw_input()
“`

python3系

“`python:python3
input()
“`

元記事を表示

2次元CNNによるBitcoin価格予測

個別銘柄のBitcoinを対象として,2次元CNNを用いた予測を行いました.

5分先の価格の騰落を予測する,2値分類問題としました.

### 1. データセット

![candlestickchart.png](https://images.hive.blog/DQmQveT2pRbAPhKvot1B73LgBFhFoFnLDPZMfHATrLtzd6d/candlestickchart.png)

入力データは,上記のようなローソク足チャート画像としました.

2016年1月1日~2016年3月31日までのBitcoin/USD価格,1分足の131,040件を取得しました.

1枚の画像に30件のデータを用いた為,4368枚の画像が生成されました.

前半の3968枚を訓練データとして分割し,後半の400枚をテストデータとして分割しました.

Google Colaboratoryへ全ての訓練データをアップロードすることができなかった為,前半の2800枚を訓練データとしました.

訓練データにはデータ拡張を行い,最終的には11,200枚の訓練データと400枚のテストデータを用いま

元記事を表示

Python3: Let’s Encrypt の証明書を使ったブローカーに接続

こちらで作成したブローカーに接続する方法です。
[Mosquitto で Let’s Encrypt の証明書を使う](https://qiita.com/ekzemplaro/items/d2afb5d421c7d4d457c2)

“`text:.env
HOST=abc.example.com
TOPIC=sensors/topic_1
“`

“`py:publish_ca.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# publish_ca.py
#
# Jan/23/2021
#
# ——————————————————————
import sys
import os
from dotenv import load_dotenv
from time import sleep
import paho.mqtt.client as mqtt

# —————————————

元記事を表示

Python の __name__ を理解する

Python で 以下のようなコードをよく目にする。

“`
if __name__ == “__main__”:
“`

これについては色々な記事があるが、自分なりにコードを実行してみてみるのが理解し易いため、ハンズオン形式で理解できるようにメモ。

## 結論

**\_\_name__** は、

– 実行ファイル内では **\_\_main__**

– 外部から読み込まれた場合は **拡張子なしのファイル名**

となる。

上記のことをつらつらと確認していく。

## ディレクトリ構成

下記の構成を用意して動作確認した。

“`
.
├── test1.py
└── test2.py
“`

## \_\_name__ を出力してみる

test1.py 内で \_\_name__ を出力するようにして実行する。

“`test1.py
print(‘test1: ‘ + __name__)
“`

“`
> .% python test1.py
> test1: __main__
“`

\_\_name__ は \_\_main__ と出力された。

元記事を表示

[Python] Outlookでメール作成

# 初めに
Pythonを用いたOutlookでのメール作成を実施する。
以下の環境で実施した。

|||
|—|—|
|os|windows|
|python|3.7.1|
|pywin32|227|
|anaconda|4.8.5|

# インストール

anaconda環境であれば、デフォルトでインストール済み。
インストールに関するメモを記載する。

“`bash

conda install pywin32
“`

# mailの作成

ライブラリを用いてメールを作成する。
Outlookを用いたMailItemオブジェクトは以下を参照する。
https://docs.microsoft.com/ja-jp/office/vba/api/outlook.mailitem

“` python
import win32com.client

# Outlookのmailオブジェクト設定
outlook = win32com.client.Dispatch(‘Outlook.Application’)
objMail = outlook.CreateItem(0)

元記事を表示

Pythonを駆使してパワポ、Excelの作成を自動化する

# 要約
– とある運用保守プロジェクトでの月次レポート作成作業を徐々に改善していくお話
– データベースから抽出した情報をもとに行うExcelでの加工・集計をPython + Excel VBAで自動化
– Excelで加工・集計した内容をパワポにまとめる作業をPythonのライブラリ(python-pptx, Openpyxl)を駆使して自動化

# 環境

– Windows10 64bit
– Python 3.7
– python-pptx
– Openpyxl

“`python:pip
pip install python-pptx

# Anacondaをインストールしている環境であれば不要
pip install openpyxl

“`

# ■改善その1

## ▼問題提起

話は遡ること約3年前。
とある運用保守のプロジェクトに参入した私は月次レポートの作成を引き継ぐことに。

– 1.データベースから必要な情報を抽出する
– 2.抽出した情報を元にExcelで加工・集計を行う
– 3.加工・集計した内容をパワポにまとめる

大雑把に言うとこ

元記事を表示

pytorch DistributedDataParallel 事始め

# はじめに
DistributedDataParallel(以下、DDP)に関する、イントロの日本語記事がなかったので、自分の経験をまとめておきます。

pytorchでGPUの並列化(特に、DataParallelを行う場合、[チュートリアル](https://pytorch.org/tutorials/beginner/blitz/data_parallel_tutorial.html)では、[DataParallel Module](https://pytorch.org/docs/stable/generated/torch.nn.DataParallel.html#torch.nn.DataParallel)(以下、DP)が使用されています。
しかし、公式ドキュメントをよく読むと、[DistributedDataPararell](https://pytorch.org/docs/stable/generated/torch.nn.parallel.DistributedDataParallel.html#torch.nn.parallel.DistributedDataP

元記事を表示

tkinterのEntryから取得した値をリストの末尾に追加する

#背景
クラスがよくわかっていなかったので、自らの勉強を兼ねて書いてみた。

#クラスのコードを試しに書いてみる
試しに、以下のような簡単なクラスを書いてみる。

“`python3:tkclass.py
class x:
def __init__(self,x): #クラスを実行したときに必ず実行されるメソッド
self.x = x
def go(self):
self.x = x #__init__で取得した変数xを引き継いでいる。
print(x)
“`
ここで、Xというのがクラスの名前である。
また、クラス内での関数はメソッドと呼ばれる。

ただ、ここでxの内容を入れてもこのままでは呼び出されない。
ここで、インスタンスというものを定義する

“`python3:test.py
yobidashi =x(10)
“`
このyobidashiが、インスタンス名(クラスを呼び出したいときの名前)である。
(10)は、xに入れたい引数を入れている。

“`python3:test.py
yobidashi =x

元記事を表示

[Python]リストの最後から順に取り出す

# はじめに
気まぐれでアルゴリズムの問題を解くことがあるのですが、このときは普段利用しないPythonを選択しています。
その中で、Pythonにおいて「リストの最後から順に要素を取り出す」という操作をどうしたらいいのかで悩みました。

Python自体、めったに利用することがなく、基本的なfor文の書き方すら頭から抜け落ちることもあるため、
基礎から学び直しつつ、最後に「リストの最後から順に要素を取り出す」にチャレンジします。

また、こちらは、[エンジニアの新たな学びキャンペーン](https://qiita.com/official-events/716dbcb617afc83e9555)に向けた記事となります。

# まず基本的なfor文から

> “`py
for 変数 in データの集まり:
実行する処理
“`
[【基礎を全解説】はじめての人の無料で学べるPython超入門!](https://www.udemy.com/course/python-free-intro/)

適当なリストを作成し、そのリストについて操作してみます。

“`python

元記事を表示

Pythonのwith文で複数ファイルを一度に開く

# 概要
Pythonでファイルのopenなどに使う`with文`は、カンマで区切って複数のファイルを一度に開くことができます。(python3.1以降)
その場合、複数の with 文がネストされたかのように扱われます。
複数csvファイルのマージなどに役立ちます。

# サンプルコード(python3.6.9で確認)

2021-01-22: @shiracamus さんのコメントを反映しました。ありがとうございます。

“`python
import csv

with open(“input1.csv”, mode=’r’) as fi1, \
open(“input2.csv”, mode=’r’) as fi2, \
open(“output.csv”, mode=’w’) as fo:
reader1 = csv.reader(fi1)
reader2 = csv.reader(fi2)
writer = csv.writer(fo)

for l1, l2 in zip(reader1, reader2):

元記事を表示

OTHERカテゴリの最新記事