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

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

SPSS Modelerの文字列に関するCLEM関数をPythonで書き換える

以下の記事を参照しつつ、SPSS Modelerのclem関数を使って文字列型のレコードを加工してその処理をPythonで書き換えてみます。

https://qiita.com/Makimaki2020/items/35ab02a7375325e678c1

加工に使用するデータは、以下から取得しました。
・「データサイエンティスト協会スキル定義委員」の「データサイエンス100本ノック(構造化データ加工編)」https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess
・海外在留邦人数調査統計 https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&toukei=00300100&tstat=000001055779&cycle=0&tclass1=000001116075&file_type=1&result_page=1&tclass2val=0

上記の記事で紹介されているとおり、文字列関数の実行結果は主に3種類です。
1

元記事を表示

【RestAPI?】初心者向けにざっくり解説

# 目的
最近流行のpython, djangoを触ってAPIを実装しようとしたときに、django_restframeworkなるもので簡単にRESTAPIが実装できると言うことを知ったものの、**RestfulなAPIとはどのようなものか完全には理解できていなかったため**ここで同じように曖昧なイメージを持っている方々に共有してみむとせん。

# 前提
API自体の知識は多少ある方。
RestfulAPIと言う名前を聞いたことがある方

# 概要
REST APIは「REST」と呼ばれるAPIの設計思想に基づいたweb用のapiのこと。
RESTには以下の4原則がある。
①ステートレス
②統一インターフェース
③接続性
④アドレス可能性
以上の四つの原則に従って実装されたAPIのことをRESTAPIと呼ぶ。
具体的に4原則について説明する

# 詳細
### 1. ステートレス
サーバーにユーザーセッションなどの「状態」(ステート)を持たない(レス)前提で情報のやり取りを行う。
→ やり取りが一回ごとに完結する。
→ 2度目のアクセスをしてもサーバー側は何も記憶がない

### 2

元記事を表示

Pyrightのpip経由でのインストールと利用を試してみる

自作Pythonライブラリで、GitHub Actionsなどでのmypyでの型チェックは入れているのですが、追加でPyrightでのチェックも入れたいと思い検証してみたのでその備忘録です。

※普段はCI的に組み込んだりはしていないもののVS Code上でのPylance(内部でPyrightが使われています)での型チェックは使っていました。

※PyrightやPylanceとはなんぞや・・・という方はちょっと古いですが以前記事を書いているのでそれらをご確認ください。

https://qiita.com/simonritchie/items/7492d1c1a3c13b2f27aa

https://qiita.com/simonritchie/items/33ca57cdb5cb2a12ae16

# そもそも何故今までmypyのようにCIに組み込んでいなかったのか

