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

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

UnicodeDecodeErrorを回避する方法

【muiの記録】
現在、Djangoを使用してWebアプリケーションを作成しております。
データの処理でUnicodeDecodeErrorが出た際、回避方法を考えましたので共有します。

1、デコード時のユニコード判定してエラーを回避。
2、エンコード時に元のユニコードを指定。

###forms.py
“`python

from django import forms

class UploadForm(forms.Form):
#フォームから選択されたファイルを格納
testfile = forms.FileField()

“`
###views.py
“`python

from django.shortcuts import render
from application.forms import UploadForm
import pandas as pd
import chardet

def url(reuest):
if request.method == ‘POST’:
upload = UploadForm(req

元記事を表示

【Lambda】list_objectsでひっかかったこと

# やりたいこと
* list_objectsで指定S3バケット上のキー一覧を取得
* あるキーが存在するならファイルにデータを追記
* あるキーが存在しない場合ファイルを新規作成
* ランタイムはPython3.9

# ①LambdaからS3バケットにアクセスできない
“`Python:Error
[ERROR] ClientError: An error occurred (AccessDenied) when calling the ListObjects operation: Access Denied
Traceback (most recent call last):
“`
**解決策:LambdaにS3のアクセス権限を付与**
1.Lambda関数を管理しているIAMロールの概要ページにアクセス
![01_アクセス権限.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2728375/cb40ccb5-e8e1-4144-0a47-b72e257f4c22.png)
2.

元記事を表示

Python3エンジニア認定基礎試験合格レポート

はじめまして!今年から社会人になりました新卒エンジニアです。
入社後配属された部署の課題でPython3エンジニア基礎試験を受験し合格したので、勉強方法や受験してみての感想について書こうと思います。

私は就職のため地方から引っ越してきて数か月ということもあり金銭的余裕がなかったので、参考書などを購入せずにネット上の模擬試験を駆使して勉強しました。
内容に対して少々お高めの受験料だと思うため、同じ状況の人の参考になれば幸いです。
# Python3エンジニア認定基礎試験とは
Python3エンジニア認定基礎試験とは簡単に言うとPythonの基礎知識を問う資格試験です。
### 試験概要(資格概要)
受験日:通年
試験センター:全国のオデッセイコミュニケーションズCBTテストセンター
受験料金:1万円(税別) 学割5千円(税別)
問題数:40問
試験時間:60分
合格ライン:正答率70%
出題範囲:オライリー・ジャパン「Pythonチュートリアル」+一般的な知識
参考:Pyhon3エンジニア認定基礎試験公式サイト

https://www.pythonic-exam.com/exam/b

元記事を表示

Flask-loginでタイムアウト設定(記録)

FlaskにてFlask-loginを使用してsessionのタイムアウト設定を行いました。
パスワードのハッシュ化、セッションのタイムアウト後にログイン画面に推移します。

###app.py
“`python
#import
from flask import Flask, session, app
from flask import render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
from flask_login import UserMixin, LoginManager, login_user, logout_user, login_required, current_user
from werkzeug.security import generate_password_hash, check_password_hash

#app
app = Flask(__name__)
app.config[‘SQLALCHEMY_DATABASE_URI’] =

元記事を表示

HTMLのselect文、データベースから値を取り出して選択済みにする

Flaskを使用して店舗情報を管理するWEBアプリケーションを作成していた際、
データを打ち間違えた際、アップデートページを作りたいと思いました。
しかし、

元記事を表示

リスト型に対応していないSQLAlchemy(sqlite3)で取り扱う方法

FlaskでWEBアプリケーションを作成している最中にデータベースにリスト型で格納したいと思い、方法を探していたところに「sqlite3はリスト型に対応していない」という記事を目の当たりにしました。。。

データベース変えようかなとも思いましたが、
request.form.getlist(‘___’)というコードが存在していた為方法を模索した結果、、、、

1,getlist(”)のみだと文字列型のリストとなり、HTML上でfor文を使用して回した際一文字づつの表示となってしまう。
2,JSONを使用した場合に関しても、JSON文字列のリストになる為、for文で回した際一文字づつの表示となってしまう。

最終的に、ワードを繋げたり離したりが可能なjoin,splitを使用しました。

