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

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

awswranglerにて pyarrow.lib.ArrowTypeError: Did not pass numpy.dtype object のエラー

最近、業務でデータ基盤の構築をしており、その中でETL処置のために`awswrangler`というライブラリを使用することがあります。
これを使うと`S3 <-> pandas.DataFrame`などのやりとりが非常に簡単に行えて便利です。

ただ、そのセットアップで表題のエラーが出ることがあったので簡潔にまとめておきます。

# 何が起きたか?
以下のようにpandasのDataFrameをawswanglerでS3にputしようとした際にエラーが発生しました。

“`python
import awswrangler as wr

path = “s3://hoge_bucket/hoge.parquet”
wr.s3.to_parquet(
df=df,
path=path,
)
“`
型の問題なことはエラーからわかりますが、`df`のtypeを調べてみても間違いなく``でした。

# 原因
どうやらライブラリのバージョンの問題のようです。

https://github.com/Azure/Ma

元記事を表示

“How to GraphQL” チュートリアルからのメモ

# まとめ
– GraphQLについて言及されている場面に遭遇したので、調べてみたところ以下のページを見つけたので、チュートリアルに沿って動かしてみた。
– 言語はpythonを選択。今のところ読み解けるのがpythonだけだというのと、知りたいのはサーバ側の挙動でクライアント側ではなかったから、というのが理由。

https://www.howtographql.com/

# 次やってみること
– 同じ作業をEC2でやってみよう。

# チュートリアルからのメモ

## 1. ローカル環境の設定
pythonは3.6を使うこと、と明示されていたので、初めてvirtualenvを使用してみる。`pyenv local`だけでうまくいくのかも知れなかったけど、以前にEdukitで指定のパッケージがインストールできず、あれやこれやあくせくした経験があったので、チュートリアル用の環境をvirtualenvで分けることにした。

“`Shell:Python環境設定
> pyenv install 3.6.15 # 指定されているpython3.6をインストール
> pyenv virtu

元記事を表示

Python:NFCとtkinter

この記事はpythonでNFCカード等を読み取れていることを前提にした記事です。
読み取りの準備等は[Python:NFC](https://qiita.com/doyodoyo/items/22c56d5d7d2e998924b9)を参考にしてください。

#tkinter & nfcpy
tkinterでnfcタグの内容を読み取ろうとするとうまく動きませんでした。
おそらく、nfcpyの読み取りで待ってしまうので、タイムアウトを設定しないといけないっぽい。
[nfcpyにおけるタイムアウト処理](https://www.kosh.dev/article/3/)を参考に下記のように一応解決できました。

##nfc_reader.py
nfc_reader.pyという名前のファイルを作って、下記のプログラムをコピペしてください。
NFCタグ(https://www.sanwa.co.jp/product/syohin?code=MM-NFCT)のレコードを読み取るプログラムです。

“`py
#nfc_reader.py

import nfc
from functools i

元記事を表示

Unicode による国旗表

:::note info
国旗の表示はブラウザの対応次第です
:::

# 英二文字の国名コードによる国名コード表

単純な 26×26 の表です。

| |A
J
S|B
K
T|C
L
U|D
M
V|E
N
W|F
O
X|G
P
Y|H
Q
Z|I
R
 |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|A|??
??
??|??
??
??|??
??
??|??
??
??|??
??
??|??
??
??|??
??
??|??
??
??|??
??
 |
|B|??
??
??|??
??
??|??
??
??|??
??
??|??
??<

元記事を表示

swarmplotにエラーバーを重ねて表示する方法

データの可視化にはsns.swarmplotが便利ですが、swarmplotのみでは平均値や標準誤差をわかりやすく表示することができません。
そこで、sns.swarmplotの上にplt.errorbarを重ね、平均値と標準誤差を可視化する方法をご紹介します。

## 使用ライブラリ
matplotlib, pandas, seaborn

## 使用するデータセット
seabornで用意されているデータセットを使用します。

“`Python
import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

df = sns.load_dataset(“tips”)
“`

## 簡単な場合(hueを設定しないとき)
各データのswarmplotは、x = 0, 1, 2, …の位置に描画されます。
従って、この位置にerrorbarを描画すればOKです。
swarmplotとerrorbarを対応づけるため、“sns.swarmplo

元記事を表示

nfcメモ

#ラズパイ
#nfcpyのインストール

