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

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

scikit-learnによる問題解決のためのアプローチ

Pythonで利用可能な機械学習のライブラリであるscikit-learnがあります。分析を行なった人なら使ったことがあると思います。

scikit-learnのドキュメントにはアルゴリズムの仕様説明だけでなく、機械学習におけるアプローチ方法についても記載があります。

機械学習の問題解決のために試行錯誤する際に、道標となるような基本的なアプローチ方法がまとまっているので紹介します。

## ドキュメント

scikit-learnのドキュメントは安定版の1.0をベースに紹介します。
開発版の1.1も公開されているので興味がある方は覗いてみてください。

安定版1.0

https://scikit-learn.org/stable/

開発版1.1などの別バージョン

https://scikit-learn.org/dev/versions.html

GitHub ソースなど

https://github.com/scikit-learn/scikit-learn

## 検出器の選び方

機械学習の問題を解決する上で最も難しいのは、その作業に適した推定器を見つけることであ

元記事を表示

EC2 pythonで書かれたプログラムをwebからアクセスできるようにする方法

今回は下記MWとアプリケーションを導入して、pythonで書かれたプログラムをwebからアクセスできるようにしていきます。

〇nginx のインストール・スタート

“`nginx
amazon-linux-extras install nginx1
systemctl enable nginx
systemctl start nginx
“`

〇Uwsgiのインストール

“`
yum install python3-pip python3-devel
yum groupinstall “Development Tools”
pip3 install –upgrade pip
pip install wheel
pip install uwsgi
“`
〇Python のインストール

“`
yum install git
yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel git
git clone

元記事を表示

Discordにorganizationの記事を投稿する

## はじめに

社内用のもくもく会サーバーを作ったのでQiitaのOrganizationの記事をポストするBOTを作りました

## 使うもの

Python
[Qiita API](https://qiita.com/api/v2/docs)
[discord.py](https://discordpy.readthedocs.io/ja/latest/index.html)

## 参考にした記事

[Pythonで実用Discord Bot(discordpy解説)](https://qiita.com/1ntegrale9/items/9d570ef8175cf178468f)

## 前準備

[discord BOTアカウントの作成](https://discordpy.readthedocs.io/ja/latest/discord.html)

Qiitaのアクセストークンはなくてもいいです

## 方針

1. Organizationのユーザー取得してくる
2. 1で取得したユーザーの記事を取得してくる
3. discordにポストする

## 実装

“`p

元記事を表示

Raspberry Pi + Grove Base Hat用のPython環境をコンテナで

