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

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

pythonでのグラフ描画に困っている人へ

python でグラフを書いてみようと matplotlib をインストールしてみたものの、

「ImportError: DLL load failed while importing ft2font: 指定されたモジュールが見つかりません。」

と注意を受けて、グラフが出力されなかった。

ワイの実行環境:
windows10
Python 3.8.6
(以下pip freezeで出力)
certifi==2020.6.20
cycler==0.10.0
kiwisolver==1.2.0
matplotlib==3.3.2
numpy==1.19.1
pandas==1.1.4
Pillow==7.2.0
pyparsing==2.4.7
python-dateutil==2.8.1
pytz==2020.4
six==1.15.0

僕の場合、matplotlib のバージョンを1つ下のやつにダウングレードすることで解決できた。具体的なコマンドは、Anaconda Prompt(anaconda3)上で

“`
pip uninstall matplotlib
pip

元記事を表示

カスタムデータセットにおけるbboxの最適化[COCO format]

# カスタムデータセットにおけるbboxの最適化

maskrcnnなどにおいて自己データを用いて推論することがある場合に、カテゴリーが1種類くらいであれば最適化が出来ます。

例えば縦と横があらかじめ決まっていたり、サイズが推論する前からおおよそ分かっているのであれば、アンカーボックスを生成する際に
その形に近いものをつくってあげることで計算コストと精度の向上につながります。

FPN層においてアンカーボックスが作成されるときに

初期のサイズは(0.5,1.0,2.0)
アスペクト比率は(32, 64, 128, 256, 512)

です。(facebook/maskrcnn-benchmarkの場合)

どのサイズがいいのかを推定するために、アノテーションしたmaskのポリゴンの情報を用いて面積とアスペクト比率をヒストグラムに直します。

“`Python
import IPython
import os
import json
import random
import numpy as np
import requests
from io import BytesIO
fr

元記事を表示

loggingの小数点を,から.に変える