“`bash
sudo pip3 install -U nfcpy
“`

#pythonでテスト
下記のコマンドを実行してみる。(多分エラーが出る)

“`py
import nfc

clf = nfc.ContactlessFrontend(‘usb’)
print(clf)
“`

#対処
エラーが出るので、下記のコマンドで教えてくれる対処をする。

“`
python3 -m nfc
“`

#再チャレンジ

“`py
SONY RC-S380/P ……
“`
と表示され、nfcリーダーが認識された。

#Macメモ
##Homebrewをインストール
fetchがうまくいかない場合は一度、アンイストールしてからもう一度インストール

“`bash
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`

##lsusbをインストール

“`bash
brew t

元記事を表示

statsmodelsのトレンド解析と乖離率を使った株の儲け方:株価を時系列解析(2)

## 移動平均乖離率を使って投資できるか?

[時系列解析: 自己回帰型モデル・状態空間モデル・異常検知 (Advanced Python) ](https://www.amazon.co.jp/%E6%99%82%E7%B3%BB%E5%88%97%E8%A7%A3%E6%9E%90-%E8%87%AA%E5%B7%B1%E5%9B%9E%E5%B8%B0%E5%9E%8B%E3%83%A2%E3%83%87%E3%83%AB%E3%83%BB%E7%8A%B6%E6%85%8B%E7%A9%BA%E9%96%93%E3%83%A2%E3%83%87%E3%83%AB%E3%83%BB%E7%95%B0%E5%B8%B8%E6%A4%9C%E7%9F%A5-Advanced-%E5%B3%B6%E7%94%B0-%E7%9B%B4%E5%B8%8C/dp/4320125010/ref=sr_1_3?keywords=%E6%99%82%E7%B3%BB%E5%88%97%E8%A7%A3%E6%9E%90&qid=1643374017&sr=8-3)
の1.8章は移動平均乖離率です

元記事を表示

g行h列の格子状グラフの隣接行列を生成するpythonプログラム

#やりたいこと

格子状グラフでの最短経路とかの問題を見たので、ダイクストラ法とかを使えるようにn×mの格子状グラフから隣接行列を生成したい!
![Qita用画像作成用パワポ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517688/3cbe83b5-43b7-d4a7-1a29-33aa04a02fb8.jpeg)

#ソースコード
“`
def grid_adj_matrix(g,h):#格子状グラフがg行h列の頂点から成るとする
#頂点番号は0~g*h-1とする
#内側、境界上の辺、境界上の頂点の3グループに分割して計算する
N=g*h
adj_matrix=[]
for i in range(N):
tmp_i=[]
for j in range(N):
#格子状グラフの内部を考える.
if 0

Python から PostgreSQLに接続 備忘録

##psycopg2インストール
“`
pg_config –version ・・・入っているかの確認
sudo apt-get install libpq-dev ・・・なければインストール
pip3 install psycopg2
“`
###メモ:「pg_config 」がないとエラーになりインストール不可。

##記述例
dbの接続情報は別にjsonファイルを用意する

“`python3
#!/usr/bin/env python3
import psycopg2,json,os,platform,subprocess,sys

dirname =os.path.dirname(__file__)
print(‘dirname:’,dirname)
file = open(dirname + str(‘/info_db.json’),’r’)
info_db = json.load(file)

userName=info_db[‘user_Linux’]
osName=str(platform.system())
if osName == ‘Windows’:

LINE Botで位置情報を活用する

## はじめに
今回はLINEの位置情報を活用した飲食店検索botを作成したので,その内容をまとめてみました. LINE Botの画像付きのクイックリプライやカルーセルメッセージの実装も行っているので,それらも参考にしていただければと思います.

完成形はこのような形になります
![2022-02-12_12h03_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/862467/ee9e30ab-d51f-ec12-2205-426cb53e5b58.png)
## 記事概要
* LINEbotをはじめるには
* GoogleMapsAPIの利用
* LINEMessagingAPIの機能
* 飲食店検索botの実装

:::note info
必要事項
・ Pythonの基本操作
・ HTTP通信の基礎知識( webAPIの利用 )
・ WEBアプリケーションの基礎知識( Flaskの利用, Webhookの利用 )
:::
## LINEbotをはじめるには
#### LINE D

requestsとBeautifulSoupを理解する [ 画像の自動収集 ]

## はじめに
今回はHTTPリクエストを送信することのできるrequestsライブラリと, HTMLの解析を得意とするBeatifulSoupライブラリを用いて画像を収集する試みです. 内容としては[Cookpad](https://cookpad.com/)から特定の料理検索で表示される画像の自動収集を行います. これらの実装を通してrequestsとBeautifulSoupの理解がより深まることを期待します.

:::note warn
確認事項
クローリングを禁止しているサイトもあるので注意
:::

## 記事概要
1. requestsの基本
1. BeautifuruSoupの基本
1. 画像の収集と保存

:::note info
必要事項
・ pythonの基本操作
:::
## requestsの基本
requestsはpythonからのHTTP通信をよりスムーズに行うことを可能にしてくれるライブラリです. 以下を実行することでインストールが可能です.

“`terminal:terminal
$ python -m pip inst

