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

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

つみたてNISAの損益をスプレッドシートに保存

この記事は、[シアトルコンサルティング株式会社 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/seattleconsulting)の4日目の記事です。
こんにちは、シアトルコンサルティングの松縄です。
現在は、エンジニアとしてWebサービスの開発に携わっています。

## はじめに
みなさん、つみたてNISAはやっていますか?
僕は1年くらい前からやり始めていて最近は順調に上がっていて安心しています。
さて、今回とある証券会社のサイトでスクレイピングをしてみようと思ったのは、**自動化**をしたいなと考えたからです。

僕は最低でも1日1回は口座状況を見るようにしています。chromeでパスワードは保存できるからすぐログインできますが少し面倒でした。それに日毎に見て少し増減があってもよほど変わらない限り気付けないんです。

そこで、今回作ったPython + AWS Lambda + Spreadsheet + LINEのシステムで日毎の損益を残しつつ、週毎だったり月毎だったりの増減も見れるようにしてみました。

元記事を表示

BLE(Bluetooth Low Energy)を人力で解析する

# はじめに
この記事は『BLEってなんだろう?』というレベルの方が読み物として読むことと、『BLEの解析したいけどやり方わからんからググって見つけた』というようなレベルの方が方法を見つけるために読むことの二通りを想定しています。
前者の場合は初めから、後者の場合は [BLEの概念](#bleの概念)または、[BLEの解析](#bleの解析)から読んでいただくと無駄がないかもしれません。

# BLEとは
BLEとは `Bluetooth Low Energy`のことで、その名の通り、より低電力で扱えるようにしたBluetoothの拡張の一つです。
従来のBluetooth(BLEと比較して、Bluetooth Classicと呼ばれます)よりも通信距離が短く通信速度もかなり劣りますが、ボタン電池で何年も動作するので、昨今のIoTブームでは引っ張りだこの技術になっています。

実際に、あなたがAmazonやらIKEAやらで何かしらのIoT機器・遠隔操作ができるようなアイテムを買った時、その一部はBLEで通信しているほど、我々の生活に浸透しています。

# モチベーション
Appleスト

元記事を表示

【python】MediapipeとOpenCVでリアルタイムの顔フィルター

# TL;DR

ノートブックは[こちら](https://github.com/YomamaBanana/Mediapipe-python/tree/main/src)

# はじめに

今までの記事をあらすじ:

1. [Mediapipeを用いて口紅を塗る]() (1/4)
1. [Mediapipeを使って「お化粧」をしてみた](https://qiita.com/YomamaBanana/private/cb2c72ffd4bdce374f32) (2/4)
1. MediapipeとOpenCVを用いてリアルタイムで「お化粧」(3/4) ← ここ
1. WEB会議などで自前の顔フィルタを実装 (4/4)

今回は前回作成したフィルターを用いて、PCカメラやUSEカメラの画像に対して適用させる。これが我々が目指す目標「**WEB会議やビデオ通話などの場面で顔のフィルターを自前で実装**」において核心となるもの。

# 手順

今回の場合は画像データをリアルタイムで取得する必要があるため、ノートブックではなく.pyファイルにする。
また、今回のフォルダ構成は下記の通りである

元記事を表示

Google Docs APIを使って、索引を作成する

はじめまして、記事を読んでいただいてありがとうございます。
この記事は『[LITALICO Engineers Advent Calendar 2021](https://qiita.com/advent-calendar/2021/litalico)』の4日目の記事です。
私は、2021年4月にLITALICOに入社をしまして、ドメイン知識が0の状態から、周りの方に助けていただいて、どうにかこうにかプロダクト開発に携わっています。

そんな私としまして、ドメイン知識について、効率的にinputを行いたいと常日頃考えております。
誤解がないように記載しておきますが、周囲からフォローがないという訳ではありません。むしろ、丁寧に教えてくださるのですが、誰かに教わるということは、その方の分のコストも使わせていただくわけで、自分一人で調べて、ちゃんと理解できるなら、コスト効率高いよねと考えた次第です。
職場へのフォローを忘れない組織人の鏡

他にも色々方法を考えたのですが、まずは、大量にあるドキュメントから、自分が必要としている情報を探すをゴールに、Google Dr

元記事を表示

OpenpyxlでExcelシートのセル幅を自動調整させる[日本語対応,フォントサイズ対応](1)

#Openpyxlでエクセルの個別セルを自動調整
友達からエクセル表示をセルの中身に合わせて幅を整理(印刷)したいと要望受けたので、エクセルのセル幅を自動調整するマクロを作ってみました。
サイトを調べると、単純なセル文字数だけをカウントしてセル幅を調整するサンプルしかなかったので下記を考慮したマクロを作ってみました
(文字の長さを単純にカウントすると、半角文字も全角文字も1文字としてカウントされてしまいます)
・日本語(全角文字列)を考慮する
・フォントサイズを考慮する
・フォント自体のピクセルサイズ

例えば↓のようなエクセルがあり、セル幅を自動調整してくれます。

元ファイル(width_before.xlsx)
![before.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506495/71f9b813-95ef-96fc-73d3-199796cab7ef.png)

変換結果ファイル(width_result.xlsx)
![result.png](https://qiita-image-s

元記事を表示

Python タプル

#はじめに
基礎から定着させていこうということでタプルについてまとめました。
Python 3.8.2

#タプルの作成
“`python:tuple.py
t = (1,2,3,4,5)

print(“t is”,type(t))
print(t)
“`

“`:出力結果
t is
(1, 2, 3, 4, 5)
“`

要素が一つでもタプルは作成できるが、「,」を忘れずに

“`python:tuple.py
t1 = (1,)
t2 = 1,

print(“t1 is”,type(t1))
print(t1)
print(“t2 is”,type(t2))
print(t2)
“`

“`:出力結果
t1 is
(1,)
t2 is
(1,)
“`

#タプルの要素の追加
“`python:tuple.py
t = (1,2,3,4,5)
print(t[0])
t[0] = 10
“`

タプルに要素を追加しようとするとエラーが発生する

“`:出力結果
1

元記事を表示

VisualStudioのPythonエディターで「行コメントの切り替え」をしたい

この記事はちょっとしたツール紹介です。

#はじめに
以前Pythonの開発はGoogleColaboratoryやVSCodeを利用しており、「行コメントアウトの切り替え」を「Ctrl + /」で行っていました。
ただ最近はVisualStudio2019で開発しているのですが、「行コメントアウトの切り替え」ができないことに気が付きました。

「編集」-「詳細」からコメントアウトなどに関連する項目があるのですが、Pythonのファイル表示時には「行コメントアウトの切り替え」がありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581889/57a1e605-c7ed-a69a-ee94-24744cc2ec80.png)

Pythonのファイル表示中に、デフォルトで割り当たっている「Ctrl + K, Ctrl + /」を押すと、以下のエラーとなってしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

ミクロ経済学シミュレーション(1)神の見えざる手を可視化する

# はじめに

 近年、貧富の格差の拡大や富の分配、あるいは成長と分配といった言葉を良く耳にします。私たちの暮らしにおいても、消費税や所得税など税の負担は年々増していくように感じられます。国債残高が1千兆円を超え、支出と収入のバランスにも大きく課題を抱える日本経済ですが、MMT理論などの新しい貨幣理論も提唱されています。このような複雑で重要な経済を解き明かす学問が経済学ですが、プログラミングとシミュレーションによってより良く理解していきたいというのがこの記事の趣旨です。

 今回は、経済学の基本である需要と供給に関して、あるルールに基づいたシミュレーションにより、いわゆる「神の見えざる手」がいかに実現されるかを見てみたいと思います。そして、消費税が総生産や消費者余剰、生産者余剰に与える影響を考察してみたいと思います。

 また、今回のシミュレーションをインタラクティブに行えるWEBアプリを以下で公開しています。

[Demand and supply balance: Streamlit](https://share.streamlit.io/okimebarun/05_micro

元記事を表示

MinMaxScaling の外れ値の影響について

##

### MinMaxScaling とは

数値型の変数を特定の区間に収まるように変換する処理のこと。例えば、10 から 990 の範囲に分布する変数を 0 ~ 1 の範囲になるように変換するなど。ニューラルネットなどの学習において、異なる範囲の数値型の変数を持つデータ(例えば、年齢や収入など)をそのまま利用すると、収束が遅くなるなどの問題が出る。

MinMaxScaling についての数式は下記。

“`math
x’ = (x – x_{min}) / (x_{max} – x_{min})
“`

上限値や下限値がある程度決まっている・外れ値がない変数に使用することに注意が必要。本記事では、外れ値がある場合の影響について確認する。

## ライブラリの準備

“`python
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
“`

### データの準備

データの概要については[Automobile Data Set](https://archive.ics.uci.edu/

元記事を表示

PythonとRとVBAでCyREST API

Cytoscapeを自動化するためのCyREST API。
PythonとRとVBAの3種類で使う必要があったのでメモしときます。

#環境
**Windows7(32bit)**
**Cytoscape 3.6.1**
**Python 3.8.3**
 モジュールrequestsとjsonをインストールしておきます。
**R 3.5.2**
 パッケージhttrとjsonliteをインストールしておきます。
**VBA Access 2010**
 Jsonを使うため、[こちら](https://github.com/VBA-tools/VBA-JSON)からJsonConverter.basを拾ってきて、プロシージャに追加しておきます。
 文字コードはUTF8を使うので、[こちら](https://qiita.com/yamashiroakihito/items/9b609653fef6fa8a5ab2)のUTF8変換用コードもプロシージャのどこかにコピペします。
 参照設定で”Microsoft Scripting Runtime”と”Microsoft XML v6.0″を有

元記事を表示

NetworkXで経路探索をやってみる。<グラフにコスト追加〜探索した経路を可視化する>

#はじめに
[前回、NetworkXでグラフの作成と、A*アルゴリズムを使って経路を探索しました。](https://qiita.com/tentsukup_channel/items/dbbf3581cb40e44610e4)

今回は、**グラフにコストを追加して、経路探索してみます。**
また、**ノードとエッジに色をつけて、経路を可視化してみます**

日常生活の中で、目的地への経路を考えるとき、近道 or 遠回り、混みやすい道 or 比較的空いている道、なども考慮することがあります。
これらは、**コスト**で表現していきます。
通常は、隣接するノード間の”距離”を、コストにすることが多いです。

今回のアウトプットは、下図です。
![astar_bunseki2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1902761/ce5c4806-22e5-ce33-4927-7c12b7cf8bb1.png)
導出した経路を青色で着色しています。エッジ中央の数字がコストです。
コストのラベルに加

元記事を表示

Slackを愛する者として、社内のスタンプ利用ランキングを知りたい。

# Introduction

## きっかけ
在宅勤務も多くなってきた昨今、チャットやテキストでのコミュニケーションにはスタンプなどを用いて、感情表現する機会が多くなっています。

現職のSlackには、前職と比較して多くのスタンプが使われています。いわゆるカスタム絵文字というものですが、非常にユニークなものも多く毎日新たな発見があります。そこで今回は、SlackのAPIを用いて、どんなスタンプが使われているのかを調査してみました。

なお個人が特定されるような公開できないスタンプ等がある場合は、加工いたします。あらかじめご了承ください。

## 結論
上位10位までの結果はこのようになりました。

![slack_result.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262742/3e7d3101-a406-1377-197b-a2b0303b90ae.png)

下記の条件を調査対象としています。
・全ての公開チャンネル:855件。(アーカイブされたものも含む。2021年12月2日時点)

元記事を表示

Webex Meetingsの仮想背景を自動的に切り替える

# はじめに

この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2021 (2枚目)の 4日目です。
2017年版: https://qiita.com/advent-calendar/2017/cisco
2018年版: https://qiita.com/advent-calendar/2018/cisco
2019年版: https://qiita.com/advent-calendar/2019/cisco
2020年版 1枚目: https://qiita.com/advent-calendar/2020/cisco
2020年版 2枚目: https://qiita.com/advent-calendar/2020/cisco2
2021年版 1枚目: https://qiita.com/advent-calendar/2021/cisco
2021年版 2枚目: https://qiita.com/advent-calendar/2021/cisco2 <---こちら 本記事は昨年の Cisco Systems Ja

元記事を表示

FCMのPythonSDKでの通知メッセージ・データメッセージ・APNsの利用

# 通知メッセージとデータメッセージとAPNs
FCMのメッセージ配信は、通知メッセージとデータメッセージが存在します。通知メッセージはFCMが用意したフォーマットで配信することで、PUSH通知を送ることができます。PUSHメッセージはPUSH通知で利用するデータを送信し端末のアプリ側で処理を行います。またiOSの場合はAPNsを利用した配信も可能です。

# PythonSDKでのメッセージ配信
PythonSDKのリファレンスは以下になります。

https://firebase.google.com/docs/reference/admin/python/firebase_admin.messaging?hl=ja#notification

## 通知メッセージでの配信
以下のようにnotificationを指定することで通知メッセージでの配信ができます。

“`python
notification = messaging.Notification(
title=’プッシュ通知’,
body=’プッシュ通知が来たよ!’,
image=’hoge://yyyyyy

元記事を表示

shotcutのタイムラインに動画を追加する

# 目的
前回記事[「Pythonとffmpegで動画の無音部分をカットする」](https://qiita.com/igapon1/items/3faa83fc8af1543bc672)により、たくさん動画を作ったので、shotcutのタイムラインに追加する処理を作ってみた。

# 背景
前々回記事[「shotcutで動画作ってyoutube投稿してみた」](https://qiita.com/igapon1/items/5486f187d7751af2ddd5)、前回記事に引き続き、shotcutのmltファイルを直接加工して、動画を追加するpythonコードを作ってみた。

# 環境

– Windows10 バージョン21H1(OSビルド19043.1348)
– Python3.9.1
– Shotcut 21.10.31

# セットアップ
以下の記事のセットアップを参照のこと。
前回記事[「Pythonとffmpegで動画の無音部分をカットする」](https://qiita.com/igapon1/items/3faa83fc8af1543bc672)
前々回記事[

元記事を表示

逆翻訳を使って日本語テキストデータを拡張(水増し)してみた

# はじめに
こんにちは、NTTドコモ サービスイノベーション部の稲子です。
本記事は、[NTTドコモR&D Advent Calendar 2021](https://qiita.com/advent-calendar/2021/nttdocomo)の4日目の記事です。
普段の業務ではチャットボットの開発・運用に携わっています。
今回は、逆翻訳によるテキストデータの拡張方法の紹介と文書分類タスクでの実験をしていきたいと思います。

# 逆翻訳とは
逆翻訳は言語処理分野でのデータ拡張 (Data Augmentation) の手法の1つです。
データ拡張とは、既存のデータに処理を行い擬似データを生成するテクニックで、深層学習モデルの作成で大量の学習データが必要な場合によく用いられます。
逆翻訳では、下の図のように元の文を他言語で翻訳しその翻訳文を元の言語で翻訳し直すことで、元の文の意味は保ったまま表現の言い換えを行います。
![逆翻訳](https://amitness.com/images/nlp-aug-back-translation.png)

# 1. 逆翻訳でデータを水増し

元記事を表示

バックテスト時のパラメータの保持と文字表現に関わる工夫

みなさん、はじめまして!
兼業botterの8oki(やおき)です。

今年の [仮想通貨botter Advent Calendar 2021](https://qiita.com/advent-calendar/2021/botter) では、バックテスト時に工夫している点を紹介します。

# なぜ工夫しようと思ったか
バックテストにおいて、設定やパラメータの過剰最適化はあまりよろしくないのですが、
傾向を探るために過剰でなくても、複数の設定を試すことはよくやると思います。

例えば、短期と長期の移動平均のクロスでドテンするストラテジーを試すとして、
取引対象の銘柄・時間軸では順張り傾向が強いか、などということを外観として知りたいとします。
すると、以下のような形で集計することになるのですよね。

|短期移動平均 |長期移動平均 | 総損益
|:—:|:—:|:—:|
|5 |25 |-200 |
|5 |50 |-100 |
|5 |75 |50 |
|10 |25 |100 |
|10 |50 |200 |
|10 |75 |170

元記事を表示

freeeの人事労務APIを使ってSlackから年休登録できるようにする

※この記事は[アドベントカレンダーfreee APIで業務を楽しく便利にハックしよう!2021](https://qiita.com/advent-calendar/2021/freee-api)の4日目の記事です。

# 前置き
こんにちは。
[株式会社dott](https://thedott.io/)でエンジニャーをしているHALと言います。

弊社では、人事労務管理に人事労務freeeを利用しており、さらにSlack botからAPIを利用して、出退勤・休憩の管理をやっています。
Slack botにメンションを送ると、返事が返ってきて、さらにfreeeに出勤・退勤時刻が打刻されます。

![仕事開始の表明例](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571256/a6fdc708-590f-1cd6-3dfa-a4cc53381865.png)

Slackで仕事開始を表明するだけで打刻される、という手軽さが最高ですね。
また、botの返答も複数パターン登録してあるので、そのやりとりも結構楽しいで

元記事を表示

【Python】for文で回せるオブジェクト

昨日の[@nyaxさんの記事](https://qiita.com/nyax)は、GPT-3についてでした!
[MYJLab Advent Calendar 2021](https://qiita.com/advent-calendar/2021/myjlab)の4日目はPythonのfor文についてです。

# はじめに
Pythonのfor文は、range、リスト、辞書、文字列など様々なオブジェクトを回すことができます。
では、for文で回すことのできるオブジェクトとはどんなオブジェクトなのでしょうか。

今までなんとなーく雰囲気で使っていたfor文について整理してみました。

PythonのバージョンはPython3.8.2です。
# for文で回せるのはイテラブルなオブジェクト
いきなり結論を書いてしまいますが、for文で回せるのは「イテラブルなオブジェクト」です。
「イテラブルなオブジェクト」とは次のいずれかに該当するオブジェクトです。
1. \_\_iter__ メソッドを定義したオブジェクト
2. \_\_getitem__ メソッドをシーケンスとして定義したオブジェクト

元記事を表示

OpenCVの新しい顔認識を試してみる

この記事は[OpenCV Advent Calendar 2021](https://qiita.com/advent-calendar/2021/opencv)の4日目の記事です。

## 新しい顔検出/顔認識のAPI

OpenCV 4.5.4から新しく顔検出/顔認識のAPIが実装されました。

* [cv::FaceDetectorYN](https://docs.opencv.org/4.5.4/df/d20/classcv_1_1FaceDetectorYN.html) … YuNetによる顔とランドマークの検出
* [cv::FaceRecognizerSF](https://docs.opencv.org/4.5.4/da/d09/classcv_1_1FaceRecognizerSF.html) … SFaceによる顔の認識