Python関連のことを調べてみた2020年10月16日

Python関連のことを調べてみた2020年10月16日

【AWS lambda】lambdaで各種ライブラリを含めてデプロイする(パスワード付きzipを生成し、s3にアップロードする) @ Python

#やりたいこと
タイトルそのまんまですが、lbxxx.soなどのライブラリを含めてデプロイし、AWS lambda上でパスワード付きのzipを生成し、S3のバケットに格納します。

#立ちふさがる壁
そんな私のやりたいことの前に壁が立ちふさがります。
1. **[zipfile](https://docs.python.org/ja/3/library/zipfile.html)(Pythonで標準で用意されているzipファイルの作成などを行うモジュール)では、パスワード付きzipファイルの暗号化がサポートされていない!**
2. **ローカルのソースコードをzipファイルに固めて、lambdaにデプロイしただけでは、パスワード付きzipを作成することができない!**

いかにして、この壁を乗り越えたのかをここに残したいと思います。

#環境
####ローカル開発環境
+ Win10(ホストOS)
+ Docker
+ Linux 10(DockerコンテナのOS)
+ VS Code
+ Python 3.8.6
+ pip 20.2.3
+ aws-cli 2.0.56

VS C

元記事を表示

PyCryptodome AES暗号化と復号メモ

AES暗号化メモです。

環境
Python3.7
pycryptodome 3.9.8

##ソースコード

“`python3
# -*- coding: utf-8 -*-
from Crypto.Cipher import AES

key = b”1234567890123456″
data = b”hogehoge” # 暗号化する文字

# 暗号化処理
cipher = AES.new(key, AES.MODE_EAX)
ciphertext, tag = cipher.encrypt_and_digest(data)

print(ciphertext)
print(tag)
print(cipher.nonce)

# 復号処理
cipher_dec = AES.new(key, AES.MODE_EAX, cipher.nonce)
dec_data = cipher_dec.decrypt_and_verify(ciphertext, tag)

print(dec_data)
“`

##結果
“`
b’7\xecO,\xa4J\\:’
b’\x8eQ

元記事を表示

【Python】返り値がありすぎて順番忘れちゃった。。

「Effective Python 第2版」を読んでいて、調べた内容をまとめました。

## 順番ってこれであってるんだっけ?
Pythonを書いていてこういうことはないでしょうか?私はあります。

“`python:unpack.py
# これは安心できる
x, y = point2d

# これは…順番あってるんだっけ?
weather, precipitation, temperature, humidity = \
get_meteorological_info(place, time)
print(weather)
print(precipitation)
print(temperature)
print(humidity)
“`
Pythonではアンパックやタプルの作成をどこでも自由に行えるために、コードの意味が曖昧になりやすいです。この例では、順番に特に意味もありません。これを改善するためには適切な制限を与えてあげれば良さそうです。Pythonではデータを表現するクラスを利用することで改善できます。

## どうするか
こんな感じでアクセスできれば分かり

元記事を表示

Keras Functional APIでXORを実装してみる

#はじめに
本格的にKerasを始めようと思い、まずはXORの予測モデルを構築するコードを書いてみた。将来的にGraph Convolutional Networksなど複雑なモデルも作りたいと思っているため、Functional APIから始めてみる。

#ソース
こんな感じ。
BatchNormalizationをつけないと、局所解に陥りやすかったのでつけている。最終層はlinear層にしている事例が多かったが、0, 1のクラス分類問題であり、納得がいかなかったので、sigmoid関数とした。中間層2層のユニット数は、それぞれ8としてみた。

“`sample.py
import tensorflow as tf
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras.layers import Dense, Input, Dropout, BatchNormalization

import numpy as np

def main():
x_input = np.arr

元記事を表示

Django Todoリスト 作成

施設ごとのTodoリストを管理するための機能を追加しました!
シフト等の入力画面を整えたり、入力規則機能を作ろうと思っていたのですが、なかなか難しく、調べてもなかなかすすまなかったので、新しいアプリを作ってしまいました(笑)

画面はこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/701342/8282f449-3467-b5f9-53f3-35075aecc40d.png)

完了分の表示は、チェックボックスで切替を検討しQiitaで質問もさせてもらっていましたが、javascriptがわかっていないのでいただいたヒントに基づいて、aタグで実装しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/701342/3339794e-be5f-f1b3-1cb4-c9c89279c860.png)

