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

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

Blenderで凸包を作ろう

## Blenderで凸包を作ろう

頂点座標だけ与えられているとき、その凸包を確認したいとします。
ここでは、Blenderを使って凸包を作成してみましょう。

## 準備

SciPyとmore-itertoolsを使います。
[Blenderのコマンドサンプル](https://qiita.com/SaitoTsutomu/items/6b70367455f843a979b1)を参考にして、下記のようにインストールしてください。

“`bash
blender_pip install scipy more-itertools
“`

## ランダムデータで確認

以下では、ランダムな30個の頂点を作成し、その凸包を作成しています。
Scriptingワークスペースで新規作成して、コピペして実行してください。

“`py
from typing import Any, Iterable

import bpy
import numpy as np
from mathutils import Vector
from more_itertools import pairwise

元記事を表示

ImportError: Couldn’t import Django 解決方法

#解決方法
Windows の場合 mysite フォルダに移動してコマンドプロンプトで以下を実行する。

“`
pip install django
“`

その後以下のコマンドを実行しサーバーが動いたどうか確認。

“`
python manage.py runserver
“`

Starting development server at http://*********
と表示されれば動作確認完了。解決できた。

参考サイト
https://docs.djangoproject.com/ja/4.0/intro/tutorial01/

#この記事を書いたいきさつ
Django を使用したかったが使用できなくて困っていた。
Django サーバー起動時にコマンドプロンプトで python manage.py startapp を実行すると import エラーとなった。
#エラー文
“`
C:\Users\***\mysite>python manage.py startapp
Traceback (most recent call last):
File “

元記事を表示

Pandas DataFrame (Series) における sum の違い

お前は何を言っているんだというタイトルだと思いますが、 DataFrame (Series) に対する `sum` に対するこの結果を見てみましょう。

“`python
import math
import pandas as pd

df = pd.DataFrame({“a”: [1e-7] * int(1e7)})

df[“a”].sum()
1.0000000000000173

sum(df[“a”])
0.99999999975017

math.fsum(df[“a”])
1.0
“`

いかがでしたでしょうか。みたいな薄っぺらい商材ブログの文体とは異なり、ストイックな追求をここではしていく。

## 前提知識

そもそも単純だと思われるsum関数において、いくつかの加算アルゴリズムが存在しているという事実に注意が必要だ(と偉そうに書いていてこの記事を書くために調べて初めてきちんと理解した)。具体的には [Kahan summation](https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%8F%E3%83%B3%E3%81

元記事を表示

Pythonで簡単にスクレイピングできるシステムを作ってみた [初心者向け]

#概要
Pythonでのスクレイピングを簡単に行えるシステムを紹介します。

今流行りのPythonに触れて何らかのアウトプットがしたいと思い、前々から興味があったスクレイピングにフォーカスしてシステムを開発しました。

※プログラミングやPython、スクレイピング初学者の方に少しでも参考になればと思います。
何か指摘やご意見がありましたらよろしくお願いします。

#目次
[1 制作したシステム](#1-制作したシステム)
[2 制作に到った経緯](#2-制作に到った経緯)
[3 インストールしたライブラリ](#3-インストールしたライブラリ)
[4 システム内容 – 詳細](#4-システム内容—詳細)
[5 ソースコード](#5-ソースコード)
[6 最後に](#6-最後に)

##1 制作したシステム
Pythonのinput()を使い、Webページの情報を簡単にスクレイピングできるシステム
具体的な内容としては、

1. Webサイトから「テキスト」「リンク」「画像」の取得
2. 取得したデータを「テキストファイル」「Excelファイル」に保存
  画像の場合はディ

元記事を表示

「エントロピーと秩序」のプログラムをpythonで書く~カルノーサイクル

# 初めに

去年の夏、エントロピーにはまっていていろいろな本を読んでいたのですが、その中の一つに「[エントロピーと秩序](https://www.amazon.co.jp/dp/4532520142/ref=cm_sw_r_tw_dp_07SDCC39B9GNHRC5FEW5)」という本があります。この本の巻末にBASICで書かれたプログラムがいくつか載っているのですが、BASICの実行環境がないので実行できません。そこで、pythonで書き換えてみることにしました。

# カルノーサイクル

ひとつめに載っているプログラムが「カルノーサイクル」です。

“`python
import math
import matplotlib.pyplot as plt

plt.xlabel(“V”)
plt.xticks(color=”None”)
plt.ylabel(“P”, rotation=0)
plt.yticks(color=”None”)

TU = int(input(“高温部の温度”))
TL = int(input(“低温部の温度”))
Q = int(input(“膨

元記事を表示

【図解】ROC曲線の意味と描画方法についてイメージをつかむ

#1. はじめに
分類モデルの性能を評価する際、どの指標を用いるかが重要になります。
シンプルに正解率を使う際もありますが、それだけでは正確にモデルの性能を評価することができないときもあります。
今回はその指標をいくつかまとめつつ、特にイメージしづらかったROC曲線について整理します。

#2. 基礎情報
##2-1. 混同行列
混同行列とは、分類器の真陽性(True Positive)、真陰性(True Negative)、偽陽性(False Positive)、偽陰性(False Negative)の4つのそれぞれの数を列挙した正方行列になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2048607/915c0909-11dd-011b-9103-2d58a864170a.png)

##2-2. 真陽性率/偽陽性率
次に上記のそれぞれの数を利用した指標を列挙する。

正解率(ACC:ACCuracy)
全データのうち、正しく判定されたデータの割合

“`math
A

元記事を表示

【微小領域環】直交座標系(Cartesian Coordinates System)や極座標系(Polar Coordinates System)との対応。

**解析学**(Mathematical Analysis)における**微分法**(Differentiation)**積分法**(Integral Calculus)の背景にある**微小領域**(Microregions)の概念がどうしても飲み込まないので、むしろそれから出発する数理を構築してみようと思い立ちました。まだまだ試論の段階で、運用を試みながら発生した不具合に順次対処してまいります。
#微小領域群(Microregion Group)

まずは以下の展開の前提を列記しておきましょう。

###①出発点としての微小領域群(Microregion Group)概念そのものの設定。

任意の**微小領域**(Microregion)αを元とする**連続一次元微小領域**(Continuous 1D Microregion)Αの概念から出発する。数式で表すと以下となる。

“`math
A(\forall α \in A)
“`
それは**群**(Group)を構成し、各**微小領域

元記事を表示

DenoであらゆるPythonライブラリが使えるようになったらしいので試す

Denoからあらゆるpythonライブラリを呼び出すことができる、その名も「python」というライブラリが公開されました。

https://deno.land/x/python@0.1.0

これは面白そう…!ということで、使ってみようと思います。

## 使い方

### 1. Pythonのインストール

最初にPythonをインストールする必要があります。
自分の場合は最初からPythonが入っていたので、この手順は必要ありませんでした。
Pythonが入っていない人は適宜ググってください。

### 2. Pythonを呼び出すJSコードの作成

まずはfizzbazzを実行してみます。コードは以下のような感じになりました。

“`ts
import { python } from “https://deno.land/x/python@0.1.0/mod.ts”;

// `python.runModule`メソッドは、引数のpythonコードをモジュールとして実行する
const fizzbuzzModule = python.runModule(`
def fizz

元記事を表示

COTOHA API を (あらためて) 使ってみる

NTT コミュニケーションズが提供している [COTOHA API](https://api.ce-cotoha.com/contents/index.html) を使ってみたので記事にします。

# COTOHA API
[COTOHA API](https://api.ce-cotoha.com/contents/index.html) は NTT コミュニケーションズが提供している自然言語処理および音声処理用の API プラットフォームです。
利用にはアカウントの登録が必要であり, 無料プランの for Developers と有料プランの for Enterprise があります。
プランによって API の利用制限や辞書の登録可否などの差があるため注意してください。
筆者は for Developers プランでアカウントを登録しています。

提供されている API は以下の通り : [^1]

| API 名 | 概要 | for Developers | for Enterprise |
|:—-|:—-|:—-:|:—-:|
|構文解析|日本語テキス

元記事を表示

MediaPipe – Holisticのランドマーク座標取得まとめ

自分用にMediaPipeのHolisticでlandmarkを取得した結果をまとめました。
holisticを使うと画像中の人物に対してpose, face, right_hand, left_handのランドマーク推定をまとめて行ってくれます。

#下準備
imageに対してmediapipeを適用します。

“`python:下準備
import mediapipe as mp
import cv2

# 初期設定
mp_holistic = mp.solutions.holistic
holistic = mp_holistic.Holistic(
static_image_mode=True,
min_detection_confidence=0.5)

image = cv2.imread(‘画像パス’)
results = holistic.process(
cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
“`

resultsにすべての結果が格納されています。
以下resultsからそれぞれのランドマークを抽出

元記事を表示

第2章2.5~2.6 [第2版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践

#振り返り
[前回](https://qiita.com/SotaChambers/items/cc2df377532e2c728fa6)はアヤメのデータセットを使って、作成したパーセプトロンで境界線を引きました。またADALINEとパーセプトロンの違いについて触れました。

#2.5 勾配降下法によるコスト関数の最小化
教師あり機械学習のアルゴリズムを構成する要素の1つとして、最適化される__目的関数__(objective function)を定義することがあります。大抵の場合、この目的関数は最小化したい__コスト関数__です。
ADALINEは重みの学習に用いるコスト関数$J$を定義でき、真のクラスラベルとの__誤差平方和__(sum of squared error:SSE)で表現されます。

“`math
J(w)=\frac{1}{2}\sum_i(y^{(i)}-\phi(z^{(i)}))^2
“`
1/2は便宜上つけており、後で正体がわかります。
連続値の線形活性化関数の主な利点は、コスト関数が微分可能になるということです。そのため、勾配降下法(gradient

元記事を表示

三角比を考えるときの図をpythonで書く

#やったこと
三角関数について調べる機会があったので、もっと何かできないかと思い、三角比を考えるときによく出てくる図を描画する処理をpythonで書いてみました。

triangle_drow()に角度を渡してやると図を書いて、座標の情報を表示してくれます。

“` python3
# coding: utf-8
import matplotlib.pyplot as plt
import numpy as np

#三角比を図に描画
def triangle_drow(angle):
#X座標とY座標を算出
x1 = np.cos(np.radians(angle))
y1 = np.sin(np.radians(angle))

#円の上に点Pをプロットして座標を表示
plt.scatter(x1,y1,color=”blue”)
target_text = ” P(” + str(round(x1,3)) + “,” + str(round(y1,3)) + “)”
plt.text(x1,y1,target_te

元記事を表示

ラビットチャレンジ【E資格】 深層学習day4

#初めに
本記事はJDLAのE資格の認定プログラム「ラビット・チャレンジ」における深層学習day4のレポート記事です。この記事では以下の内容について、そのモデルの概念から確認し、数式・実装を含めてまとめていきます。

+ 強化学習
+ AlphaGo
+ 軽量化・高速化技術
+ 応用モデル
+ Transformer
+ 物体検知・セグメンテーション
+ DCGAN

#強化学習

+ 強化学習(Reinforcement learning)とは
長期的に報酬を最大化できるように環境の中で行動を選択できるエージェントを作ることを目標とする機械学習の一分野です。行動の毛かkとして与えられる利益を元に、行動を決定する原理を改善していく仕組みです。教師あり学習や教師なし学習と違い、学習データなしに自身の試行錯誤のみで学習するのが特徴です。

+ エージェントと環境
強化学習では、行動する主体を「エージェント」、エージェントがいる世界を「環境」と呼びます。

+ 行動と状態
エージェントが環境に行う働きかけを「行動」と呼びます。エージェントは様々な行動をとることができますが、どの行動を採るか

元記事を表示

仮想空間上でアバターに触れるシステム

こんにちは。ナルキタです。

現在私はVRとタッチケアを合わせた研究に携わっています。

今回はその概要を軽く紹介したいと思います。

まず使用機器一覧です。

Oculus Quest 2
Unityインストール済みのPC
Webカメラ
マイク
マネキン
まずは上記の機器を以下の図のように配置します。

![exp_t.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2488482/d25d8823-49a0-2b32-232f-c6885d4b8fe3.jpeg)

上図の様に、ユーザにOculusを装着してもらい、VRアプリを実行します。

この時に、目の前のマネキンと仮想空間上のアバターの座標が合致するように注意します。

座標調整が済んだらVRアプリを実行します。

![Screenshot 2022-01-10 021539.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2488482/2e13300a-214

元記事を表示

MVTecAD データセットローダー TensorFlow

#はじめに

MVTecADデータセットローダープログラム。

#プログラム①:MVTecAD クラス
“`Python:Data_Loader.py
# MVTec AD Data Loader

# ———————————————–
# Import
# ———————————————–
# 01. Built-in
import os

# 02. Third-party modules
import cv2
import numpy as np
import tensorflow as tf

# ———————————————–
# Class
# ———————————————–

class MVtecADLoader():
def __init__(self, img_size = 224):

元記事を表示

【Python】Airflow ローカルで立ち上げ

#### 概要
Pythonのワークフロー管理ツールであるAirflowをローカルPCで立ち上げまで行う。

#### Airflowとは
はじめにAirflow とは何かを説明する。
**正式名称**: [Apache Airflow](https://airflow.apache.org/)
Airflowとは、Airbnbではじめ開発がスタートされた一連のタスクフローを管理できるOSSのPythonフレームワークである。
もとは、FaceBook社内で使われていたDataswarm(コード非公開)と呼ばれるワークフロー管理ツールの開発者、Maxime BeaucheminがAirbnbに移った後、開発を始めたソフトウェアであるためその時の名残が大きいようである。
各Taskは、Digというファイル内で記述され、一連のワークフローの依存関係もファイル内にPythonコードとして定義する。
OSS自体もPure Pythonで書かれている。
GUIツール上からワークフローの設定変更や実行など行え、比較的UIも洗練されている。
Python上で分岐処理の定義をしておけば、一連のフローを

元記事を表示

python subprocessで標準出力もエラーもファイル出力する

greeting.py

“`python

import argparse
import time

def arg_res():
parser = argparse.ArgumentParser()
parser.add_argument(‘–nickname’,required=True)

args = parser.parse_args()

nickname = args.nickname

# エラーなし
greeting_sentence = f”僕のニックネームは{nickname}”
print(greeting_sentence)

# エラーあり
greeting_sentence = f”僕のニックネームは{nicknames}”
print(greeting_sentence)

return greeting_sentence

def test_main():

greeting_sentence = arg_res()
print(greeti

元記事を表示

【python】文字の出力

pythonの文字の出力方法です。
初投稿なのでお手柔らかに。

#基本編

①文字列の出力
ダブルクォーテーション、またはシングルクォーテーションで挟むことで文字列の出力が出来ます。逆に挟まないとエラーになります。

“`python:string.py
print(“Hello”)
“`

“`:出力結果
Hello
“`

②数値の出力
数値の場合は、クォーテーションで挟んでも挟まなくても出力できます。
“`python:int.py
print(1)
“`

“`:出力結果
1
“`

#応用編

①複数の文字列の出力

“`python:stringAndInt.py
print(“真実は” + “いつも1つ”)
“`

“`:出力結果
進撃の巨人
“`

②複数の数値の出力

“`python:stringAndInt.py
print(1 + 2 + 3)
“`

“`:出力結果
123
“`

③文字列と数値の出力

“`python:stringAndInt.py
print(“欅坂” + str(46))
“`

“`:出力結果

元記事を表示

Sympyのシンボルの取りうる値を定義するAssumptionsについて

# SymPyのAssumptionsとは

“`python
import sympy

x = sympy.Symbol(‘x’)
y = sympy.sqrt(x**2)
print(sympy.simplify(y)) # sqrt(x**2)
“`

デフォルトでSymPyのシンボルを定義した上記の場合、 $x$ は任意の複素数として解釈される。そのため、`simplify()` により数式 $y$ の簡略化を実行しても、正の実数の時に成立する $y = \sqrt{x^2} \Rightarrow y = x$ という変換は行われない。

“`python
import sympy

x = sympy.Symbol(‘x’, positive=True)
y = sympy.sqrt(x**2)
print(sympy.simplify(y)) # x
“`

シンボルの定義の際、引数に `positive=True` を与えることで、$x$ が正の実数として解釈され、正の実数の時に成立する $y = \sqrt{x^2} \Rightarrow y = x$ の

元記事を表示

Google ColaboratoryでopenCV顔検出によるフェイスルビ(ファイル参照とURLローダー両方に対応)

人物の顔の検出順にインクリメントします。

# 動作

>GIF動画

![2022_01_09_48ee0f7b-2df7-4fa4-a5f5-02aff42b1d5c.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2459843/f1adb507-5894-88b4-49e9-1da6e58f10fe.gif)

>Bgore:

![index33.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2459843/fa5be799-d560-80cc-75c7-d6243b3f3230.jpeg)

>After:

![index44.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2459843/49dfbebf-21cc-4521-62b8-88c9e27e67e6.jpeg)

:::note info
ファイル参照