検索の上位に出てくる
[Python logging_ use milliseconds in time format – Stack Overflow](https://stackoverflow.com/questions/6290739/python-logging-use-milliseconds-in-time-format)
がちょっと求めているものと違う+何度か忘れているのでメモする。

“`python
import logging
logging.basicConfig(
level=logging.INFO,
format=”%(asctime)s.%(msecs)03d %(message)s”,
datefmt=”%H:%M:%S”
)
“`

datefmtで秒まで表示するようにして、formatで`%(msecs)03d`をつける。

元記事を表示

LSTM + Embeddingで、ツイートの感情を判別するモデルを作る中で、NLPにおける前処理の重要性を再認識した。

# モチベーション

色々とご縁があり、「生徒の回答が、金賞、銀賞、銅賞、圏外なのか?」を分類する、Text Classificationの問題を解くことになりました。

実務で、自然言語処理のタスクは、あまり解いた事がなかったので、とりあえずKaggleで盛り上がっていた「Sentiment Analayis 感情分析」の問題を解いてみて、練習する事にしました。

色々と試行錯誤する中で、(他のタスク以上に)自然言語処理のタスクでは、前処理(テキストの加工)が重要な事がわかったので、本記事にまとめようと思います。

##### データの概要説明
世界中の学生や実務家が、その実力を競い合っている、Kaggleというオンラインデータ分析コンペのサイトから、”Sentiment140 dataset with 1.6 million tweets”というデータセットが、共有されているので、そちらのデータを使用します。

こちらは、コンペティションで使用されたデータではなく、「感情分析に、是非役立ててください」と、Kaggleの有志が共有してくれたデータセットです。160万ものツイートが揃っ

元記事を表示

Socketモジュールを使ったTCP通信 – Python3

前回の記事と一緒にご覧ください。[Python3のソケットモジュールとソケット通信の流れ](https://qiita.com/Suzukaze31/items/a181016e8779ac118478)
python3のsocketモジュールを使った、TCP通信の簡単な例

#####環境
Python: `3.6`
必要とするモジュール: `colorama`

## 実行結果とソースコード

### サーバー側(ソケット通信二回分)

![server_side_img.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448552/ba361a0b-4095-2220-cc3d-ce34420de373.jpeg)

“`Python3
import socket
from colored_print import print_msg

SERVER_ADDRESS = (‘192.168.1.200’, 8000)

sock = socket.socket(socket.AF_INET,

元記事を表示

Python+OpenCVで仮想カメラを自作しオリジナルエフェクトをかける

仮想カメラとは,Webカメラのような画像入力デバイスとしてPCに認識させることのできるソフトウェアの事です.
これを利用することにより,最近よく用いられるZoom,WebEx,Meetといったビデオ会議システムに(フロントカメラの入力ではなく)好きな映像を流すことができます.

一般的に用いられる仮想カメラには[OBS Studio](https://obsproject.com/ja)があり,私もよく利用しています(最近プラグインなしの標準で仮想カメラが使えるようになったらしいですね).しかしこれは機能が非常に充実している分,とんでもなく重いためあまり日常的に利用したくはありません.(RTX2028 SUPERでGPU使用率8割くらいになるんですが私だけですかね….?)

そこで,自分でも仮想カメラを作成し,エフェクトをかけられるのではないかと思い,いろいろと試行錯誤をしてみました.まだ原因不明のバグがありますが,一応は動くようになったので紹介したいと思います.

# 前提
このシステムは`Windows`を対象にしています.
グラフィックの低レイヤー

元記事を表示

【Selenium】chromedriverの相対パスを指定するには?

##1. はまったこと

Seleniumのchromedriverを、pythonスクリプトファイルと同じディレクトリに配置していた。
chromedriverは、スクリプトファイルから見てカレントディレクトリにあるので、以下で動いていた。

“`python:
driver = webdriver.Chrome()
“`

ところが、ある日、Mac OSをアップデートしたところ、chromedriverが見つからない(パスを通せ)とエラーが吐かれた。

##2. 解決策
対処作として、以下に修正したところ、無事に動いた。

“`python:
driver = webdriver.Chrome(executable_path=’./chromedriver’)
“`

元記事を表示

辞書を作成する様々な方法(備忘録)

今回は一見簡単そうに見えて実は奥が深い、
辞書を作成する方法について記す。

本記事では以下の順に沿って記していく。
・波括弧で作成する方法
・dict()で作成する方法
・辞書内包表記で作成する方法
#波括弧で作成する方法
1.
>{key: value, key: value, …}で生成する方法。

`d = {‘k1’: 1, ‘k2’: 2, ‘k3’: 3}
print(d)`
`# {‘k1’: 1, ‘k2’: 2, ‘k3’: 3}`

2.
>以下の2の方法はPython3.5からできるようになり、二つだけでなく三つ以上もできるらしい。また
d = {**d1, **d2, ‘k5’: 5}
として、結合と追加を掃除に行うこともできるらしい。
これを行なってもd1,d2はそのままらしい。

`d1 = {‘k1’: 1, ‘k2’: 2}
d2 = {‘k3’: 3, ‘k4’: 4}`

`d = {**d1, **d2}
print(d)`
`# {‘k1’: 1, ‘k2’: 2, ‘k3’: 3, ‘k4’: 4}`

`print(d1)

元記事を表示

Python で物理定数を使う scipy.constants 〜定数 e 〜

#0. 環境

$\bullet$ macOS Catalina
$\bullet$ Jupyter notebook
$\bullet$ Python 3.8.6
$\bullet$ NumPy 1.18.5
$\bullet$ SciPy 1.5.4[^1]
[^1]: `print(scipy.constants.physical_constants[“hyperfine transition frequency of Cs-133”])`や`print(scipy.constants.physical_constants[“luminous efficacy”])`が空列として出力される場合はアップデートが必要です.[SciPy 1.4.0 Release Notes — SciPy v1.5.4 Reference Guide](https://docs.scipy.org/doc/scipy/reference/release.1.4.0.html)

#1. scipy.constants
##1.1 物理定数
`from scipy.constants impo

元記事を表示

Catalinaでpyenv を使ってPythonを3系にあげようとしたらエラーになる

##環境
mac OS Catalina
バージョン 10.15.7
Xcodeインストール済み(Version 12.1)だけど、ずっと開いていない

##普通の手順

“`$ python –version“`
で現在のバージョンを確認し → 2.7.なんぼのはず

“`$ brew update“`

“`$ brew install pyenv“`
homebrewでpyenvをインストール

“`$ pyenv install 3.6.5“`
ここで、エラーひとつめ
エラー内容
>zipimport.ZipImportError: can’t decompress data; zlib not available
make: *** [install] Error 1

というのが出てきましたので

“`$ brew install zlib“`
しますが、特に変わらず。

https://qiita.com/miyacomaru/items/a105800f938de7b908e0
を参考に、
“`$ xcode-select –install“

元記事を表示

PlotlyのLayoutに書くdomain属性って何?

このテーマに関して、英語のドキュメントにはコードと実行結果しか載っておらず、
ちょっとわかりにくかったのでその解説を残しておきます。

domain属性の使いどころ

  1. 1つの画像に複数のグラフを配置したい時の位置指定
  2. (x軸またはy軸を共有)同じグラフ内に複数のデータを重ねたい時の位置指定。これにはdomainの他にも軸の設定とか調整が必要なので説明は省略します。
  3. 他にもこういう時に使うよ、というのがあれば教えてください!

参考ドキュメント

https://plotly.com/javascript/subplots/#multiple-custom-sized-subplots

これはJavaScriptのドキュメントですが、Pythonで書くときの参考にできます。

この multiple-custom-sized-subplots という項目では
上記の用途1の、与えられた1つのエリア内に複数のグラフを表示するときの、
配置とサイ

PandasでCSVファイルを読み込む方法

この記事では、
PandasでCSVファイルを読み込む方法
について書いていきます。

また、この記事ではJupyter labを使用します。
インストールをしてあることを前提に始めていきます。

##CSVファイルとは?
comma-separated values(略称:CSV)は、テキストデータをいくつかのフィールド(項目)に分け、区切り文字であるカンマ「,」で区切ったデータ形式。拡張子は .csv、MIMEタイプは text/csv。
Comma-Separated Values – Wikipedia

##やり方
1, Pandasをインポートする
2, csvファイルを読み込む

###1, Pandasをインポートする
まずはPandasをインポートします。
pandasでは慣習的に、’pd’という名前で使用されるそうです。
‘as’で指定していきます。

“`python
import pandas as pd
“`

###2,

sort, sorted の違い(備忘録)

#sortとsortedの違い
初めまして。
これからエンジニアを目指す19歳です。
今回は、練習問題を解いている時にふと疑問に思ったので、備忘録として

sortとsortedの違い

について記していこうと思います。どなたかの解決の一助になれば幸いです。
初心者なので見づらいと思いますが、ご容赦下さい。

以下の順で書いていきたいと思います。

ー sortメソッドとは何か、またどう使うのか
ー sorted関数とは何か、またどう使うのか
ー どこが違うのか

###sortメソッドとは何か、またどう使うのか
TechAcademyマガジンによるとsortメソッドについて、以下のように書かれていました。
『sort関数とは、リストの並び替えを行うための関数です。数値や文字列のリストを昇順もしくは降順に並び替えることができます。』
また使い方については、
『sort関数は、「リスト名.sort()」という形で使うことができます。また、reverseという引数を任意で設定することもできます。reverseはデフォルトではFalseになっているので、re

Python3.10の新機能 (まとめ)

##はじめに

Python 3.5から What’s Newの内容をまとめる記事を投稿してきました。

* [Python3.5の新機能](http://qiita.com/ksato9700/items/9a0aef07d90d00e67525)
* [Python3.6の新機能](https://qiita.com/ksato9700/items/ed839a6db6a671fd31e6)
* [Python3.7の新機能](https://qiita.com/ksato9700/items/35a0bdc04693b3b09757)
* [Python3.8の新機能(まとめ)](https://qiita.com/ksato9700/items/3846e8db573a07c71c33)
* [Python3.9の新機能(まとめ)](https://qiita.com/ksato9700/items/d5df9d36147796c86c77)

リリースサイクルが1年になり、この前3.9が出たばかりと思ったらもう3.10のa2が出ていました(汗)。[ここ](https://qi

Azure Storageへのファイルアップロード(Python)

## Azure Storageへのファイルアップロードの手順
Azure Storageへのファイルアップロード方法を以下に記載します。

# 前提条件
以下の環境にて、構築しております。

OS: Windows10
言語:Python 3.8.6

Azure環境があること
Azureの”ストレージアカウント”サービスにて、新規アカウントを作成していること

# アップロード手順
①Python用のAzure Storageパッケージをインストールする。
$ py -m pip install azure-storage-blob == 12.5.0

② Azure ポータルにて、”ストレージアカウント”サービスから、Blob service → コンテナーを選択する。
その後、接続文字列を確認する。

③ 以下のプログラムが記載された”sample_upload.py”を実行する。
なお、実行位置に”Hello World.txt”(中身は自由)を配置しておくこと。

$ py sample_upload.py

※ファイル内の以下の箇所を自身の環境に合わせ

Python3のソケットモジュールとソケット通信の流れ

### ソケットの分類

この分類は異なる使われ方のソケットを便宜的に分けたものであくまでこういう使われ方をするソケットをこういう名前で呼んでおく。というものである。しかし、listening socketが接続要求を**送る**ことはできない(`Error: Transport endpoint is already connected`)ことは確かであるから違う状態であることは明らか(つまりPassive mode)。

| | サーバー側 | クライアント側 | 説明 |
| ———————— | ————————————————– | ———

Pythonのデコレータに固定引数を渡す別名をつける

# モチベーション

Python の変数付きデコレータの変数を固定させて別名を与えたいことがある。
今回は以下のような汎用デコレータ `tag` を対象にする。

“`python:main.py–tagデコレータの実装と利用例
import functools

def tag(*tags):
def _tag(f):
@functools.wraps(f)
def _wrapper(*args, **kwargs):
res = f(*args, **kwargs)
begins = ”.join([f’<{e}>‘ for e in tags])
ends = ”.join(reversed([f’‘ for e in tags]))
return f'{begins}{res}{ends}’
return _wrapper
return _tag

@tag()
def test1():

Pythonで時刻同期(Windows)する

#使用する技術
– ctypes

– PythonでC/C++の共有ライブラリを使用することができるライブラリ。

#必要条件
– 管理者権限での実行

#サンプルソース
“`Sample.py
# coding: Shift_JIS
from ctypes import Structure, windll, pointer
from ctypes.wintypes import WORD

# 時刻同期関数に渡してあげるための構造体を作成する。
class SYSTEMTIME(Structure):
_fields_ = [
(‘wYear’, WORD),
(‘wMonth’, WORD),
(‘wDayOfWeek’, WORD),
(‘wDay’, WORD),
(‘wHour’, WORD),
(‘wMinute’, WORD),
(‘wSecond’,

プログラミング始めて2ヶ月の初心者が日本の実質GDPをSARIMAモデルで時系列分析してみた

#[さいしょに]
 貴重な時間を割いて、記事を読んでくださってありがとうございます!!

 まず自己紹介からさせていただきます!私は隙間時間にPythonの学習を楽しんでいる社会人

です。

プログラミングどころかPCについてもチンプンカンプンだった私は先月の9月1日からPythonの勉強を

Progate,PyQ,Aidemyで始めて今に至るので、プログラミングをしだして約2ヶ月経ったことになります。

Aidemyのデータ分析コースを一通り学んできたのでアウトプットしたいと思い、この記事を書くことにしました。

###誰に読んでもらうことを想定した記事か?
仕事をしながら、学校に行きながらなど、大量にはプログラミング学習に時間を確保できないけれども、プログラ

ミング学習をしたいと考えているプログラミング初心者の方です。上に書いた自己紹介の通り、私もプログラミン

グ初心者です。そのため読者様が約2ヶ月で、どれくらいのことが出来るかのサンプルの一つにでもしてくだされ

ば嬉しいです。

###環境
Python3
MacBookAir
Jupyter Notebook

#[

【Udemy Python3入門+応用】  69. 絶対パスと相対パスのImport

**※この記事はUdemyの
「[現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル](https://www.udemy.com/course/python-beginner/ “現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル”)」
の講座を受講した上での、自分用の授業ノートです。
講師の[酒井潤](https://twitter.com/sakaijun “酒井潤”)さんから許可をいただいた上で公開しています。**

## ■フォルダの中のものをimportする
こんな風にディレクトリとファイルを用意する。

“`
lesson_package
└ talk
├ __init__.py
└ human.py
lesson.py
“`

“`python:human.py
def sing():
return ‘sing’

def cry():
return ‘cry’
“`

“`python:lesson.py
from lesso