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

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

【Databricks】作成したモデルをリモデルしてみる

この記事は株式会社ナレッジコミュニケーションが運営する [クラウドAI by ナレコム Advent Calendar 2021](https://qiita.com/advent-calendar/2021/knowcom-cloudai) の3日目にあたる記事になります。

こんにちは!
今回は前回作成したモデルをリモデルしていきたいと思います。

モデルというのは、時間がたち新たなデータが増えてくることで規則性などに変化が起こり、予測精度がだんだん落ちてしまいます。
それを解消するためにリモデルを行います。

今回は精度を上げるためにでデータの形式を変更するので、このデータに合わせてリモデルしていきたいと思います。
この記事は前回の続きなので、前回のものと合わせて実行してください。

## 精度向上のアプローチ
前回作成したモデルの精度を上げたいなと思いました。また、今回利用したデータは数10MBと小さいデータですが実際には大容量のデータを利用する機会があると思います。
それに対応するためにStarbucks がとったアプローチを参考に店舗ごと、アイテムごとに分散処理を行うよう

元記事を表示

ScriptForge Calc Demoを動かす

LibreOffice Advent Calendar 2021 12月3日の記事です。

LibreOffice Conference 2021で気になるものを見つけた。

LibreOfficeでPythonを使ってマクロを書ける。
それもUnoとかBasicのややこしい記述を使わずに。
素晴らしい。

サンプルの資料もGitHubに公開されている。
Youtubeの動画通りに動かしてみようと思う。

## 環境

– LibreOffice Calc
– Windows10/11 Pro
– Git

下記の資料をGit Cloneしてくること。

https://github.com/rafaelhlima/LibOCon_2021_SFCalc

## やり方

### 発表資料を取得

GitHubに置いてあります。
Git Cloneで入手します。

“` ps1:git_clone
PS> git clone https://github.com/rafaelhlima/LibO

元記事を表示

Raspberry Pi Zeroでイルミネーションする

# この記事について
クリスマスなので、Raspberry Pi Zeroでイルミネーションしてみました:christmas_tree:

![iOS の画像 (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502127/8da1971a-582a-bf16-53c9-c87e9689b8ef.jpeg)

# コード
“`
import RPi.GPIO as GPIO
import time

Led_red_pin = 17
Led_green_pin = 27
Led_blue_pin = 4

GPIO.setmode(GPIO.BCM)
GPIO.setup(Led_red_pin, GPIO.OUT)
GPIO.setup(Led_green_pin, GPIO.OUT)
GPIO.setup(Led_blue_pin, GPIO.OUT)

def main():
try:
while True:
blinking_led(Led_red_pin, 3)

元記事を表示

ユニットテスト大事なのでちゃんと勉強した話

# まえがき

私は、弊社の案件で運用しているAIシステムで、主にバッチ処理を定期的に動かしたり、リリースを管理したりと、アルゴリズム開発というよりは主にインフラ側の保守を担当しています。

納期が短かったため、開発当時は「本番環境でバッチが動けばオッケー牧場!」というマインドで運用していました。
事前テストも、あらかじめ本番環境に近い環境で動かして、正常に動くことを目視確認していました。

本当は、モジュールも1つずつテストしたいんですよね。

## なんでテストが必要なの?

でも、テストって、ぶっちゃけめんどくさいですよね、書くの。
コードの実装がすでに頭に浮かんでいて、さっさと実コードを書いてしまいたい場合が多いと思います。
「動いてんだからいいじゃん!」実際、私もそうでした。

しかし、ことデータシステムにおいては、次のようなケースがよくあることがわかりました。

* タイムゾーン無しの時刻型で処理していたと思いきや、タイムゾーンありだった
* 型体系の違いで、INT型で来るものと思って処理していたら、実はDOUBLEだった
* 処理の途中で、DataFrameに空行が入って

元記事を表示

大学の講義資料のダウンロードをPythonで自動化してしまった話

## 動機
僕の通う東京工業大学っていうFラン大学では、
講義資料や課題がOCWiっていう大学の管理してるウェブサイトに上がるんですけど
ログインするのに、毎回パスワードとマトリクスコードが必要です。
それだけでなく、クソみたいに古臭いWebサイトだし
めちゃめちゃ重いし、講義資料をダウンロードするだけでも一苦労なんですよ(汗…
ということで自動化してしまおうという発想に至りました。

まぁ、僕は設計しただけで、実装は友達がしたんですけど、同じような境遇にある大学生の役に立てればいいかなぁという事で。
ぜひ皆さんの大学でも実装してみてください。

# Iris(Interval request information service)
## 解決すべき課題(Issue to be Solved)

### 現状
– 更新された授業資料をダウンロードするのは手間
– 講義資料をダウンロードした人がSlackの各授業チャンネルにアップロードしている

### 課題
– めんどくせぇ

## UserStory

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

元記事を表示

CDKを使ってGitHub Actions OpenID Connect (OIDC) で多段 AssumeRoleする

この記事は ハンズラボ [AdventCalendar2021](https://qiita.com/advent-calendar/2021/handslab) 3日目の記事です。

#はじめに
今回は、こちらの記事のCDK化(Python)を行っていきます。
構成やcfnテンプレートなど詳細はこちらをご参照ください。

https://qiita.com/daisukeArk/items/a985bf6d2f03e9bd0306

# 前提条件
– [GitHub Actions OpenID Connect (OIDC) で多段 AssumeRole する](https://qiita.com/daisukeArk/items/a985bf6d2f03e9bd0306)を読み構成を理解していること
– CDKがインストールされ実行環境が準備されていること

# 実装
ではさっそくやっていきます。

#### 初期設定
ディレクトリを作成し、`cdk init`を実行してプロジェクトを立ち上げます。

“`terminal
$ mkdir github_oicd
$ cd git

元記事を表示

Airtestでほぼ円状にスワイプしてみる

#先にコードを掲載

ほぼ円状にスワイプ

“`Swipe_in_an_almost_circle.py
# -*- encoding=utf8 -*-
from airtest.core.api import *
import math

”’
x , y はスマホ内の座標
radiusは描く円の半径距離
”’

x , y = 540 , 1110
radius = 300

list = []
for i in range(39):
tuple = (x + math.sin(i/6) * radius),(y + math.cos(i/6) * radius)
list.append(tuple)

device().maxtouch.swipe_along(list,duration=0.02, steps=3)
“`

#Airtestってなんだ?
画像認識やUIの階層化により、ゲームテストをサポートする自動化フレームワークです。
簡単に言っ

元記事を表示

GitHub Actions と cibuildwheel を使ってarm64対応 wheel をビルドする

## 背景

最近はデスクトップでもサーバーでもARMが躍進しています。 macOSのApple Silliconはもちろん、LinuxでもAWSのGraviton2やRaspberry PiなどでARMマシンが多くの人に使われています。WindowsのARM版も今後増えてくるかもしれません。

Python拡張モジュールのメンテナとしては、そういった環境のためにバイナリwheelを提供してあげたいところですが、ビルド環境を用意するのが大変になってしまいます。そこで役に立つのが cibuildwheel です。

## cibuildwheelについて

公式サイト:

https://cibuildwheel.readthedocs.io/en/stable/

cibuildwheel はCI環境上で複数の環境向けのwheelをビルドするためのツールです。現在のCIごとの対応プラットフォームは下の表の通りです。(上記公式サイトより)
GitHub Actions では全てのプラットフォームがサポートされているのがわかります。

> ![image.png](https://qii

元記事を表示

import thisで親父の小言を表示する

この記事は、[ビットスター Advent Calendar 2021](https://qiita.com/advent-calendar/2021/bitstar-inc)の3日目です。

# はじめに

みんな大好きThe Zen of Python。pythonでimport thisすると出てくるあれです。

“`bash
$ python3
Python 3.8.10 (default, Jun 2 2021, 10:49:15)
[GCC 9.4.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
F

元記事を表示

【5分でfreeeアプリを作る】freeeアプリ・スターターパックを公開しました

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

本記事では、freeeアプリを作成するハードルを劇的に下げる**「freeeアプリスターターパック」という自作のひな形アプリ・ツールセット**を紹介します。このパックを使うと、**5分で0からfreeeアプリをデプロイしてAPIを叩けるところまで実装できます。**

デフォルトで作成できるアプリはこんな感じです。freeeとの認証・認可を通して、ウェブアプリでfreeeAPIを叩くとこまで出来ているのがわかると思います。
![freee-demo-3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1228813/6ee9204e-746d-f397-e586-1e4c2c451403.gif)

## freeeアプリでHello Worldするのが大変な2つ

元記事を表示

OpenCVの新しい顔検出を試してみる

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

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

OpenCVでは従来からHaar-like特徴量を用いたカスケード型分類器による顔検出やResNet10ベースのSSDモデル(OpenCV Face Detector)による顔検出が提供されてきました。

* Haar-like特徴量を用いたカスケード型分類器による顔検出
* [haarcascade_frontalface_default.xml](https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml)
* [cv::CascadeClassifier](https://docs.opencv.org/4.5.4/d1/de5/classcv_1_1CascadeClassifier.html)

元記事を表示

Anaconda/Minicondaのインストール/アンインストール自動化(Linux)

著者: 高久 隆史, 株式会社日立製作所

# はじめに
AnacondaやMinicondaは、Pythonのパッケージ管理を行うためのディストリビューションです。多数のライブラリを管理したPython実行環境として利用できます。
Anaconda/Minicondaのインストール/仮想環境構築/仮想環境破棄/アンインストールは、インストーラの実行やコマンドで実行しますが、何度も構築が必要なケースでは、それらのコマンドを毎回実行していくのに手間がかかります。

本稿では、Linux上で、このAnaconda/Minicondaのインストール/仮想環境構築/仮想環境破棄/アンインストールを自動化する手順を紹介します。
Windowsを前提とした手順は、次の投稿を参照してください。
[Anaconda/Minicondaのインストール/アンインストール自動化(Windows)](https://qiita.com/t-takahisa/items/bc4cc72687e72edd047c)

なお、本稿で利用しているcondaコマンドの細かい説明は記載しておりませんので、condaコマン

元記事を表示

5つのSlackアプリを立ち上げてみてわかったこと

昨年のSlack Advent カレンダーに参加して、2つのpostをしたのですが

https://qiita.com/geeorgey/items/656b59de6d738c740760

https://qiita.com/geeorgey/items/f117ee14a85c07ef8ea9

それの続きでSlackアプリの開発をすべく時間を使ってみた所、今年は3つのアプリをリリースすることが出来ました。

– OYASUMI bot https://lne.st/oyasumilink
– TIPS https://lne.st/tips
– TimeLine for Slack https://lne.st/wr21
– YOKOKU for Slack https://lne.st/4cdy
– TASUKARU-TaskALL- https://lne.st/3x1u

## 関連記事
https://qiita.com/geeorgey/items/e52cf443c6d991264f3c

https://qiita.com/geeorgey/items/473

元記事を表示

AWS CloudWatch Logs Agentに埋め込みメトリクスを(力技で)導入する

# TL; DR

CloudWatch Agentが使えたら、そちらを使いましょう。

# はじめに

CloudWatch Logsには、埋め込みメトリクス (Embedded Metric) という機能が存在します。
こちらを利用すると、CloudWatch Logsに含まれる情報を、自動でCloudWatch Metricsへ転送してくれます。
ログファイルの構造とメトリクス抽出の設定を二重管理する必要がなくなるため、非常に便利な機能です。

> [高カーディナリティログの取り込みと CloudWatch 埋め込みメトリクスフォーマットによるメトリクスの生成 – Amazon CloudWatch](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html)

現在ではCloudWatch Agentを使用することが一般的ですが、かつては、CloudWatch Logs Agentというツールを使ってログファイルをCl

元記事を表示

boto3からの解放。python3の標準ライブラリのみでAWSサービスを取り扱うには

# 概要
こんにちは! KDDIアジャイル開発センターの小板橋です。
今回の記事は、KDDI Engineer & Designer Advent Calendar 2021の3日目の記事となります。

ある日、こんな要望が舞い降りてきました。
「python3の標準ライブラリのみでAWSサービスに対して操作(今回は、S3に対するCRUD操作-GetとPostに限定)できるようにして欲しいな。」

そんな時に、どうやってあの便利なboto3を使用せずにこの要件を満たせるかを検証してみたというものです。

# boto3のDEBUGログ
* boto3依存をやめるとなると、まずやらなければならないのはboto3が何を隠蔽してくれているのかを確認する必要があります。
* まあ、単純に言えば[Boto3がどんなREST APIのリクエスト](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/RESTAPI.html)を投げているのかを確認すればよいのです。
* そこで、Boto3でDEBUGログを出力してあげると簡単にRE

元記事を表示

動いて書いてダイエット! MediaPipeで文字書き用フィットネスプログラム作ってみた【PunchWriter ver0.1】

#はじめに
先日、健康診断に引っ掛かりました。腹回りがヤバい著者です。

在宅ワークが普及しつつある昨今。みなさんは体を動かしていますか?
特に座り仕事だと、ついつい運動不足になりがちです。
肩こりもつらいですよね。

そんなあなたと私の問題を解決するプログラム「**PunchWriter**」を作ってみました!
なんとこれがあれば、**体を動かしながら仕事ができます!!!**

#目次
– [PunchWriter とは](#punchwriter-とは)
– [PunchWriter のつか

元記事を表示

pandas入門

#目次
[1.はじめに](#1-はじめに)
[2.pandasとは](#2-pandasとは)
[3.pandasのインポート](#3-pandasのインポート)
[4.pandasのデータ構造](#4-pandasのデータ構造)
[5.データの読み込みと加工](#5-データの読み込みと加工)
[6.おわりに](#6-おわりに)

#1. はじめに
最近[GCI](https://gci.t.u-tokyo.ac.jp/gci-2021-winter/)やE資格取得に向けた[プログラム](
https://www.skillupai.com/)を受けている真っ最中の初学者です。
この記事ではpandasの機能についてまとめていきます。

#2. pandasとは
– pandasとは、プログラミング言語pythonにおいてデータ解析を支援する機能を提供しているオープンソースのライブラリです。データサイエンスの分野では、機械学習前の前処理(データの加工・整形)などで多く使用されます。
– できること
– csv,xlsxなどのデータの読み込み
– 加工, データの抽出
– 欠損値の

元記事を表示

Tensorflow.kerasとkeras混ぜてモデル作って死にかけた話

モデルを作ろうと思ったきっかけは,ファインチューニングしてみよう!という試みからである.
Kerasとか知らんけどまあ前記事にしたRAscore参考にすればええやろ!の気持ち.このコードが曲者だったのが全ての元凶___

#失敗
以下のようにコードを書いてみた.

“`python:test_ng_model.py
import numpy as np
import pandas as pd
import tensorflow as tf
from tensorflow.keras.models import Model
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.losses import binary_crossentropy
from keras.layers import Input, Dense, Dropout

#作成したレイヤを順番に保存しておくリスト
layers = []

#入力層の作成
inputs = tf.keras.Input(shape=(3,))
layers

元記事を表示

【Python】型ヒントと抽象基底クラス ~○○クエストを添えて~

## 前書き
この記事は[JSL(日本システム技研) Advent Calendar 2021](https://qiita.com/advent-calendar/2021/jsl)の記事です
結構殴り書きしたため、誤字等ございましたら:pray:

## 環境
* python: 3.9.1
* windows10

## 本編の前に
本編の前に、今回使用する型ヒント君と抽象基底クラス君について触りだけ紹介したいとおもいます

### 型ヒント君?
Pythonの関数や変数に型のヒントを付けれるよっ!って機能です
記述方法が複数あるため、その時々のベストプラクティスを調べることをお勧めします

“`python
b: int = 1
c: str = ‘str’

def add(x: int, y: int) -> int:
return x + y
“`

list等に関しても適用できます

“`python
str_list: list[str] = [‘py’, ‘thon’]
multi_tuple: tuple[int, str, int] = (10,

元記事を表示

【MeCab】MeCabをインストールしてAnacondaで使えるようにする(Windows)

## 環境
+ Microsoft Windows 10.0.22000.318(21H2)
+ PowerShell 7.2.0
+ Anaconda 4.10.3
+ Python 3.8.8

## 手順
### 1. WindowsにMeCabをインストール
32bit版 -> MeCabの公式サイトからダウンロード
64bit版 -> [こちら](https://github.com/ikegami-yukino/mecab/releases)から最新版(Latestと書かれているもの)をダウンロード(2021/12/02現在は[mecab-64-0.996.2.exe](https://github.com/ikegami-yukino/mecab/releases/download/v0.996.2/mecab-64-0.996.2.exe))

:::note warn
文字コードは「UTF-8」を選択する
:::
![スクリーンショット (11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

OTHERカテゴリの最新記事