Python関連のことを調べてみた2021年09月04日

Python関連のことを調べてみた2021年09月04日

GCP Pub/Subのメッセージに「属性」を追加してみた

# 概要

GCP Pub/Subのメッセージに「属性」を追加して Cloud Functions でそれを読み込めるかを試してみました。

# Cloud Functionsのソース

“`python:
import base64

def hello_pubsub(event, context):
pubsub_message = base64.b64decode(event[‘data’]).decode(‘utf-8’)
print(“pubsub_message : “, pubsub_message)
print(event)

print(“attribute.test_val1 : “, event[‘attributes’][‘test_val1’])
print(“attribute.test_val2 : “, event[‘attributes’][‘test_val2’])
“`

# pub/subのメッセージのパブリッシュ

![image.png](https://qiita-image-store

元記事を表示

.lyrx は開けます(ArcGIS の CIM の話)

**対象読者** ArcGIS Pro 利用者

**実行環境** Windows10, ArcGIS Pro 2.8.2 (python 3.7.10, arcpy 2.8)

## はじめに

紛らわしいので、まず最初にお伝えします。

ここで取り上げる CIM は Construction Information Modeling ではありません。

これから説明する **CIM** は **Esri Cartographic Information Model** になります。

国交省の BIM/CIM とは別物です。

この後者の CIM を最近知ったのですが、「使える」と思ったのでご紹介します。

## CIM を使ったオブジェクト操作

先述の通り CIM は [Esri Cartographic Information Model](https://pro.arcgis.com/ja/pro-app/latest/arcpy/mapping/python-cim-access.htm) の略で、直訳すると「Esri地図製作情報モデル」でしょうか。

ArcGIS 関連

元記事を表示

Python で UIAutomation を使って Slack に書き込んでみた

Slack コネクトなメンバーを含んだDMチャンネル?に自動で定期的に書き込みをしたくて作ってみました。

Slack API は権限の関係なのかSlack コネクトな情報が取れなくて断念。。

何とか自動化を。。と考えて、UIAutomation が使えそう!!ってことで以下な感じのソースが出来上がりました。

“`python
import comtypes
from comtypes import CoCreateInstance

import comtypes.client
comtypes.client.GetModule(‘UIAutomationCore.dll’)

from comtypes.gen.UIAutomationClient import *

def slack_send(message):
try:
#事前準備
uia = CoCreateInstance(
CUIAutomation._reg_clsid_,
interface=IUIAutomatio

元記事を表示

ページ番号決め打ちで目次を作成する

すべてreportlabで組版した場合の目次生成方法は[公式サンプル](https://www.reportlab.com/snippets/8/)がありますが、手元のpdfファイルをベースに(ページ番号決め打ちで)目次を生成するサンプルは見つけられなかった。TableOfContentsのソースを読んだ限りでは以下のようなやり方でできるらしい。table_of_contents.beforeBuild()とかいう明らかに内部向けっぽい関数を呼ぶのがポイントです。

“`py
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
from reportlab.pdfbase import pdfmetrics
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer
from reportlab.platypus.tableofcontents import TableOfContents
from reportlab.lib.pagesizes imp

元記事を表示

Pythonで株価をシミュレーションしてみた

Pythonを使うことで、未来の株価をシミュレーションしてみようと思います。

Python、株の話ですが、そこまで難しい内容までは踏み込まないので気軽に読んでもらえればと思います。

## 背景
前回の記事で、以下のことが分かりました。

* 上場インデックスファンドTOPIX(1308)の2011/7/22~2021/7/21のデータについて分析
* 全データの5%を異常、95%を正常と仮定し、OneClassSVMで正常状態と異常状態に分けることで、それぞれの状態内では株価のリターン(前日比率)が正規分布していることが確認できた
* 正常状態では、株価の前日比率は
* 平均:1.0005478168389164
* 標準偏差:0.01024285501985374
* 異常状態では、株価の前日比率は
* 平均:0.9971137713072488
* 標準偏差:0.029152921438795287
* 全データの5%が異常状態

https://qiita.com/Mukai1/items/4d06436d0495cca2dd12

この知見をもとに、上場

元記事を表示

natto を anaconda,jupyter labで利用する【Mac】

# Macでjupyter lab でnattoからMeCabを使うのに苦労した話
Macです。OSは、Big Sur。

実行したいコードは、

“`
from natto import MeCab

mc = MeCab()
print(mc.parse(‘今年の夏はとても暑かったですね。’))
“`

これだけ。

とりあえず、はじめにMeCab周りをインストールします。

ターミナルから、

“`
$ brew install mecab
$ brew install mecab-ipadic
“`

mecabはANACONDA.NAVIGATORでインストールする方がいいかもしれません。

natto-py も pip で

“`
pop install natto-py
“`

python から MeCab を使えるようにするため、

“`
pip install mecab-python3
“`

以下は有効かどうかは分かりませんが、とりあえず。

“`
python -c “import MeCab”
“`

これで、~/.bash_profil

元記事を表示

TensorFlowからjpeg画像を読み込むとほかのモジュールとちょっと品質が変わるお話

# はじめに

Tensorflowには画像を読み込む関数がある。

“`python
import tensorflow as tf

img_path = ‘hogehoge.jpg’
raw = tf.io.read_file(img_path)
img = tf.image.decode_image(raw, channels=3)
“`

以前研究の中でcv2からtensorflowに変えて前処理をしていたところ、なぜか結果が変わっていた。
調査したところ、どうやらjpegの品質が変わるみたいです。

というわけで、ほかのモジュールではどうなるか比較してみる。対象はjpegとする。ちなみにpngは全く同じ。
# 比較
使うモジュールは以下の通り:

– Tensorflow
– OpenCV2
– Numpy(fromfile経由)
– PIL
– imageio
– matplotlib

コード

“`python
import cv2
import numpy as np
import tensor

元記事を表示

画像認識(自分で画像用意)での備忘録

Pythonのsklearn(SVM)で画像認識の機械学習をする上で学んだことを備忘録として記録する。

#読み込み
ある特定のファイルに存在する画像データを一括で読み込む
→globを使用する
一例:testフォルダにあるJPGファイルを全て読み込む

“`
import glob
file = glob.glob(“/Users/Apple/Desktop/test/*JPG”)
file
“`
 これにより画像ファイル名がリストとして読み込まれる。
 画像データとして活用するにはこの後OpenCVでimreadが必要

#特徴量変数の作成
複数の画像を一つずつimreadで読み込んでimgに入れたのち、appendで空のリストに追加。それをarrayにする。

“`
file_list= []

for i in file:
img = cv2.imread(i)
file_list.append(img)

file_arr = np.array(file_list)
“`
 imreadはndarrayを返すので、この処理でリストの中にarrayが入る

元記事を表示

【備忘録】Pythonの基本ルール

#はじめに
某スクールにてPythonの勉強をしています。
課題をベースに備忘録的にPythonについて投稿していきます。
誤り等ございましたらコメントにてご教授いただけますと幸いです。
今回は基本中の基本の内容ですが、Pythonを最初からまとめるという意図で投稿いたします。

#変数定義
可読性が高いコードといわれるPythonにおいて命名規則は重要です。
下記ルールに則り命名する必要があります。

>1. 半角英数字
>2. 複数単語がつながる変数名はスネークケースで記述する
>3. 大文字と小文字は区別して扱われる(Name≠name)
>4. 単語の始まりはアルファベット(数字は不可)

#関数
Pythonではインデントによって1つのブロックであることを判断します。(endは記述しない)
一般的には半角スペース4つのインデントが用いられることが多いです。

– 関数を定義する

>def 関数名(引数1,引数2…):
>  ”処理”

– 関数を使用する

>関数名(引数1,引数2…)

#演算子
| 種類 | 演算子 |
|:-:|:-:|
| 加算

元記事を表示

NumPyでSQLのIN的なことをしたい

# はじめに

あるNumPy配列

“`py
a = np.arange(10)
a = np.concatenate((a, a))
np.random.shuffle(a)
“`
array([7, 5, 2, 3, 0, 3, 7, 9, 4, 0, 6, 5, 8, 8, 1, 1, 6, 4, 2, 9])

の中の値が1であるものの位置を示した配列[^1]

[^1]: これを使ってBoolean Indexするわけですがそれについては[別記事](https://qiita.com/junjis0203/items/4136f9ae4f07c452ceb6)をご参照ください。

“`py
a == 1
“`
array([False, False, False, False, False, False, False, False, False,
False, False, False, False, False, True, True, False, False,
False, False])

ふと

元記事を表示

IAMユーザ作成を自動化する

#はじめに
LambdaからCloudFormationを起動するというのをやってみました。
ただ、この記事の内容は実務で使用しているわけではなく、実用的でもないと思っています。

#実現したいこと
![rapture_20210903201831.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535463/51907e63-dac0-fba1-a5f3-6b92559fcda4.png)
上図のように、S3バケットにIAMユーザ名を記入したファイルをアップロードすると、それをトリガーにLambdaが実行され、CloudFormationを起動します。最終的にはIAMポリシーがアタッチされたIAMユーザが作成されます。

#作業手順
##1. CFnテンプレートの作成
まずはCloudFormationのテンプレートとなるyamlファイルを作成します。
IAMポリシーはPowerUserAccessをアタッチすることにしました。

“`ruby:create-iam-user.yml
AWSTempl

元記事を表示

連立線形方程式(Simultaneous Linear Equations)の行列表現から正則行列(Regular Matrix)へ

何度でも大前提まで戻っての再考を迫られるのが数理の世界の宿命…
[可逆な行列(正則行列)、逆行列とは?例と同値な条件](https://math-fun.net/20201206/6790/)
[回転行列とは? 導出と例、性質を紹介](https://math-fun.net/20201211/7086/#i-2)
[置換行列とは?置換との関係、性質、転置・直交行列](https://math-fun.net/20201210/6978/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/179032fa-ef98-1c4d-957f-798785722e37.png)

今回の投稿では**連立線形方程式**(Simultaneous Linear Equations)の行列表現から出発して**可逆行列**(Invertible Matrix)=**正則行列**(Regular Matrix)への入り口くらい切り拓けたらと考えています。

#一次方程式(

Djangoでデータベースをテスト的に利用するときのコード(備忘録)

# modelsのデータベースをテスト的に使うときの備忘録

DjangoのModelsを定義してから、views.pyからデータベースをテストしようとすると設定が面倒です。
かといって外部にファイルを作ってテストしようと思っても、Modelを関係のないファイルから呼び出せる環境設定にできるコードを忘れてしまう。それと意外とネット載っていない。

自分の備忘録として残しておきます。
下のコードのあと、自分で登録したModelsを呼び出すことが可能。

“`setting_models.py
import os
from django import setup
os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’, ‘ModelProject.settings’)
setup()
“`

ABC210 A~C問題解説 python 灰色~茶色コーダー向け #AtCoder

ABC210(AtCoder Beginner Contest 210) A~C問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。

その他のABC解説、動画などは以下です。

https://qiita.com/sano192/items/54accd04df62242b70f0

##A – Cabbages

https://atcoder.jp/contests/abc210/tasks/abc210_a

キャベツを買う個数が
・A個以下の場合
 NX円
・A個より多い場合
 AX+(N-A)Y円
となります。
これをそのままif文にして出力すればOKです。

入力の受け取り、出力がわからない方は以下の記事を参考にしてください。

https://qiita.com/sano192/items/eb2c9cbee6ec4dc79aaf

**【提出】**

“`python:
# 入力の受け取り
N,A,X,Y=map(int, input().split())

# 買う個数がA個以下の場合
if N<=A: # NX円を出力 print(

~灰色・茶色コーダーへ送る~ 競技プログラミング関連 作成解説・動画・書籍一覧 #AtCoder

競プロ関連で作ったものをまとめています。
作成したものは順次この記事へ追加していきます。

#ABC解説(灰~緑difficulty)
ABC217:開催後、作成
【ABC216】(A~E):https://qiita.com/sano192/items/edb3e2293b9c649ad282
【ABC215】(A~D):https://qiita.com/sano192/items/00f6b70dab3bd3323ae6
【ABC214】(A~C):https://qiita.com/sano192/items/5c55f8a785b44e62d3da
【ABC213】(A~D):https://qiita.com/sano192/items/f4e7c64184714dce6ebf
【ABC212】(A~D):https://qiita.com/sano192/items/c595f8e044e84905af10
【ABC211】(A~D):https://qiita.com/sano192/items/051207b6607b56cc439e
【ABC210】(A~C):ht

OpenCVでライブアニメーションから私の愛馬を検出する

#環境
Jupyter Notebook(6.1.4)を用いて作業を進めました。
主要なライブラリのバーションは以下の通りです。
`OpenCV`(4.5.3), `Tensorflow`(2.5.0)
また、ディレクトリの構成は後述します。

#きっかけ
[前回mediapipeを使って手の検出を行いました。](https://qiita.com/bianca26neve/items/116814135739929759a0)OpenCVが不慣れすぎて画像や動画の取り扱いに苦戦しながらの作業でしたが、結果が画像や動画で確認できるのが楽しかったので、何か好きなものを使って練習したいと思ったのがはじまりです。ちょうど同僚の方が[アイドルの顔の検出をアプリ化](https://qiita.com/okateru/items/6f9daf1094ef8c2d6d68)されていたので、私も推しの顔検出にチャレンジしてみました。アプリ化まではちょっとハードル高かったので、ひとまず画像数やキャラ数など小規模で簡単にチャレンジしました。ひとまず形にする、を目標にしているので適当な部分も多いですがご容

【CGAN】櫻坂メンバーの推しメン画像を生成してモチベを上げたかった

# はじめに

[コチラ](https://qiita.com/okateru/items/8bd518736cda6043a5be)の記事でDCGANとFastGAN(LightweightGAN)を使ってポケモンを生成してみたの続きです。

今回はCGAN(conditional GAN)モデルを構築して、推しメンの画像を生成するようにしてみました。

# きっかけ

![20210829_220118 (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/890361/f7ac5d27-db23-0b97-1866-1de47c04c412.jpeg)

推しメンが公式ブログで新しい自撮りを載せてくれると嬉しいですよね。生きるモチベがガンガン上がります。

そこで新しい推しメン画像を自分で生成できれば、無限にモチベーション上げられて勉強がより進むのではないかという不純な動機です()

ただ結論から述べると、生成画像の質としては満足できるものではなくて、失敗してます。

一人の櫻坂ファンが奮闘する姿

Pythonのループ+try/except/finally句+break/continueの挙動

動きに確信が持てなかったので検証しました。
# 検証
## コード1
“`python
while True:
try:
print(‘a’)
raise Exception()
except Exception:
print(‘b’)
break
finally:
print(‘c’)
“`
## 実行結果1
“`sh
$ python3 loop.py
a
b
c
“`
## コード2
“`python
for i in range(0, 2):
try:
print(‘a’)
if i == 0:
raise Exception()
except Exception:
print(‘b’)
continue
finally:
print(‘c’)
“`
## 実行結果2
“`sh
$ python3 loop.py
a
b
c
a
c
`

Mayaスクリプトの見分け方

MelとPythonでMayaスクリプトは記述されていますが、
「Maya Pythonモジュール」をimportすることで多様な書き方になっています。

そこで「Maya Pythonモジュール」を判別するための記事として以下の記述例を用意しました。
注意:「maya.mel」のみスクリプトエディターの「MEL」タブ、他は「Python」タブにて使用する想定で記述しています。


maya.mel

“`
string $selObjs[] = `ls -sl`;
for($selObj in $selObjs){
print ($selObj + “\n”);
}
“`

maya.cmds

“`
import maya.cmds as cmds
selObjs = cmds.ls(sl=1)
for selObj in selObjs:
print selObj
“`

“`
import maya.cmds as mc
mc.sphere()
“`
注:Autodesk公式で「cm

Python を EXE 化する

## Python を配布用に EXE 化したい
### 1. 環境

| 内容 | バージョン |
|:-|:-|
| OS | Windows 10 Pro (64bit) |
| Chrome | 92.0.4515.159 |
| ChromeDriver | 92.0.4515.107 |
| Python | 3.9.0 |
| selenium | 3.141.0 |

+ Visual Studio Code

| アイテム | バージョン |
|:-|:-|
| バージョン | 1.59.1 (user setup) |
| コミット | 3866c3553be8b268c8a7f8c0482c0c0177aa8bfa |
| 日付 | 2021-08-19T11:56:46.957Z |
| Electron | 13.1.7 |
| Chrome | 91.0.4472.124 |
| Node.js | 14.16.0 |
| V8 | 9.1.269.36-electron.0 |
| OS | Windows