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

Python関連のことを調べてみた2022年06月09日
目次

誰よりも易しくAWS LambdaにHello World!!

# はじめに
WEBアプリ的なのをさっくり作ってみたくなりいろいろ方法調べてたのですが、
サーバ周りのこと全くわからんな…となったので
サーバレスなやつならさっくりいけるんちゃうか!(安直)
と思い、AWSの機能組み合わせればなんかできそう!という感触を得たので
まずはLambda触ってみますという記事です。

本格的なアプリ作りこむ前にいくつか実験したいことがあるの
できたところからちまちま記事にしていけたらと思います。

# AWS Lambdaとは
公式の概要は[こちら](https://aws.amazon.com/jp/lambda/)

私のざっくりとしたイメージは、
AWS他サービスでのイベントなどをトリガとしてなんらかの処理を行うものを
特に実行環境用意することなく用意できちゃう!というものです。
またサポートしている言語としてJava、Go、PowerShell、Node.js、C#、Python、Ruby があり
お好きな言語で書けちゃうというのもありがたポイントな気がします。
公式によると「関数の作成にその他のプログラミング言語を使用できるようにするための R

元記事を表示

PythonとGridDBを用いたマルチクラステキスト分類

インターネット上には、日々膨大な量のニュースを提供するソースが存在します。また、ユーザーの情報に対する要求も高まり続けており、ユーザーが興味のある情報に素早く、効率的にアクセスできるようなニュースの分類が重要です。マルチクラステキスト分類のモデルを用いることで、ユーザは、追跡されていないニュースのトピックを特定したり、事前の興味に基づいた推薦をしたりすることができるようになります。そこで、ニュースの見出しと短い説明を入力とし、ニュースのカテゴリを出力とするモデルを構築することを目指します。

我々が取り組む問題は、BBCニュースの記事とそのカテゴリの分類です。テキストを入力として、そのカテゴリが何になるかを予測します。カテゴリには、ビジネス、エンターテイメント、政治、スポーツ、テクノロジーの5種類があります。

チュートリアルの概要は以下の通りです。

1. 前提条件と環境設定
2. データセット概要
3. 必要なライブラリのインポート
4. データセットの読み込み
5. データのクリーニングと前処理
6. 機械学習モデルの構築と学習
7. まとめ

## 1\. 前提条

元記事を表示

[備忘録]Dockerとは?

概要

Dockerの勉強をする際に
・Dockerってなんだ?
・仮想マシン(VM)と何が違うの?
・メリット、デメリットは?
となったので、書き留めます。

Dockerとは

Dockerとは、コンテナ型の仮想サービスを提供しているパッケージのこと
Dockerを使うことで、ソースコードや構築が面倒な実行環境などを配布したりできる(イメージ化)

Dockerイメージとは

Dockerの説明に”Dockerイメージ”という言葉がよく使われますが、なんでしょう?
これは実行環境や実行に必要な変数、メタデータなどを含んだ動作環境テンプレートです。
Dockerイメージを作成する場合、Dockerfileというものが必要となります。

Dockerfileとは

Dockerイメージを作成するための設計図のようなもので、どんな構成にしたいかなどをテキストファイルに打ち込み、それを元にDockerイメージを作成することで、処理の一元化が可能になる、というものです。

Dockerイメージを使用する際に押さえて

元記事を表示

900万レコードを20秒で空間結合しちゃうGISデータの分散処理基盤「dask-geopandas」で効率よくデータ処理しよう!

## 初めに

こちらの記事などでを紹介していきましたが、ファイルを読み込んだ後には当然、何かしらの処理を行うと思います。

– [GeoPandasをやるならFlatGeobufより10倍早いGeoParquetを使おう!](https://qiita.com/nokonoko_1203/items/a01168096c2d4c2d6914)
– [GeoPandas(GeoDataFrame)のread/writeなら1000万レコードを10秒で読み込めるpyogrioを使って高速に行おう!](https://qiita.com/nokonoko_1203/items/70080d539eae083e9ca7)

大きなデータを処理する際に、数十GB級のデータだとデータの読み込み自体を高速で完了させたとしても、空間検索に膨大な時間を要したり、そもそもデータがメモリに乗り切らず処理できないということもあるでしょう。

こんな時には分散・並列処理などを行うのが一般的ですが、GISデータでそれを行うためのパッケージが存在しています。

[dask]([https://dask.org/]

元記事を表示

ABC254 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder

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

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

更新時はツイッターにて通知します。

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

# A – Last Two Digits Dif:7

https://atcoder.jp/contests/abc254/tasks/abc254_a

Nを文字列として受け取りましょう。
そうすればNの左端を0文字目、真ん中を1文字目、右端を2文字目として答えは
(Nの1文字目)+(Nの2文字目)
となります。
Nの1文字目はN[1],2文字目はN[2]と表します。
文字を連結するときは単純に「+」でくっつければOKです。

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

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

元記事を表示

オライリー書籍紹介 2022年6月[O’Reilly]

5月6月に発売されたオライリーの書籍を紹介します。
***
[動かして学ぶAI・機械学習の基礎[Amazon]](https://www.amazon.co.jp/%25E5%258B%2595%25E3%2581%258B%25E3%2581%2597%25E3%2581%25A6%25E5%25AD%25A6%25E3%2581%25B6AI%25E3%2583%25BB%25E6%25A9%259F%25E6%25A2%25B0%25E5%25AD%25A6%25E7%25BF%2592%25E3%2581%25AE%25E5%259F%25BA%25E7%25A4%258E-%25E2%2580%2595TensorFlow%25E3%2581%25AB%25E3%2582%2588%25E3%2582%258B%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%2594%25E3%2583%25A5%25E3%2583%25BC%25E3%2582%25BF%25E3%2583%2593%25E3%2582%25B8%25E3%2583%25A7

元記事を表示

Qiitaトレンドから気になる記事を自動で取得してDiscordへ

# はじめに
Qiitaのトレンドから気になるタグの記事だけ取得出来たら便利だなぁ~と思い、
せっかくならDiscordで流して情報共有できるようにしようと決意しました。
会社で使用する技術の情報収集/共有を効率化したい方はぜひ最後までご覧ください。

それでは始めましょう!

# 目次
* 参考文献
* 事前準備
* APIを取得する
* 送信先のDiscordサーバーのWebhook URLを取得する
* Pythonでコーディング
* 検索タグを設定
* Qiita APIを叩いて、検索タグに該当する記事のURLを取得する
* APIでトレンド記事の情報を取得する(json形式)
* 記事ごとにリンクとタグを取得する
* 検索タグに該当するURLのみ取得する
* POSTリクエストを送る
* おつかれさまでした

# 参考文献
こちらの記事/ドキュメントを参考にさせていただきました。
* [Netlify Functions を使って Qiita のトレンド API を非公式で作ってみた](h

元記事を表示

Python 書籍 [2022年6月]

2022年の5月,6月に発売されるPythonの書籍を紹介します。
***
[Pythonで学ぶあたらしい統計学の教科書 第2版[Amazon]](https://www.amazon.co.jp/Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%81%82%E3%81%9F%E3%82%89%E3%81%97%E3%81%84%E7%B5%B1%E8%A8%88%E5%AD%A6%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E7%AC%AC2%E7%89%88-AI-TECHNOLOGY-%E9%A6%AC%E5%A0%B4/dp/4798171948/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=1654698362&sr=1-2)
![a1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702119/a5ea79e1-ceb0-8583-5aca-9997e6455aea.jpeg)

– 第1部 統計学をは

元記事を表示

【初投稿】Google Magenta でファイナルファンタジーの戦闘曲を学習させて新曲を作る試み

初めまして!
Qiita初投稿です。

自身の初学習成果を備忘録も兼ねて投稿します。
初学者向けの内容です!
開発環境は少し古いです?
Magentaを導入して自動作曲アートとして何か面白いアイデアの参考になればと思います。
海外でもニルヴァーナの曲を学習させて新曲作ってみたというケースがありますが、この記事記載の手法(に近い)で作成されたものだと考察します。

先に謝っておきます。
本記事は超絶長文です。
ごめんなさい?

# ■目的
既存のコンテンツ(ドラクエ、FFなど戦闘曲)を複数のシリーズ楽曲(SMF,.midファイル)を学習させて、次回作(となるような)シリーズ楽曲を生成するモデルを構築する。

# ■最終成果物だけ先に確認したい方はこちら
#### 音量注意↓

AI生成のメロディデータを再生【Chro

元記事を表示

マジで0からDjango② 諸設定編 – settings.py を編集しよう

# 現在の状況

さて、[前回](https://qiita.com/aogumobc/items/7244cf5bae829b0652f2)せっかくブラウザ上で表示するところまでこぎ着けたわけだが、
“`diff:現在のディレクトリ構成
dev/django
– └─── mysite
├─── manage.py
├─── myapp
│ ├─── migrations
│ │ └───__init__.py
│ ├─── __init__.py
│ ├─── admin.py
│ ├─── apps.py
│ ├─── models.py
│ ├─── tests.py
│ └─── views.py
– └─── mysite

元記事を表示

SVMの学習セットのフォーマット(CSVファイル)

今回はSVMを行う際に必要なデータのフォーマット形式を紹介します。
以下の2種類の方法を紹介します。

①トレーニング用のCSVファイルデータとテスト用の配列データを用いる方法
②トレーニング用とテスト用のCSVファイルデータを用いる方法
***

手の座標の見本です。
![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702119/54becfa8-b2f2-b1ef-5da7-dbcb80cc249d.jpeg)

・[MediaPipeで取得した座標データの統一化の方法[CSVファイル]](https://qiita.com/netineti512/private/adf23a6fee757668c1dc)

上記のサイトで取得した「P1〜P20」を説明変数とし、21番目に「pose」の変数を加え、画像データに該当する手の形の値を加える。それを目的変数とする。
|poseの値|手の形|
|—|—|
|0|手を挙げている|
|1|goodのポーズ|
|2|中指立てる|
|3|口に人差し

元記事を表示

PythonのMediaPipeを使い、動画ファイルの手を認識し、CSVファイルに座標データを保存する方法

今回はPythonのMediapipeを使い、動画ファイルの手を認識し、手の座標データをCSVファイルに保存する方法を紹介します。
動画ファイルを画像ファイルに変換してから、Mediapipeを使います。
***

>ライブラリのインストール
“`
pip install opencv-python
pip install glob
pip install mediapipe
“`

>動画ファイルを画像ファイルに変換
“`convert_movie.py
import cv2
import os

def save_all_frames(video_path, dir_path, basename, ext=’jpg’):
cap = cv2.VideoCapture(video_path)

if not cap.isOpened():
return

os.makedirs(dir_path, exist_ok=True)
base_path = os.path.join(dir_path, basename)

di

元記事を表示

scipy.stats: Brunner-Munzel 検定 brunnermunzel

# scipy.stats: Brunner-Munzel 検定 `brunnermunzel`

Brunner-Munzel 検定を行う。

`brunnermunzel(x, y, alternative=’two-sided’, distribution=’t’, nan_policy=’propagate’)`

– `distribution` $p$ 値の計算に $t$ 分布を使う(デフォルト)とき `’t’`,標準正規分布を使うとき `’normal’` を指定する。

“`python
from scipy.stats import brunnermunzel
import numpy as np

x = np.array([1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 1, 1])
y = np.array([3, 3, 4, 3, 1, 2, 3, 1, 1, 5, 4])
brunnermunzel(x, y)
“`

BrunnerMunzelResult(statistic=3.1374674823029505

元記事を表示

会社の Python プロジェクト Template Repository を1日で作ってみた?

# はじめに
会社の標準言語をとある言語からPythonに変えようと、一生懸命旗を振っています?
しかし、私はPythonに触り始めて3年過ぎた程度の経験かつ管理職でありコーディングに時間を割けません。

標準言語をPythonに変えることは既定路線なのですが、どうやって移行の敷居を低くし、Pythonを魅力的な言語に見せるかが私の課題となっています。
そこでGitHubに[Template Repository](https://docs.github.com/ja/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template)という機能があることを知り、早速[Python用のTemplate Repository](https://github.com/chiba-data/python-project-template)を作って公開しました。

https://github.com/chiba-data/python-project-template

# こだわり

元記事を表示

MediaPipeで取得した座標データの統一化の方法[CSVファイル]

>MediaPipeで取得した座標データの統一化

手の座標の見本です。
![aa.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702119/71f06798-30b7-baef-2a11-b9d786e6fd4f.jpeg)

2つのポイントを決定する。具体的にはP0(WRIST)を絶対動かない基準として設定する。それとP9(MIDDLE_FINGER_MCP)からP0までの距離が1になるように大きさを揃える。(P9以外でも大丈夫です。)
※z軸はあってもなくても大丈夫です。

まず全体のソースコードです。
“`python:standard_xyz.py
import csv
import numpy as np
import math

with open(“landmark.csv”) as file_name:
array = np.loadtxt(file_name, delimiter=”,”).ravel()
#print(array)

x1 = arr

元記事を表示

【備忘録】OpenCV PythonをCUDA対応でビルドしてAnaconda環境にインストール(Windows)

執筆開始時点:22/06/01

Anaconda環境のPythonでcv2を使いたい!
という単純な目的のためだけにここまでやるとは思っていなかった

ひとまずいつも通りインストール方法をググったところ
~~~:Anaconda Prompt
conda install opencv -c conda-forge
~~~
でうまくいくはず!とのことだったが
いつまで経ってもSolving environmentが終わらない
チャンネルをconda-forgeからanacondaやmempoにしても変化なし
conda自体のアプデやconda update –all をやっても変化なし

~~~
pip install opencv-python
~~~
でもいいのだが,Anaconda環境をできるだけ崩したくない
(仮想環境下でならpipでもいいけど,画像処理が主な仕事なのでbaseに入れたい)

ここで
CUDAも使えると~~色々と遊べて楽しい~~パフォーマンスが向上するので便利だし
どうせなら最新バージョンを入れたい
ということで自分で最新版のOpenCVをビルドすることにした

元記事を表示

PythonによるRNA-Seq(バルク)データ解析 ~発現量の正規化~

本稿では、マッピング・カウント数の算出を終えたRNA-Seq (シングルセルではなくバルク) データから、Pythonを用いて発現量の正規化を行う方法を解説する。
# 発現量の正規化方法 FPKMとTPM
参考: https://bi.biopapyrus.jp/rnaseq/analysis/normalizaiton/tpm.html (2022年6月8日アクセス)
遺伝子発現量の正規化手法として、下記の代表的なふたつの手法が知られている。
– **FPKM/RPKM** (Fragments/Reads Per Kilobase of exon per Million mapped fragments/reads, 以降はFPKMと表記する)
– **TPM** (Transcripts Per Million)

最近の論文では TPMを用いた算出を目にすることが多い気がする。実際にFPKMでは転写産物の発現量を正確に表していないことが報告されている(Li et al. Bioinformatics 2010; Wagner et al. Theory Biosci. 2012

元記事を表示

SQSのキューをトリガーにしてLambdaでメッセージを受信する(Python)

## はじめに
[S3をトリガーにしてLambdaでSQSにメッセージを送信する](https://qiita.com/ybsh2891/items/55a2c95a15234acd64d7)の続きとして、SQSのキューに入ったメッセージをLambdaで取得する方法のメモ。

## 目標
図のように、SQSをトリガーにして、Lambdaを起動させる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1259842/0c31e192-bcc3-6325-7737-c610b4e790ec.png)

## 1. SQSでキューを作成する
### キューの新規作成
キューを新規作成する。詳細は[こちら](https://qiita.com/ybsh2891/items/55a2c95a15234acd64d7#1-sqs%E3%81%A7%E3%82%AD%E3%83%A5%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)を参照。

元記事を表示

競馬予想アプリ

# 競馬が好きなので予想アプリを作ってみました!!
pythonでスクレイピングをして作りました。

“`python:keiba.py
import streamlit as st
import pandas as pd
import requests
from bs4 import BeautifulSoup
import re
import time

def get_url(kai,day,l,get_num):
tg_year = 2022
df_race_li=[]
url_ids = []

for year in range(tg_year-1, tg_year+1):
for z in range(1, 6):#開催、6まで十分だけど保険で7
for y in range(1, 3):#日、12まで十分だけど保険で14
url_id = f”{year}{l}{z:0>2}{y:0>2}”
url_ids.appe

元記事を表示

Pythonでコロナ感染者数を軽く集計した話

コード

使っているモジュール
“pandas“ (“pip install pandas“でインストール可能)
“matplotlib“ (“pip install matplotlib“でインストール可能)

“`python:main.py
import pandas
from matplotlib import pyplot

hyouji = [“ALL”,”Hokkaido”,”Aomori”,”Iwate”,”Miyagi”,”Akita”,”Yamagata”,”Fukushima”,”Ibaraki”,”Tochigi”,”Gunma”,”Saitama”,”Chiba”,”Tokyo”,”Kanagawa”,”Niigata”,”Toyama”,”Ishikawa”,”Fukui”,”Yamanashi”,”Nagano”,”Gifu”,”Shizuoka”,”Aichi”,”Mie”,”Shiga”,”Kyoto”,”Osaka”,”Hyogo”,”Nara”,”Wakayama”,”Tottori”,”Shimane”,”Okayama

元記事を表示

OTHERカテゴリの最新記事