###app.py(格納,取り出し)
“`python

@app.route(“/create”, methods=[‘GET’,’POST’])
def create():
if request.method == ‘POST’:

name = requ

元記事を表示

SciPyのMILPソルバーを簡単に実行するための関数を実装した

## 参考にしたもの

– [SciPyのMILPは使えるのか??(SciPy==1.9.0の新機能の検証)](https://qiita.com/s-inoue-git/items/5e4c16fc125ab9e3fbd5)
– [scipy.optimize.milp](https://scipy.github.io/devdocs/reference/generated/scipy.optimize.milp.html)

## 背景

[SciPyのMILPは使えるのか??(SciPy==1.9.0の新機能の検証)](https://qiita.com/s-inoue-git/items/5e4c16fc125ab9e3fbd5)によると、ScipyのMILPソルバーが高速だが、使いにくいとのこと。確かに変数の種類が複数あると、行列表現するのは大変そう。だが、

> 実務MILPを解く場合は、GurobiやCPLEXを使うしかない。

こう言われてしまうと実務家として頑張りたくなってしまったので、pulpの定式をscipyの入力に変換する関数を自作することにした。引用元ではpy

元記事を表示

小道具:素数表(エラトステネスの篩)

指定した上限で素数表を出力します。アルゴリズムはエラトステネスの篩なので遅いです。

“`python:pntab.py
#!/usr/bin/env python3

import argparse

parser = argparse.ArgumentParser()
parser.add_argument(‘N’, type=int, help=”上限”)
args = parser.parse_args()