venvの仮想環境でGrove Base Hatを使えるようにするには、[以前書いた記事](https://qiita.com/emguse42/items/2bf698d1907d07106c40)のように一部モジュールがvenv内に入らないという課題がありました。
もっとお気楽な開発環境を求めてDockerコンテナを利用した構築を行った記録です。

# はじめに
技術力が圧倒的に足りないので、標準環境を汚してしまいトラブルになるともう手に負えません。
なにかしら上手くいかなくなるたびに、OSをバックアップイメージから入れなおしてってやるのは面倒すぎます。
その点、コンテナならあれこれ試すことができて、非常にお気軽じゃないかと考えました。
(コンテナ化にともなう各種トラブルは見なかった事とする)

##目標
– Raspberry Pi に Docker 及び Docker-compose の導入
– Pythonの導入
– 以下が動作
– GPIO
– i2c
– Grove Base Hat

## 環境
– Raspberry Pi 3 model B

元記事を表示

【pyenv-win】pyenv を使って Anaconda をインストール

## 環境
+ Microsoft Windows 10.0.19042.1165
+ Git 2.33.0.windows.2(コマンドは Git Bash で実行)
+ pyenv 2.64.11

## 現象
pyenv に Anaconda をインストール方法を調べると、`pyenv install -l` でインストールできるバージョンを確認し、`pyenv install anaconda3-5.3.1` のようなコマンドを実行することでインストールできるようだ。しかし、私の環境では `pyenv install -l` を実行しても ‘anaconda’ の文字が見当たらなかった。

## 原因
pyenv-win が Anaconda のインストールをサポートしていないのが原因のようだ。

> kirankotari commented on 25 Jul 2020
we are not supporting this feature yet. Need sometime.([link](https://github.com/pyenv-win/pyenv-win/i

元記事を表示

【AtCoder解説】PythonでABC220のA,B,C,D問題を制する!

**ABC220**の**A,B,C,D問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**までどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: [https://marshmallow-qa.com/u2dayo]**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**

よかったら**LGTM**や**拡散**していただけると喜びます!

# 目次

[ABC220 まとめ](#abc220-まとめ)
[A問題『Find Multiple』](#a問題find-m

元記事を表示

坂本俊之『作ってわかる アンサンブル学習アルゴリズム入門』の9章の勾配ブースティングの説明について

今、[坂本俊之『作ってわかる アンサンブル学習アルゴリズム入門』](https://www.c-r.com/book/detail/1316)を学習中です。
決定木の基礎から勾配ブースティングまでフルスクラッチで作れて勉強になり、楽しいです。

しかし、この記事
[坂本俊之『作ってわかる! アンサンブル学習アルゴリズム入門』の誤植情報を集める](https://qiita.com/hoxo_m/items/82f6fa2fd2cbae4bdfdb)
にあるよう、ミスがいくつかあります。

そして、9章の勾配ブースティングの説明も間違っていると思われるのですが、私の勘違いかもしれないので、指摘等を集める意味でも記事にしました。

# 間違っていると思われる個所

p201の式(2)

“`math
\begin{align}
h_{i+1}&=h_{i}+\eta \frac{\delta l_i}{\delta y}\\
&=h_{i}+\eta\cdot2\cdot\sum_m(y_{mi}-h_{mi})
\tag{2}
\end{align}
“`

という式がおかしいと思

元記事を表示

rekordboxのxmlコレクション情報をPythonで正規化し可視化

そもそも、rekordboxとはフリーの音楽管理ソフトで、フォルダをインポートするだけで特に**曲のキーの解析を自動で行ってくれ**、DJにもよく使われているソフトです。そこからどんなキーが多く含まれているのか、XMLで出力はできましたが解析が面倒だったため自動化(?)して書いておきます

コード

“`python:rekordbox.py
import xml.etree.ElementTree as ET
from xml.etree.ElementTree import tostring
import xmltodict
import json
import collections
from collections import Counter
tree = ET.parse(‘../mu.xml’)
#ここでxmlファイルを読み込む
tree=tree.getroot()
t=tostring(tree)
dict = xmltodict.parse(t)
result = json.dumps(dict)
j = json.loads(result)

musicinfo

元記事を表示

numpyチュートリアル(ビギナーズ向け)

本書は、[numpyチュートリアル(ビギナーズ向け)](https://numpy.org/doc/stable/user/absolute_beginners.html) を翻訳及び加筆(※)でしたものです。

※:わかりにくいと思われる箇所の補足や、ipythonでコードが実行できるようにテストデータを作成するコードの追加等を実施しています

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413278/0b0bd29d-77ad-65c6-2e7b-f50942f7c7c6.png)
© Copyright 2008-2021, The NumPy community.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
“AS IS” AND ANY EXPRESS OR IMPLIED WARR

元記事を表示

選択した文字を翻訳する機能をiPhoneに付けてみた(Pythonista3, DeepL API)

## 概要
Pythonista3とDeepLの無料APIを使い、
iOS上で選択した文字列を翻訳するアプリを作ってみました。

文字列を選択し、「共有…」からアプリを起動することで翻訳することができます。
![34C05510-850C-461E-B2B9-E485CD82DCD0.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614475/c258666e-ce7a-26f2-f604-80573d4f2f70.jpeg)
![F84C82AA-C4AB-4347-893A-4901E21FAB58.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614475/109f33c6-7e6f-5ea2-b632-9611c3706340.jpeg)

## 実行環境
– iOS 12.5.4 (iPad mini3)
– Pythonista 3.3
– Python 3.6

## 事前準備
– App Sto

元記事を表示

sqlalchemyでのORMを用いないinsertのやり方

##概要
ORM使わないsqlalchemyでのINSERTに関する日本語記事を見つけられず、
色々組み合わせてとりあえずで動かせたので、やり方を晒します。

##環境について
Python 2.7.16
SQLAlchemy 1.4.23
pandas 1.3.3
mysql 8

##sqlalchemyでobject定義をせずにinsertするまでのコード
“`
from sqlalchemy import create_engine
from sqlalchemy import MetaData
from sqlalchemy import insert

dbengine = create_engine(‘mysql+mysqlconnector://’ + MYSQL_ID + ‘:’ + MYSQL_PASS + ‘@’ + MYSQL_IP + ‘:’ + MYSQL_PORT + ‘/’ + MYSQL_DB)
dbmetadata = MetaData()
dbmetadata.reflect(bind=dbengine)
# MetaDataオブジェクトからテー

元記事を表示

【初心者】 M1 mac でTensorflow分析環境が壊れたので再度やり直しました

Qiita初投稿です。

## 環境
– macOS Big Sur 11.6
– Mac mini (M1, 2021)

## 事象
– 新たにconda createで作成した仮想環境でpythonが起動せず、ターミナルで”killed: 9″が頻発
– base環境にてconda update –allを行ったところ、全てが壊れる(3年ぶり2回目)

## 結論
下記の公式ページの手順に則ってやったら上手くいきました。
https://github.com/apple/tensorflow_macos/issues/153

1. Xcodeを再インストール(先のエラーはXcodeが原因だったっぽい)
2. 下記サイトからMiniforge3ーMacOSX-arm64.shをダウンロード。
https://github.com/conda-forge/miniforge

3. miniforgeをインストール
$ bash Miniforge3ーMacOSX-arm64.sh

4. 公式ページにあるymlファイルをダウンロード
https://ra

元記事を表示

YahooのHackday2021で姿勢監視アプリ作ってきた

## 背景
リモートワークで気付いたら猫背になっているということが多くなってきたので、姿勢が崩れたら教えてくれるサービスを作りたいな、と思っていたらYahooのHackdayが開催されるという情報が出ていたので作るかーとなって同僚と参加してきた。

## 実現したい事
自分の姿勢が崩れていたら教えてくれる

### 実装方法
– Androidアプリで一定間隔で写真を撮りサーバーに送信
– Pythonサーバーでリクエストを受け取りHRNetを使って解析
– Androidアプリに結果を返して、姿勢が悪い場合は通知

## 使用技術
![Screen Shot 2021-09-26 at 23.01.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1031136/42ace277-6a17-6eaf-cdf4-0b6501cf112e.png)
### Client-Android
#### HttpClient
https://ktor.io/
ktor(ケイターというらしい)を使用。Androi

元記事を表示

AtCoder ABC220 挑戦! (Python)

茶色コーダーを目指して、ABC220に、コンテスト2回目の挑戦です。

“`ruby:ABC220A
A, B, C=map(int, input().split())
Flag=False #倍数が見つかるかどうかのフラグ
for i in range(1001):
if A<=C*i<=B: print(C*i) Flag=True break else: pass if Flag==False: print('-1') else: pass ``` A問題にしては、記述量が多かった気がする。 ```ruby:ABC220B K=int(input()) #K進法表記のA, B A, B=map(int, input().split()) # print(K, A, B) # K進法から、10進法への変換 # int関数の2つ目の引数に整数を指定すると、基数を指定できる。 # print(int(str(A), K)) # print(int(str(B), K)) A_K_10

元記事を表示

競プロで使える便利なライブラリ~python~ 随時更新

## 使用環境

“`
Python 3.8.1
“`

## 階乗
### 階乗とは?
階乗とは「ある正の整数から1までの整数の積」のことで、「n個の異なるものを1列に並べる場合の並べ方」を計算する場合に用いられます。「n!」は次のように計算します。
N! = 1×2× ・・・・ ×(n-1)×n

“`.py
from math import factorial

#5の階乗
print(math.factorial(5))
# 120

#0の階乗
print(math.factorial(0))
# 1
“`
問題例
[B – Factorial Yen Coin ](https://atcoder.jp/contests/abc208/tasks/abc208_b)

## 順列や組み合わせの列挙
### 順列・組み合わせとは?
順列 → n個の中からm個を並べる時の総数 
組み合わせ  → n個の中からm個を選んだ時の組み合わせの総数
順列と組み合わせの違いは、簡単に書くと順番を決めるか決めないかです。詳しくは[数学ガールの秘密ノート/場合の数](https://w

元記事を表示

ABC220 C – Long Sequence を解いた

https://atcoder.jp/contests/abc220/tasks/abc220_c

![abc220_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/dac32ce0-6e4e-8a70-2306-4de46e3993a3.png)
![abc220_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/f154f3da-41c5-1bc7-831d-4a0e3df3611d.png)
![abc220_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/bc135106-6041-e51f-f887-7958dcb930ef.png)
![abc220_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

元記事を表示

Observer Pattern の使用例

|関連記事のトップページ|
|:–|
|[[シリーズ] Python におけるデザインパターンの記録](https://qiita.com/robozushi10/items/3c1c0d1b1fbf7b38a33b)|

## 概要

Python では Observer パターンを使用したことがなかったので、実装練習をしてみた.
このとき Python のパッケージ [pypattyrn](https://github.com/tylerlaberge/PyPattyrn#observer-pattern) の Observer を使用することにした.

## 詳細

WEB や書籍には Observer パターンの実践例が多数あるが、
いずれも自分で Observer (監視者) と Observable (発信者) を実装するものが殆どであった.

私としては、(車輪の再開発による不要な劣化を回避したいので)
Python のサードパーティパッケージ [pypattyrn](https://github.com/tylerlaberge/PyPattyrn#observer

元記事を表示

Pythonのimport方法まとめ

## 1. 概要
長年PHPを使用してきた私には、Pythonではパッケージのimportに毎回悩まされます。
なので、importの方法とコールの方法をまとめました。

## 2. 原則
1. importできるのはパッケージ、モジュール、クラス、関数、変数 (メソッドはimportできない)
1. importした名前でコールする ⇒ “import” の右側に書いた名前がコールする時の修飾子になる

## 3. 例

### 1. 関数 os.path.join()を使いたい場合
os.pathパッケージはposixpath.py (Windowsの場合はngpath.py) に関数群が定義されている

“`Python
import os
# 修飾子はos、path.joinがコールする関数名
path = os.path.join(“/”, “var”, “opt”)
“`
“`Python
import os.path
# os.pathが修飾子、joinがコールする関数名
path = os.path.join(“/”, “var”, “opt”)
“`
“`

元記事を表示

pandasのデータフレームで特定の値を抜き出す方法

完全にメモです、忘れがちな書式なので。

“`python
df_english = df[df[‘language’] == ‘english’]
“`

単刀直入に以上になります。
データフレームの鍵括弧でTrueになるものが絞り込まれて代入されます。
私が書く時はよく中のdfを忘れがちでつまずいていますw

余談ですが、queryメソッドを使った書き方もあります。

“`python
df_english = df.query(‘language == “english”‘)
“`

上の例だとまぁどっちでもいいやってなりますが、
下のように

“`python
df_JHSchool_student = df.query(’12 <= age <= 15') ``` 例えば中学生であろう年齢の12 ~ 15歳だけ絞り込みたいなぁなんて時はageを挟んでスッキリと書けますね。 よく見るのはqueryを使わない書き方です。 読んでくださった皆様、ここまで付き合って下さりありがとうございました。

元記事を表示

[Python]関数/Function

## 概要

Pythonのtutorialで学んだ事を記します。

# Pythonにおける関数とは

特定の処理を実行したり、又は値を返したりする名前付きセクションです。
[公式](https://python.land/introduction-to-python/functions)でセクションと書かれているけど、セクションって表現当たってるのか?
> Function
A Python function is a named section of a program that performs a specific task and, optionally, returns a value

## 関数を利用する利点

1. 一度定義すると何度でも利用可能です。
2. コードを短く、簡潔に、読みやすくするのに優れた方法です。
3. 関数に適切な命名をすると、その関数が何をするのかがわかり、コードがより読みやすくなります。
4. 他の人や、自分が後になってコードを見返した時に、適切に関数が使われていると、コードが読みやすい。

## パラメータ(仮引数)

関数はパラメータを定

元記事を表示

OTHERカテゴリの最新記事