詳細画面ですが、Djangoの基本機能だと本当にシンプルすぎて味気ないで

元記事を表示

MNISTの行列表示

python==3.7.9
Keras==2.2.4
tensorflow==1.13.1

#mnistを画像表示する

“`python

import urllib.request
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np

#prox = urllib.request.build_opener()
#urllib.request.install_opener(prox)

from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()

plt.imshow(x_train[0])
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/a6a1291f-bd0f-9f8a-8ddc-1a899cf54402.png)

#行列

元記事を表示

scikit-learnの決定木をPlotlyのTreemapで可視化する

これを

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218449/fe43cf2b-a2c3-65bc-15b4-67502c8112d4.png)

こうするのぢゃ:angel:

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218449/ec29d6c0-071f-78bd-a165-f80eb83abe5c.png)

# やり方

## `plot_tree`で可視化

まず普通に決定木を作って`plot_tree`で可視化してみます。

“`python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.tree import DecisionTreeClass

元記事を表示

自動総当たり機械学習(回帰分析編)~これでパラメータチューニングの時間大幅短縮~

# RegressionAutomaticSearch

任意の機械学習でパラメータを変更したモデルで回帰分析を行うプログラムを作成しました.
これで最適なモデルとパラメータを見つけましょう.
今回はボストン市の住宅価格の予測を行ってみます.
モデルはLinearRegression,DecisionTree,RandomForest,AdaBoostを使います.

## 仮想環境の作成

venvを作成

“`
C:\RegressionAutomaticSearch>py -m venv venv
“`

venvを適用

“`
C:\RegressionAutomaticSearch>.\venv\Scripts\activate.bat
(venv) C:\RegressionAutomaticSearch>
“`

## パッケージのインストール
パッケージをアップデート

“`
(venv)C:\RegressionAutomaticSearch>python -m pip install –upgrade pip
“`

必要なパッケージを一括インストール

元記事を表示

Raspberry Piを使って学生証から学籍番号を読み取ろう

# 導入