pntab = lambda N: (set([2] + [o for o in range(3, N + 1, 2)]) –
set(a * b
for a in range(3, (N + 2) // 3, 2)
for b in range(3, (N + a – 1) // a, 2)))

m = ”
for d in sorted(pntab(args.N)):
m += ‘%d,’ % d
if len(m)

元記事を表示

【現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用】 roboterを簡易的に記述しました。

# 概要
 Udemyの酒井潤さん(以下酒井先生と呼ばせていただきます)の講座「現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル」(以下Python3入門+応用)にてプログラミングを勉強しています。

[講座のページはこちら](https://www.udemy.com/course/python-beginner/)

 酒井先生はシリコンバレーで現役のプログラマーとして活躍されているお方で、超一流のプログラミング技術を学ぶことができる大変貴重な講座です。

 こちらの講座ではセクション9にて仕様書にしたがったプログラミングの課題があるのですが、実際にクライアントの依頼に沿って成果物を納品するという想定になっています。酒井先生の模範解答はMVCモデルというソフトウェアの設計モデルを用いて書かれていますから、このように現場で使われている記述方法が学べるという点においても他の追随を許さない大変実りのあるものとなっています。

 しかしながら、現場経験がなく基礎的な本から学んだだけの私にとって、模範解答はあまりにも洗練されすぎ

元記事を表示

世界は色んな言語であふれている(langdetectで何語かを判定してみる)

### ■ はじめに
過去に何語かわからない人からSNSでメッセージをもらったことがあります。
たしかアラビア語で、最初見た時は文字化けかと思いました(怖くて返信しませんでした)。
SNSのコメント欄や口コミサイトを眺めていると日本語や英語、見たことのない言語が混ざっていることがあります。
最近Nakatani Shuyo(https://github.com/shuyo) さん作成のライブラリの[**langdetect**](https://pypi.org/project/langdetect/)で何語か判定できることを知り、使ってみたくなりました。

### ■ 対応言語
**langdetect**が対応できるのは以下の55種類の言語。
以下は**言語コード**で記載されています。
`af, ar, bg, bn, ca, cs, cy, da, de, el, en, es, et, fa, fi, fr, gu, he,
hi, hr, hu, id, it, ja, kn, ko, lt, lv, mk, ml, mr, ne, nl, no, pa, pl,
pt,

元記事を表示

早期リターンって,値を返す関数しか考えてない?

タイトル通り「早期リターンって,値を返す関数しか考えてない?」

初心者入門のプログラム FizzBuzz。回答例は以下のようなものですよね(Python)。

“`Python
def fizzbuzz(i):
if i % 3 == 0 and i % 5 == 0:
print(“FizzBuzz”)
elif i % 3 == 0:
print(“Fizz”)
elif i % 5 == 0:
print(“Buzz”)
else:
print(i)
“`

これを,「早期リターン」で書くと,とてもみっともないプログラムになります。
読みやすいですか? 保守性が高いですか? メリットは何?

“`Python
def fizzbuzz(i):
if i % 3 == 0 and i % 5 == 0:
print(“FizzBuzz”)
return

if i % 3 == 0:
print(“Fizz”)

元記事を表示

退屈な念仏はpythonにやらせよう

日本の仏教では、自身の往生などを目的として7日間の間に百万回念仏を唱える「百万遍念仏」があるそうです。

https://ja.wikipedia.org/wiki/%E7%99%BE%E4%B8%87%E9%81%8D%E5%BF%B5%E4%BB%8F

お経を唱えることに集中することで、煩悩から解放されたり、祈りが届いたりするのでしょう。

自分も人生の諸々に疲れ切っていたので、念仏を唱えて救われようと思ったのですが、そもそも念仏を唱える気力がないという問題にぶち当たりまして、pythonに代わりに念仏を唱えてもらうことにしました。

書いたコードはこちらです。

“`nenbutsu.ipynb
Nenbutsu = ‘南無阿弥陀仏’
Hyakumanben_Nenbutsu = Nenbutsu * 1000000
print(Hyakumanben_Nenbutsu)
“`

文字列型の「南無阿弥陀仏」と整数型の「1000000」の乗算が定義できることがポイントです。

(文字列型と整数型の足し算ー例えば「a+3」などーは定義されてない点は注意が必要です。)

![スク

元記事を表示

便利ツール3選!

## TL;DR

使えそうなツールを3つ紹介します。

1. Python – [diagrams](https://github.com/mingrammer/diagrams)
1. Markdown – [Mermaid](https://mermaid-js.github.io/mermaid/#/)
1. Microsoft – [PowerToys](https://github.com/microsoft/PowerToys)

## 概要

エンジニアとして働いている中で、もっと早く知りたかったものを3つ紹介したいと思います。これらのものは作業の効率向上につながると思いますし、マスターしてしまえば見栄えにもなるかと思います!

ぜひ使ってみてください!

## 【1】 Pythonで簡単に構成図を!

AWSの構成図等の図を、pythonコードで描けるライブラリーがあります。これを使えばもっと簡単にアーキテクチャ図が描けますね!https://github.com/mingrammer/diagrams

### インストール

“`shell
pip instal

元記事を表示

Colabでの綺麗な実験

# 0. はじめに
– この記事は,google colaboratoryを使用して実験をする際の効率を上げることを目的とした記事です.
– 結論としては,`%run main.py`,`subprocess.make()`をうまく使用してコードの綺麗さ,実験の効率をあげることを提案します.

# 1. なぜGoogleColaboratoryを使うの?

– Googleのアカウントを持つ誰もが,[GoogleColaboratory](https://colab.research.google.com/?hl=ja#scrollTo=OwuxHmxllTwN)を使うことで,GPUを使えるため,行列計算が早く行えます(無償の場合,時間制約あり).
– また,GoogleColabotatoryで実行することで,計算結果をその場で確認することができます.

# 2. Colabの利点と欠点
– 利点
– 結果が見やすい.
– 可視化をしやすい.(可視化によるデータの確認等)
– 欠点
– セルごとに実行するため,ただ単にGPUを回すことが目的である場合はエンター

元記事を表示

webhookを叩くだけのシンプルなLambdaを5つの言語で作ってみて実行速度を測る

我が社にて、cloud watchのalertを拾って、LambdaからIFTTTのwebhookに繋げてパトライトを光らせよう、っていうプチプロジェクトが走ろうとしております。

![スクリーンショット 2022-08-13 13.20.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/96ae713e-868f-6a59-91ff-2bfbd6bbf46c.png)

だいたいこちらの記事のような内容です。
https://kimama.cloud/2020/01/06/alarm2patlite/

ただ、今回はこのへんの事情は関係なく・・・

![スクリーンショット 2022-08-13 13.22.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/33dc51b1-853e-9f45-be5d-ef884f48dadc.png)

↑ここだけの記事です。Lambdaのみ。

##

元記事を表示

プログラミング初心者の機械学習の勉強に役立った記事

こんにちは。初めまして!
本当にど文系で大学まできて営業職として就職した社会人1年目の私がPythonの勉強を始めて試行錯誤していく過程を綴ります。
私は現在機械学習の授業を受講しているため、ゼロから勉強するにあたり助けられた、役立った記事やサイトをシェアできればと思います。

まだ学習途中なので、一旦箇条書きで掲載。
①基本のき
機械学習に必要な基礎のみならずそこで使われる数学について、そもそもPythonの基礎についての記載も細かく書いてあったので、順番にフォローすることで理解が深まりました。

https://tutorials.chainer.org/ja/01_Welcome_to_Chainer_Tutorial.html

②y = wTxすらわからなかったのですが、すごくわかりやすい説明が書いてありました。

https://qiita.com/mucunwuxian/items/a23305d54ffcd8dc0a06

元記事を表示

尤もクラスタらしいクラスタの中心を検出する

# 尤もクラスタらしいクラスタの中心を検出する
いくつかのクラスタがあるサンプル郡の中で密度が高いクラスタの概ね中心になるサンプルを検出します
本ロジックは KMEANS や GMM のようなEMアルゴリズムを使わず一定の計算数で検出したいという条件があります

![test4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104691/6fe38949-75f2-b5fb-d92e-4bcd1cf5b782.png)

この画像の赤い点を見つけるロジックを考えます
このサンプルは左から250個のクラスタ、250個のクラスタ、300個のクラスタとなるよう意図的に作られたサンプルです

## 方法
全てのサンプルにおいて全てのサンプルからの距離の逆数の和を計算します
”全てのサンプルからの距離の逆数の和” を”密度係数”とします
密度係数が最も大きい箇所を密度の高い場所とします

![calc_dense.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

RaspberryPi3 B+で監視カメラを作ってみた

right(engineer)です。

今回はRaspberryPi(以降ラズパイ)で監視カメラを作成してみました。

# 1.環境

– Raspberry Pi3 Model B+
– カメラモジュール(感光チップOV5647センサー)[ブランド:LOTW]
– Python3 (Ver.3.9.2)
– pip3 (Ver.22.2.2)
– OpenCV2 (Ver.4.6.0)
– NumPy (Ver.1.23.1)
“`
$ git –version
Python 3.9.2
$ pip3 –version
pip 22.2.2 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9)
$ python3
>>> import cv2
>>> cv2.__version__
‘4.6.0’
>>> import numpy
>>> numpy.__version__
‘1.23.1’
>>> exit()
“`

# 2.事前準備
今回はプログラミング言語としてPython3を使用した。

### 2

元記事を表示

エージェントシミュレーション2(噂の広まり方)

# 前回は・・・
コンビニなどの小売店内を想像したエージェントシミュレーションをしました。リンクを張っておきます。
<エージェントシミュレーション(コンビニ)>
https://qiita.com/chutake_exe/items/7906fa90f8272f326895

# テーマ:噂の広まり方
大学が夏休みに入り、自由な時間が増えました。前回のコンビニのシミュレーションをもとに、今回は噂の広まり方をシミュレーションしてみようと思います。

今回は噂を伝える人、噂を受け取る人を用意します。ここではそれぞれAとBと名付けます。

### ・レイアウト
前回と同様に、pythonのTKinterを使います。30×30マスでフィールドを構築します。また観察を行うために必要なボタンもいくつか実装しました。

ここで赤い人物はA(噂を

元記事を表示

ガウス過程回帰を用いたハイパーパラメータチューニング

ハイパーパラメータチューニングにあたっては,一般的にグリッドサーチなどの方法が用いられます.しかし,一回の学習に時間がかかるようなモデルにおいては,より効率的なハイパーパラメータ探索が求められます.
今回はガウス過程回帰を利用することによって,より効率的なハイパーパラメータチューニングを目指します.

# ガウス過程回帰によるハイパーパラメータ調整
獲得関数をUCB(Upper Confidence Bound)とし,ガウス過程回帰に基づいたハイパーパラメータチューニングの方法をまとめます.
アルゴリズムの構築にあたっては,以下の大変面白い記事を参照しています.

https://tellmoogle.hatenablog.com/entry/cokehigh_bayesian_optimization

## 問題設定
訓練データ$(X_{\rm train}, {\bf y}_{\rm train})$を用いてモデルを作成し,テストデータの入力$X _ {\rm test}$に対して出力${\bf y} _ {\rm test}$を予測する問題を考えます.今回のモデルでは,ハイパー

元記事を表示

OTHERカテゴリの最新記事