Detectron2ではじめる画像の物体検出とセグメンテーション

## はじめに
最近, Detectron2を用いて画像の物体検出とセグメンテーションを行ったのですが, 日本語の記事が少なく実装に苦労した部分があったため, 今回は物体検出とセグメンテーションに関して基本的な操作をまとめておきたいと思います.

:::note info
補足
今回は実装に焦点を当てるため画像処理やニューラルネットワークの専門的な話は盛り込んでいません
:::

## Detectron2とは?

Detectron2とは,FacebookAIが開発したPyTorchベースの物体検出ライブラリで,物体検出・セグメンテーション・その他の視覚認識タスクのためのプラットフォームです. 現在はオープンソースとして公開されています. 詳細は[こちら]( https://github.com/facebookresearch/dete

音声変換の進展(備忘録も兼ねて)

備忘録も兼ねてるので結構雑なのは許してクレメンス。

# これまでのお話
[こんなこと](https://qiita.com/lefirea/items/4f0e3912862b8958e896)をやってたり、やっぱりダメだったので[CycleGan-VC2](http://www.kecl.ntt.co.jp/people/kaneko.takuhiro/projects/cyclegan-vc2/index.html)を参考にしたモデルで試したりしてた。
使ってた特徴量はメルケプストラム。この辺もCycleGAN-VC2を参考にして選択。

が、ダメ。

モデル調整を頑張ってみたり、メルケプストラムをNMFしてみたり。STFTしたもの(メルケプまで行かない)を入力してみたり、これもNMFしてみたり。なんか色々やったけど、終ぞ上手くいかず、そして萎えて断念。

# 今回のお話
断念してから1年。
ようやく新天地にたどり着いた。
前々から「LPCという特徴量がフィルタ的な役割でもある」とは聞いてた。音響管とかそういう話。
で、それを思い出し、調べ直した結果。[このスライド](https

Mathematica → Python 変換表

| Mathematica |Python | 備考 |
|—|—|—|
| NestList | def nest_list(f, x, n):
return [reduce(lambda x,y: f(x), range(i), x) for i in range(n+1)] |https://stackoverflow.com/questions/12435298/ |

【Pythonで画像/動画変換】HEIC/MOVファイルを、JPG/MP4ファイルに一括変換

# はじめに
iPhone/iPadでカメラ・ビデオ撮影しているといつのまにか端末のストレージが一杯になっていることはありませんか?せっかく撮影したものですからバックアップしておきたいものです。

iPhone/iPadにて撮影したたくさんの画像や動画データをクラウドストレージにアップするのではなく、HDDの容量が安価で豊富に準備できるWindows PC上でファイルを管理する方法を紹介していきたいと思います。

# Phone/iPadからWindowsPCに画像・動画データーの移動方法
iPhone/iPadからWindowsにデータを移動する方法はいろいろありますが、とても容量が大きい動画ファイルはクラウドストレージ経由でもコピーできない場合があります。

iPhone/iPadをWindowsPCにライトニングケーブル等でUSB接続すると容量が大きな画像データ/動画データでもコピーすることはできます。

– iPhone/iPadの[設定]-[写真]を選択し、[MACまたはPCに転送]の設定を[元のフォーマットのまま]を選択しておきます
– 動画ファイルなど大きなデータ

Wordleの平均的な文字の埋まり方を可視化したページを作った

# はじめに
[Wordle](https://www.nytimes.com/games/wordle/index.html)は、5文字の英単語を推測するゲームです

6回の推測ターンのうち何回でクリアできたか、また、どの箇所の文字から推測が当たっていったのかをシェアする機能があり、Twitterで多くのシェアを確認することができます
https://twitter.com/search?q=%23Wordle&src=typed_query&f=live

はじめはこれを見ながら、正解するまでのターン数をヒストグラムにしたらどうなるのだろうかと考えたのですが、それはすでに以下のTwitterアカウントできちんと作られています

そこで、新たにアイデアとして、各文字が平均的にどのように推測されているのかというのを可視化してみようと考え、実際のページを作ってみました

# できたもの
https://average-wordle.herokuapp.com/

スコアを選ぶと、そのスコアで正解した人の平均的な文字の埋まり

Huggingface Transformersのモデルをオフラインで利用する

Huggingface Transformersは、例えば[GPTのrinnaのモデル](https://huggingface.co/rinna/japanese-gpt-1b)などを指定することでインターネットからモデルをダウンロードして利用できます。

ある時HuggingfaceのWebサイトが落ちていて、Transformersを利用したプログラムが動かなくなった事がありました。しかし通常の動作ではモデルのデータはキャッシュされているはずで、一度ダウンロードされていたらオフラインでも動作するのではないか?と思いました。

本稿では、Transformersのコードが一時的にインターネットに接続できないオフライン状態になっても動作できる方法を記載します。

## 環境
– Windows 11 WSL2 Debian Bullseye
– Docker Python:3.9-slim
– Transformers 4.16.2

## 実装
本稿では[GPTのrinnaのモデル](https://huggingface.co/rinna/japanese-gpt-1b)で文章を

誤差なし正整数除算をする関数

Decimalを使えば良いのですが、練習のために自分で関数を書いてみました。
筆算と同じことをすれば良いです。
関数g(a,b,n)を定義し、aをbで割った値を、小数点以下n桁まで計算してstrで返すようにします。四捨五入はせず、n+1桁目以降は切り捨てられます。
以下python3での実装です。

“`python
def g(a, b, n):
def f(a, b, n):
if n == 0 or a == 0: return “”
else: return str(a * 10 // b) + f(a * 10 % b, b, n – 1)
assert a >= 0 and b > 0 and n >= 0
period = “.” if a % b != 0 else “”
return str(a // b) + period + f(a % b, b, n)

print(g(1,1024,5)) # 0.00097
print(g(1,1024,10)) # 0.0009765625
“`

Pythonのような動的型付け言語でも「変数の型を考えること」は大切だと思う

## 概要

**型を宣言することの良い点**は、プログラムで**表現**しようとしている**対象**を**深く考えるきっかけ**を与えてくれる点だと思います。

私はPythonを書き始めた頃、型宣言する必要がないために、変数の型を意識しませんでした。
最近、**型**はプログラムを書く際に**副操縦士や補助輪**として**プログラマーを補佐する効果**があると感じています。

## たとえ話

プログラムはなにかを表現するものだと思います。
ここでは**バレーボール**を表現してみます。

登場させるのは**セッター**、**スパイカー**、**バレーボール**です。

セッターがボールを上げて、スパイカーが相手コートへ打ちこむ様子を書きます。

### 例1

“`python:example1.py

ball = “ball”
setter = Setter()
spiker = Spiker()

setter.setup(spiker, ball)
spiker.spike()

“`

これでも一応はバレーボールにおける、**セッターがボールを上げて、スパイカーが相

PythonでAPIを爆速で構築してみた

#目次
[1.はじめに](#1-はじめに)
[2.コーディング](#2-コーディング)
[3.コンテナ化](#3-コンテナ化)

#1. はじめに

友人に「PythonでAPIをサクッと作ってよ」と言われたのでシンプルなREST APIを作ってみた。

作ったものを渡すだけでなく作り方も教えて欲しいとのことなので、ここに記事として掲載する。少し手順書のような記載なため、初学者向けかもしれない。

Pythonと聞いて「Djangoでも使うか?」と思いつつも、より*サクッと*感のあるフレームワークを探してみたところ
FastAPIなるものがあり、今回はこれを採用してみた。

*[公式](https://fastapi.tiangolo.com/ja/ “FastAPI”)より引用*
>FastAPI は、Pythonの標準である型ヒントに基づいてPython 3.6 以降でAPI を構築するための、モダンで、高速(高パフォーマンス)な、Web フレームワークです。
>FastAPI には Swagger UI と ReDoc の両スタイルのドキュメントを自動で生成してくれる機能があり