私が所属している大学の研究室では、元々先人の方が部屋の扉の鍵が開けた、閉じたというのをAmazon Dashボタンを押すことによってSlackに投げてシステムが構築されていたのですが、今年に入ってすぐ内部のボタンが寿命を迎えたのか、通知が飛ばなくなってしまいました。新しくボタンを新調する、電池を換えるなどの考えはあったのですが、どうせなら卒業研究でこれらの発展として部屋の扉だけでなく学生証を使って在室状況を確認できれば、電池切れなどでシステムが動かなくなるということは無くなりますし、さらに在室状況を確認することによって鍵の管理が楽になるのではと思い、友人と協力して卒業研究の一環で研究室内の在室状況を確認するシステムの内、「学生証から学籍番号を読み取る部分」のシステムを私が担当することになりました。その備忘録として記事に残させていただきます。…と言っても前例([静岡大学](https://qiita.com/pf_packet/items/9a50d9f3b1f478930b02)と[会津大学](https://aizu-vr.hatenablog.com/entry/201

元記事を表示

wxpythonで時間待機処理を実現する方法

# はじめに
wxpythonで初めて時間待機処理を書こうとしたとき、

1. time.sleep()で時間待機してみる
2. 画面が応答しなくなり原因を調べる
3. wx.TimerやThreadで対応する

という道を辿ると思います。(ですよね?)
この時間待機処理を結構頻繁に使うのでメモしました。

正直この内容はそこらじゅうに転がっているので、参考記事の1つくらいに見て頂ければ幸いです。

# time.sleep()でエラーになる原因
大雑把にいうとGUIの裏で動いているMainloopがsleepで止まってしまう事が原因です。

# 環境
Mac OS
wxpython 4.1.0

# インポート
wxpythonをインストールします

“`terminal:
pip install wxpython
“`
threadingはインストールなしで使用可能です。wx.Timerを使用する時は使いませんが、代わりにtimeを使います。

“`python:
import wx
import threading
import time
“`

# 方法1 wx.Tim

元記事を表示

yolov5の可視化プログラム目次

##はじめに
この個別のプログラムは標識検知と銘打っていますが,まだ外に持って行って実験できる器材の準備と諸々が実現されていないので今回は既存のモデルを使って可視化プログラムを実現しています.一応看板検知のためのモデルは作成してありますが,実現はしていませんのでご了承ください.
なお,プログラムコードをgithub上に公開しています.starを押してもらえるとやる気につながりますので合わせてお願いします.
https://github.com/S-mishina/Stop-sign-detection
##目次
⓵停まれの看板を検知する.
https://qiita.com/asmg07/items/8f450e1ae6e213890db9
⓶停まれ標識検知 可視化部分の開発part1 物体の検知と記録※今回は椅子を検出しています(モデルは自作ではありません)
https://qiita.com/asmg07/items/b0ab83d930adbed79df2
⓷停まれ標識検知 可視化部分の開発part2 物体を検知した時にソケット通信で別システムに知らせる
https://qiit

元記事を表示

停まれ標識検知 可視化部分の開発part5 物体を検知した時に検知したものを検知したものを表示する

##前回まで
前回実装した機能は以下のものになります.
Yolov5上で物体を検知した時➡ソケット通信をする.➡ソケット通信を受けたときに音声を再生する.(複数)
##今回実装する機能
今までの実装で,音での可視化は可能でしたが実際のものを可視化することはできませんでした.
逆にカメラ映像を見ていればわかるだろという話もありますが…なので今回はあまり意味がないと思われる方もいる機能かもしれませんが,認識したものを可視化するプログラムについて述べていきたいと考えています.
##なぜこの機能を実現するのか
これは後々web上での可視化を行いたいと考えているので,その時にソケットで飛ばせるようにこの機能を実現しました.
##実装について
今回はソケット通信の部分を関数化したのでそこについてもちらっと載せていきます.内容はpart3とかpart4とかで書いています.
###socket部分
クライアント部分

“`detect.py
def socket1():
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s

元記事を表示

swagger.yamlから、Pythonで、APIリスト.csvを作成してみました

# 環境構築
ついでに、初めてQiitaで記事を書いてみました。

### 前提
MacBook Pro
macOS Catalina 10.15.7

### 導入
下記をインストールしました。

1. Docker
* Visual Studio Code
* Visual Studio Code 拡張機能
1. Japanese Language Pack
* Docker 1.6.0
* Remote – Containers 0.145.0
* Python
* PyLint
* Rainbow CSV 1.7.1
* YAML 0.11.1
* Swagger Viewer 3.0.1
* OpenAPI (Swagger) Editor 3.7.0

参考:

* [開いているWebページへのリンクをMarkdown形式でコピーするブックマークレット – Qiita]( https://qiita.com/vmmhypervisor/items/099582feb9f9615c5b8b )
* [VM

元記事を表示

ある地域のIPアドレス割り振り・割り当て一覧を作る

# はじめに

インターネットサービスをやっていると、アクセスしてくるホストの地域[^host-user]を判別したいってことが時折あります。

たとえば日本では「IPアドレス逆引きすると`*.hkd.mesh.ad.jp`だったので北海道からのアクセスっぽい」という判別ができたりします[^maxmind]が、今回はそこまで細かいことはしません。地域という表現ですが国ぐらいの粒度[^region]で考えます。

[^maxmind]: この方向は[MaxMind](https://dev.maxmind.com/geoip/geoip2/geolite2/)あたりの領分になってきます。

[^host-user]: 本当に欲しいのはアクセスしてくるユーザの居住地域とかな気もしますが、アクセスしてくるホストのIPアドレスしか分からないという前提。現実問題としてアクセス元のIPアドレスから分かるのは分配された組織の所在する地域でしかなく実際にホストやユーザがどこにいるかは別の話になります(VPNありますし)。

## IPアドレスと地域の関連付け
IPアドレスはIANAから各[RIR]

元記事を表示

避けて通りたかった Hash chain その(1)

こんばんは(*´ω`)
題名には、思わず心の声が入っちゃいました(笑)
初めて勉強する人は私を含めイメージが難しかったのではないでしょうか?
なるべく分かりやすく、さぁ、飛び込んでみましょう。

取り急ぎ、適当な配列を用意しました。
これから適当なデータを以下の配列に格納していきます。
普通ならポインタ 0(=x[0]) から順にデータを格納するのですが、今回は趣向を変えましょう。
![図1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/2be46371-0809-5341-58f5-49e003bf41e8.png)
今回挑戦する Hash chain は
**1つのアドレスには 1つのデータしか格納できませんでしたが、
もっと沢山詰め込めないか !! っていうアプローチです。**(ちょっと乱暴ですかね。。)
有識者の方の資料を拝見すると以下のような図をよく見かけます。
![図2.PNG](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

鹿児島県の Go To EATの利用可能店舗のPDFをCSVに変換

鹿児島商工会議所の[利用可能店舗](http://www.kagoshima-cci.or.jp/?p=20375)のPDFからCSVに変換

エリアごとにPDFファイルが分かれているのでひとつにまとめる

# スクレイピング
“`python
import requests
from bs4 import BeautifulSoup

url = “http://www.kagoshima-cci.or.jp/?p=20375”

r = requests.get(url)
r.raise_for_status()

soup = BeautifulSoup(r.content, “html.parser”)

result = []

for a in soup.select(“#contents_layer > span > p > a”):

s = a.get_text(strip=True).replace(“全域”, “”).lstrip(“〇”)

# 地区は除外
if not s.endswith(“地区”):

result

元記事を表示

Julia早引きノート[06]ループ処理

###ループ処理(書き方例)

“`ruby:note06

◆while~end文
i = 0 # iの初期化
while i <= 10 println(i) global i += 1 # グローバル変数化 end ◆for~end文(=イコール使用の場合) for i = 1:10 println(i) end ◆for~end文(in使用の場合) list = [1, 5, 10] for i in list println(i) end ``` ##解説 ・Juliaでは、ループ処理として**whilte~end**文と**for~end**文が使用できます。whilte、forともendまでの間の部分で繰返し処理が実行されます。 ・Pythonと大きく異なる点は、**end**があることです。 ・while、forなどのブロック内で使用される変数はローカル変数のため、ブロック外で使用できません。 ##

元記事を表示

【50歳過ぎたオッサンが】生まれて初めてWEBアプリを作製するまで。(deep learning編)

はじめまして。

50過ぎたオッサンです!

プログラミングスキルはゼロです!!

プログラミング経験がないので、ただ漠然とした「WEBアプリ」を作製したい!

そんな思いがありました。

アイデアもなく、ただ何かを作りたい!そう思ってました。

【ヒントの種は?】

***まずプログラミング言語を決めるところからのスタートでした。***

どんな言語が良いのか?

どんな言語が簡単か?

色々と検索をしたら「python」が簡単ということがわかりました。

pythonを調べまくりました。

pythonならWEB系も人工知能系もいけるということで

本を買いました!

![web.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669624/2887d741-b949-0e1c-f259-a72caa953173.jpeg)

この本は初学者にも優しい本で、分かりやすかったです。

やりたいこと(スキルが伴う)がまだ見つからないので

困ってました。

言語はパイソン、やりたいことはまだ

元記事を表示

Python基礎

Pythonの基礎知識です。
自分の勉強メモです。
過度な期待はしないでください。

基礎知識

・Pythonのプログラムファイルの拡張子は`py`
 例:××××.py

IDLEを使った場合

・シェルウィンドウ
 IDLEを起動した状態

・エディタウィンドウ
 -プログラムを入力するものをテキストエディタと言う
 -ファイルの新規作成→IDLEのシェルウィンドウのメニューバーにある`「File」→「New File」`
 -保存→エディタウィンドウにプログラムを記述をしファイルを保存する時は、エディタウィンドウのメニューバーにある`「File」→「Save as…」`
 -ファイルを開く→エディタウィンドウのメニューバーにある`「File」→「Open」`
 -プログラムの実行→エディタウィンドウのメニューバーにある`「Run」→「Run Module F5」`

命令

・出力を行う`print()`
 全角、半角に関わらず`文字列`を出力するには`print()`と言う命令を使う
 また、文字列を扱うには`ダブルクォテーション(””)`また、`シング

元記事を表示

KivyでYes No Popupを作る

# 概要
はい・いいえを聞くダイアログが欲しかったので、使いまわしやすいような形で作りました。
![Demo](https://github.com/Take-Me1010/Yes-No-Popup/blob/main/image/demo.JPG?raw=true)

# コード
[git](https://github.com/Take-Me1010/Yes-No-Popup)にも置きました。

“`__init__.py
”’
a simple Yes/No Popup
LICENSE : MIT
”’
from kivy.uix.popup import Popup
from kivy.properties import StringProperty

from kivy.lang.builder import Builder
Builder.load_string(”’
#
:
FloatLayout:
Label:
size_hint: 0.8, 0.6

元記事を表示

OTHERカテゴリの最新記事