mypyはpipでさくっと入れることができます。一方でPyrightはPythonで書かれているわけではなくpipだけでさくっとインストールが効きませんでした(node.jsなど依存関係で色々考えたりが必要になっ

元記事を表示

【Python】Tkinterを使って✜マークを記述

PythonとTkinterを使って✜マークを記述するコード。

## 実装コード

“`python
from tkinter import *

window = Tk()
window.geometry (“600×600”)
window.attributes(“-topmost”,True)
window.title(“sample window”)

c = Canvas(window,width=600,height=600,background=”green”)

size = 3
for n in range(size):
for m in range(size):
if (n+m) % 2 == 1:
c.create_rectangle(50+m*32,50+n*32,80+m*32,80+n*32,outline=””,fill=”black”)
c.pack()
mainloop()
“`

## 実行結果

![スクリーンショット 2021-12-24 1.36.53.png](https://qiita-image-store.s3.ap

元記事を表示

【Python】turtleを使って⌘(command)マークを記述

Pythonとturtleを使って⌘(command)マークを記述するコード。

## 実装コード

“`python
from turtle import *
speed(0)
step = 2
for m in range(4):
for n in range(0,270,step):
forward(2)
right(step)
forward(200)
done()
“`

## 実行結果![スクリーンショット 2021-12-24 1.31.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522445/5f8af3cb-dbb3-f109-f4b3-0d5eacc39f58.png)

https://docs.python.org/ja/3/library/turtle.html

元記事を表示

LINE BOT経由でRaspberry Piに接続したUSBカメラの画像を取得してみる

# 前書き
突然ですが、皆さんの家でRaspberry piは活躍していますか?
我が家ではRaspberry pi2およびpi3をそれぞれ1台持っていますが、SAMBAでのファイル共有でしか使っておらず、家族からは、「あれ必要なの?」とよく言われます。
年間電気代1500円ぐらいながら、すでに幾多のSDカードを買い替えて、そこそこ保守費もかさんでおります。
そこで、何か役に立つことをさせよう。ということで、自分の知識習得もかねて、LINEからリビングにあるRaspberry piのUSBカメラ画像を取得するプログラムを作成しました。

Qiita初投稿となりますので、上手いこと書けるか分かりませんが、ご指摘・ご質問あれば、コメントいただければと思います。

# 構成&動作
以下に構成図と簡単な動作を示します。(ちなみに図は[https://www.diagrams.net/](https://www.diagrams.net/”https://www.diagrams.net/”)を使って書きました。)
![network.png](https://qiita-image-store

元記事を表示

PythonでUnicodeDecodeErrorが発生した時の対応

## はじめに
対応方法を検索した時に、それぞれについてはあったものの
一緒に行うものがなかったので備忘録としてのメモです。

## 問題

Windows環境で作成したzipファイルを読み込んだ時に、 `UnicodeDecodeError` が発生することがある。
原因は、文字コードがShift JISだけど、PythonはUTF-8で扱うので、その違いによるもの。

## 対応方法
### その1

“`bash
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x8e
“`

が発生した時、[Python 3 で日本語ファイル名が入った zip ファイルを扱う](https://qiita.com/methane/items/8493c10c19ca3584d31d)に記載されている通り、

“`python
file_name.encode(“cp437”).decode(“cp932”)
“`

としたら良い。

### その2

「その1」の対応で万事OKかというと、実はそうでもなかったりする。
今度は、

元記事を表示

くそアプリをやっと思いついた

# くそアプリをやっと思いついた
## 苦しんだ理由
くそアプリを考えるにあたって要件定義を考えすぎた。
1.仕事や余暇の役に立ってはいけない。
2.人を和ませなければならない。
3.人に感心されるような出来栄えはいけない。(っつーか、できねえw)
## できたもの
“`
#良い日になるプログラムを作りました
#Google Colaboratoryで実行できます
from datetime import date
today = date.today()
if today == date(2022, 1, 1):
message = ‘Happy New Year!’
else:
message = ‘Have a nice day!’
print(today,message)
“`
## 自己評価
 肩に力が入ってなくて、いいんじゃねw

## Githubはこちら
[AppMakesYouHappy](https://github.com/Hiroyuki-Moriya/AppMakesYouHappy)

元記事を表示

Joy-ConとPython3で脚部動作認識

#はじめに
こんにちは、HCB Advent Calendar 2021の21日目を担当するKimです。
僕は卒業研究でPC作業中の脚部動作促進システムの研究をしており、研究の中ではJoy-ConとPythonを使った脚部動作認識を実装しています。
今回は僕が実装した脚部動作認識について紹介します。
#脚部動作認識方法
##データの取得
開発中のシステムでは,Joy-Conから脚部動作中の加速度と角速度を取得し,その値を使ってMacで認識する流れになっています。
Joy-Conから加速度・角速度を取得する方法は@tocoteronさんの記事を参考にさせていただきました。
https://qiita.com/tocoteron/items/9a5d81c8f640ecaff7a9
Joy-Conから取得したデータは,その脚部動作を認識するための基準データとしてcsvファイル保存します。
##DTW距離の算出
DTW(Dynamic Time Warping)とは2つの異なる波形の類似度を距離として算出するアルゴリズムです。
DTW距離が小さいほど波形データの類似度が高いことを表します。

元記事を表示

Pythonでのデータ埋める方法

#実装
“`padding_formatter.py
def padding_formatter(item, padding, data_type):
“”” 引数で指定された桁数までデータを埋める
埋める内容は以下の通り
・データ型[numeric: 数字] 先頭0埋め
・データ型[half: 半角] 後ろ半角スペース埋め
・データ型[full: 全角] 後ろ全角スペース埋め

Args:
item: 項目
padding: 桁数(byte数ではない)
例 全角で64byte項目の場合は「32」桁を指定
data_type: データ型[numeric: 数字, half: 半角, full: 全角]
Returns:
固定長分埋めた項目
“””
out_item = str(item)
if data_type == ‘numeric’:

元記事を表示

Pythonによる自然言語処理入門 -形態素解析-

こんにちは
アドベントカレンダー22日目です。
[HCB Advent Calendar 2021](https://qiita.com/advent-calendar/2021/hcb-2021)

今日はPythonによる自然言語処理について書きたいと思います。

## 初めに
今回は、Macを使用している方をメインターゲットとしてPythonによる自然言語処理の記事を書きたいと思います。

最近初めて自然言語処理をしたのですが、「Macを対象とした記事があまりないな… 特に最近出された記事がないな」と思ったので書かせていただきます。

## 想定している読者
今回本記事で想定している読者は、Macを使用している方です。
また、辞書としてMeCabを使用します。
(MeCabってなに?という方はこのまま読んでいただけるとわかると思います。)

## 目次
– 初めに
– 想定している読者
– 環境構築
– 形態素解析
– 辞書の追加
– 頻出語句の抽出
– 終わりに

## 環境構築
**注意:今回はPythonの環境構築は割愛させていただきます。**

今回は、形態素解析器と

元記事を表示

ABC81メモ

# ABC81 メモ
## [A – Placing Marbles](https://atcoder.jp/contests/abc081/tasks/abc081_a)

s1,s2,s3がそれぞれ1であれば1を足す、0であれば何もしない、ので、各文字を数字として足していく。

“`python:81A.py
s = input()

ans = 0
for i in range(3):
ans += int(s[i])

print(ans)
“`

## [B – Shift only](https://atcoder.jp/contests/abc081/tasks/abc081_b)

数列の各要素のうち、2で割り切れる回数が最小のものの、その回数が答えとなるので、各要素を2で割り切れなくなるまで割り続け、その回数が最小のものを答えとする。
計算量は$O(N\log(\max(A_i)))$より、今回の制約では十分間に合う。

“`python:81B.py
N = int(input())
Alst = list(map(int, input().s

元記事を表示

リアルタイムの加速度記録から長周期地震動階級を計算する

この記事を開いていただきありがとうございます。 地震界隈 Advent Calendar 2021 22日目の記事です。私は日本語に翻訳するために最善を尽くしましたので、ご理解いただければ幸いです。

#はじめに

東日本大震災後、高層ビルの被害を特徴づける新たな規模が必要であることが明らかになりました。確かに、震源域から数百キロメートル離れた大阪市内(最大震度3)の超高層ビルで大きな揺れが発生し、エレベータの停止や閉じこめ、内装材等の破損が生じた [1]。
超高層ビルは低周波(=長周期 > 1.6秒)と共鳴する可能性のある背の高い構造物であるため、この損傷は長周期地震動 (英語 : Long-period ground motion, LPGM) によるものでした。震度階級は1秒以下の周期を考慮しているため、長周期地震動の特徴づけには適していません。これらの理由から、気象庁は長周期地震動に関する研究会を開きました。
その後、「気象庁長周期地震動階級」の4段階を設定することが決定されました :

![長周期地震動階級.png](https://qiita-image-store.s3

元記事を表示

oTreeでオンライン実験をした時に苦労したこと&カスタマイズ(覚書)

# oTreeとは

oTree はオンライン実験を作ることができるDjango をベースにしたフレームワークです。Python(変数や関数の管理) と HTML(+JS+CSS:ページのデザイン)で作ります。
特に、囚人のジレンマ・公共財ゲームのような、複数のプレイヤーがリアルタイムで相互作用する行動実験を作るために使われている印象です。

oTreeの紹介自体は他の記事に任せることにして、ここではオンライン実験を実施した時に苦労した&工夫したポイントなどをダラダラ記していきます。気が向いたら情報を更新するかもしれません。

* 入門者は後藤晶さんのチュートリアル資料が素晴らしくわかりやすいので、これを参照するとスムーズに始められます。

https://github.com/akrgt/otree_2019KG

* 最近(2021年9月)、公式ドキュメントが日本語訳されたので、日本人ユーザにも優しくなりました。

https://otree.readthedocs.io/ja/latest/index.html

* otree help & discussionを参照す

元記事を表示

集合の基礎部分を絡めたSymPy操作

集合のごくごく基礎(表面的なところ)を勉強・復習を兼ねてPythonとSymPyの各インターフェイスで扱っていきます。

※記事執筆者は理系出身ではなく数学や用語などで色々粗い点等はご容赦ください。

# 使うもの

– Python 3.9.0 (一部3.8や3.9など特有の型アノテーションの機能も使っています)
– SymPy 1.9
– Jupyter (VS Code上のものを利用)

※SymPyは以下のようなコマンドでインストールすることができます。

“`
$ pip install sympy==1.9
“`

また、SymPyの基本に関しては以前記事にしたのでそちらも必要に応じてご確認ください。

https://qiita.com/simonritchie/items/44242479f0df86fffff5

# 集合のPythonビルトイン上での扱い方

Pythonビルトインでは集合を表すには`{}`の括弧を使います。辞書と同じ括弧ですが、(辞書のキーと値といったように)コロンは使わずにコンマ区切りで表現します。

たとえば10, 20, 30の3つの値か

元記事を表示

MATLABからPythonライブラリを利用できた話

# 初めに
## この記事について
MATLABとPythonは似ている言語といわれますが、それぞれ得意な分野、不得意な分野があります。
ですからどちらを使うか迷うこともしばしばあります。

一つの解決策は、どっちの言語を使うほうがいいかメリットとデメリットを比べて、どちらか片方の言語を使うことです。
しかし、どうしても両方の良さを活かしたいこともあるでしょう。
そんな時には、MATLABからPythonを呼び出してしまいましょう。

例えば、機械学習を実行したいけれど、MATLABで未対応である場合やツールボックスの購入が必要な場合があります。
そのような場合には、学習データの準備と学習結果の評価をMATLABで実施し、学習自体はPythonで無償のパッケージを利用して実行することができます。

今回は、MATLABをベースにしてPythonを利用するときに役立ちそうな情報をピックアップしてまとめてみようと思います。

:::note info
実は同じ趣旨の記事を約2年前に書いています。
その記事は今でも定期的に閲覧がありますが、本記事執筆時点では状況が少し変わっているようです。

元記事を表示

Kaggle入門〜Titanicに挑戦〜

# データ分析をしてタイタニック号の生存者を予測する

## はじめに
この記事ではPythonを用いて、Kaggleのチュートリアルとして有名なTitanicの生存者予測問題をに挑戦していきたいと思います。

>Kaggleとは、世界中の機械学習・データサイエンスに携わっている約40万人の方が集まるコミニティーです。企業や政府が競争形式で課題を提示し、賞金と引き換えに最も制度の高い分析モデルを買い取る「Competetion(コンペ)」というクラウドファウンディングのようなものを開催しているのがKaggleの特徴です。
[参考記事 – Kaggleとは?機械学習初心者が知っておくべき3つの使い方](https://www.codexa.net/what-is-kaggle/)

簡単に言えば、タイタニック号の乗客情報から船の沈没後にその人が生き残ったのか或いは亡くなってしまったのかを予測していきます。

## 事前準備

[GoogleColab](https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja)を使って

元記事を表示

Raspberry PiをつかってNASアクセス式高解像度デジタルフォトフレームをつくろう.

#はじめに
**デジタルフォトフレーム**は2010年頃に登場した画期的な商品です。

![41TV4VNJFHL._AC_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629378/1421f118-0ac8-acd4-9309-387e1259dd15.jpeg)

それまで、撮った写真は焼いて飾っても額縁に一枚限りです。その他はアルバム化する必要がありましたし、そもそもよっぽどのことがないと見返すことはありません。

その点デジタルフォトフレームでは、保存した写真が自動でスライドショー化され、ふとした時に何かを思い出す最高のコンテンツといえます。

しかしながらこのフォトフレーム、思いのほか**低解像度**で**低容量**、いちいち写真をSDカードに入れたりクラウドにアップロードする**面倒な仕組み**から、あまり世間に浸透することはありませんでした。

(~~そもそも現代において写真とは詐欺と欺瞞と加工の事を差し、自己承認ツールの一部になってしまったためにフォトフレームを必要とする時代ではな

元記事を表示

自作フォントの回転、パディングを機械学習で自動調整する

この記事は [ドワンゴ Advent calender 2021](https://qiita.com/advent-calendar/2021/dwango) の20日目の記事です。

あなたはフォントが好きですか?
フォントは日陰ながらも縁の下の力持ちです。使うフォントでページの印象がガラッと変わりますね。リピーターになるかも、売り上げも変わります。フォントにこだわりたいところです。

# モチベーション

私はフォントを作るのが趣味で、芸術的な(よく言えば)フォントをちまちまリリースしています。回転率、パディングなどの微調整に関してはこだわらずに適当に設定してしまっていますが、こちら機械学習により先人の叡智を拝借して、いい感じにできないかと。

# 事前準備

## 自作フォント(回転・パディングの調整なし)を作成する

元データは様々な文字が紙に書かれた状態です。
こちらから各文字(以下グリフ)を画像に別々に書き出します。
![law1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33738/

元記事を表示

GUIで時系列データのグラフを作成してみた。

#環境
Python version:3.9.7
OS: windows 10.0
Anaconda:conda 4.11.0
※PySimpleGUI、dataframe_image は、condaのライブラリに標準で入っていなかったので、追加した。

#実装したかった、やりたかったこと
・集計したいcsvファイルをGUIで選択する。
・logをまとめるフォルダを作成し、新規で作成したデータを保存する。保存したフォルダを開く。
・3つのグラフを同じ時系列でまとめる。
・describe(count,mean,std,min,25%,50%,75%,max)データの表をつくること。
・defを使ってみる。
・GUIに作成したファイルを出力する。

#課題
・matplotlibを使用して表を作成する。dataframe から簡単に作成できると思ったが、よくわからなかった。
 dataframeを作成し、csvファイルを作ることにした。
 追記、dataframe_imageを使用し、作成した。

#code
“`python:type_1.1.py
import PySimple

元記事を表示

OTHERカテゴリの最新記事