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

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

AWS SAMを使って最もシンプルにLambda × APIGatewayのWebAPIを構築する

# 概要

今回は前回紹介したAWS LambdaのAWS サーバーレスアプリケーションモデル (Serverless Application Model)、AWS SAMの続編になります。

【前回の記事】
[AWS Lambda SAMとは?~AWS SAMを使ってPythonのLambdaプログラムを簡単に作成する~](https://qiita.com/fkooo/items/2dc5ded5149379d7305a “AWS Lambda SAMとは?~AWS SAMを使ってPythonのLambdaプログラムを簡単に作成する~”)

SAMの便利さは前回の記事でなんとなくわかったと思うので今回からはより実践編です。
実際にSAMを使ってAWSのサービスを連携させてみようという内容です。

第一回は、Lambda × APIGateway 編にしました。
この投稿を最後まで実行すると以下の図のようなAWSサービスで構築したWebAPI環境が、なんと**2ファイル30ライン**ほどで完成します。
理解しやすいように**最もシンプルな記載例**としてファイルサンプルを作成したので

元記事を表示

ランダムフォレストの各特徴量の重要度をfeature_importanceから可視化してみた

## はじめに
ランダムフォレストでモデルを作成した後に、各特徴量がどれぐらいの重要度で扱われているかを可視化する方法がわかったので、備忘録としてまとめておきます。
誰かの参考になれば幸いです。

## まずランダムフォレストモデルの構築
タイタニックでランダムフォレストを構築します。
わかっている方は、ここは飛ばしていただいて、[各特徴量の重要度を確認](https://qiita.com/yasui83/items/a83428361fce6b6fbb42#%E5%90%84%E7%89%B9%E5%BE%B4%E9%87%8F%E3%81%AE%E9%87%8D%E8%A6%81%E5%BA%A6%E3%82%92%E7%A2%BA%E8%AA%8D) まで飛んでいただいて問題ありません。

### データの読み込み
まずkaggleからタイタニックのtrainデータとtestデータをgoogle colaboratoryにuploadします。
その後、下記のコードを記載して、データの読み込みを行います。

“`
import numpy as np
import panda

元記事を表示

anaconda インストールからPATH設定まで

Anacondaをインストールして、実際に使用できるまでの手順。

**対応OS**
Windows 10

### 1. Anacondaをインストール
公式サイトよりインストーラを取得する。
https://www.anaconda.com/products/distribution

exeを起動してインストーラを実行、選択肢はデフォルトの状態でOK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662954/8dfda3f8-a70a-de57-71c6-6773ca1741f8.png)

インストールは結構長いです。(10分以上自分はかかりました)

### 2. PATHの設定
環境変数のPATHに、以下の3つを設定。
– C:\Users\[ユーザー名]\anaconda3
– C:\Users\[ユーザー名]\anaconda3\Scripts
– C:\Users\[ユーザー名]\anaconda3\Library\bin

入力後、PCを再起動。

### 3. 確

元記事を表示

paizaでsympy その7

# 概要
sympyが、魔法なので、paizaで、やってみた。

# 参考にしたページ

https://qiita.com/mrrclb48z/items/0ea9d1ed55b117947108

# 実行結果

“`
#(1) -4*x/3 – 8 , 4*x/3 + 8
#(2) 168
#(3) 10 39 35
#(4) 4
#(5) Point2D(-1, 0)
#(6) -8*x – 8
“`

# 成果物

https://paiza.io/projects/N5wBQf0I34lTo17jaMVVmg?language=python3

以上。

元記事を表示

AWS提供でないベースイメージからLambdaを作る

# はじめに
以前、コンテナイメージからLambdaを作りました。

https://qiita.com/a_b_/items/d9398fd6efe0f66b6c6f

ところが諸事情(Amazon Linuxでは、PowerShellが十全に動かせず、MS365の監査ログが取得できない)のため、Ubuntuをベースとしたコンテナを作ろうとした際に、わかったことややったことを記事にします。

# 参考

コンテナイメージを使ったLambdaの仕組みについての解説は以下になります。

https://aws.amazon.com/jp/builders-flash/202104/new-lambda-container-development-2/?awsf.filter-name=*all

Dockerfileの作り方の参考にしたのは以下です。

https://github.com/nickadam/powershell-lambda

# Lambda動作の仕組み

公式の解説に書いてある内容の自分なりの解釈です。

– Lambda関数を実行するには、Lambdaサービスとラ

元記事を表示

太陽磁気活動周期データのプロット

## はじめに
我々の太陽には、活発な磁気活動があります。磁気活動が穏やかな時は太陽表面ものっぺりしており平和なのですが、磁気活動が活発になると黒点が多く出現しフレアと呼ばれる高エネルギー爆発現象が引き起こされたりします。太陽の磁気活動は周期性を持っていることが知られており、太陽内部のダイナモ機構によって周期的な磁場生成が維持されていると考えられています。

## David Hathaway 氏のウェブサイト
NASA の Marshall Space Flight Center の David Hathway 博士のウェブサイトには、太陽の磁気活動や流れ場に関する様々な観測データが公開されています。
http://solarcyclescience.com/index.html
今回は、主にこれらの公開データをダウンロードして実際にプロットしながら遊んでみたいと思います。

## 太陽黒点面積データ
まずはじめに太陽黒点面積データをダウンロードしてきます。
“`shell
wget http://solarcyclescience.com/AR_Database/sunspot

元記事を表示

最速の素数判定を目指して

みなさんも、一度は「素数判定を高速に行いたい」と思ったことがあると思います。今回は次のレギュレーションで最速を目指します。

* $2 \le n < 2^{32}$ なる $n$ に対して素数かを確定的に判定できる。 * $2 \le n < 2^{32}$ の一様ランダムな入力に対する平均計算時間を最小化する。 なお、素数判定の正確性を調べるために `sympy.ntheory.isprime` と結果が一致するかを確認しています。また、[ここ](https://github.com/haru-44/prime_text) に記載の関数を説明なく使用します。 ## 試し割 まず素数判定と言われて思いつくのが試し割です。 ```python %%timeit N = 10_000 for _ in range(N): n = random.randint(2, 2**32-1) flg = True for i in range(2, sqrt_int(n) + 1): if n % i == 0: assert

元記事を表示

UTH-BERTをPyTorchで実装

# はじめに
[東京大学大学院の医療AI開発講座](https://ai-health.m.u-tokyo.ac.jp/home/research/uth-bert)が開発したUTH-BERTモデルの実装方法について記事を書いていこうと思いました。
この事前学習モデルの特徴として、医療テキスト1億2千万文を学習し、医療分野に特化しているという点があげられる。

今回はこの事前学習モデルを、PyTorchを活用してファインチューニングする方法を示していこうと思います。
参考にした記事などはtensorflowを用いていますが、私は慣れているPyTorchを使います。

※本記事ではライブラリなどのバージョンを合わせなくても動くと思いますが、パソコンのスペックによってはメモリが不足する可能性があります。また、mecabやneologd、CUDAなどのインストールは済んでいるものとします。

まだまだPython、BERTの勉強中なので拙いコードだとは思いますが大目に見てもらえると幸いです。また、間違い点や疑問点などがありましたらコメントしてもらえると嬉しいです。

# 参考文献

http

元記事を表示

Ubuntu で Python3 アンインストールしたら画面死んだ

# 状況
ubuntu(alienware)でpython3をアンインストールして再起動すると、画面が一生つかない

# 解決方法
– CTRL+ALT+F2を押してコマンドモードに入る
– sudo apt-get install –reinstall ubuntu-desktop

ubuntuではpythonを消してはいけないという掟があるらしい

# 参考文献
https://blog.goo.ne.jp/field_light/e/9ce9e30c333d6eae8a8d88fa815902a3

元記事を表示

ServelessFrameworkのflaskとdynamodbをDockerでローカル開発する

## 経緯

副業でちょいとお手伝いをしているところがありまして、フロントだけの開発〜って感じで聞いていたのですが、フロントエンドだけじゃどうにもならなくなってきてしまいまして。
本職ぺちぱーなので普通にLaravelとかで組んでもいいんですけど、先方のやってみたいことやっていいよ〜という温かい言葉に甘えて、こりゃいっちょ新しいことやってみっかな、ってなったのです。
で、やっぱ時代はサーバーレスじゃないですか。
サーバーレスでサーバーサイドは案件で`AWS SAM`使った`Node.js`のはやったのですけど、せっかくなので`Serverless Framework`で`python`使ってやってみようかなーって思い至ったわけです。

## やりたい構成

難しい事やる気はサラサラなくて、`API Gateway`から`Lambda`通って`DynamoDB`の読み書きするってやつですね。
んで、ここの`Lambda`と`DynamoDB`のところをDockerコンテナとしてそれぞれ置こう!ってしたいわけですね。
`docker-compose.yml`はこんな感じになりました。

`

元記事を表示

整数aが整数bの倍数かどうかの判定方法

余りが0になれば割り切れる。

a % b == 0

元記事を表示

DjangoでGraphQLを触ってみる Part.1

# はじめに
最近になって初めてGraphQLを知りました。やっぱりまずは触ってみたい気持ちがあったのでメモ書き程度でDjangoでGraphQLの実装方法をまとめました。

記事では、ローカル環境の想定で書いておりますが、[元のソース](https://github.com/abemaru/my_graphql_demo)はコンテナを利用しているので環境構築は面倒な方はそちらをご利用ください。

# 環境構築
まずはdjangoでプロジェクトを作成するときのおまじないです。
“`terminal
% django-admin startproject mysite .
% django-admin startapp graphql_sample
“`
上記コマンドを実行後、**`mysite/settings.py`の`INSTALLED_APPS`を更新することを忘れないでください。**(私は忘れて1時間解決策を探しました)
“`mysite/settings.py
INSTALLED_APPS = [
‘django.contrib.admin’,
‘dja

元記事を表示

Django 作成者 作成日時 更新者 更新日時を管理する

## 環境
Windows 11 Home
Python 3.10.2
Django 4.0.2
venv利用あり
(PyPI)
記事の中でインストールあり
条件:関連記事 第1回が完了していること

## 関連記事
Django 第1回:[Django Custom User Model の作成](https://qiita.com/startours777/items/706d38e712b0c737a16a)
Django 第2回:[Django 初回ログイン時にパスワード変更を強制する](https://qiita.com/startours777/items/28db625a9bb81a36d4ad)
Django 第3回:[Django 一定期間パスワードを変更していないユーザにパスワード変更を強制する](https://qiita.com/startours777/items/d550ca9b67cea4408a44)
Django 第4回:[Django ランダムかつ有効期限のあるURLを生成し、上位者に承認してもらいアカウントを発行する](https://qiita.

元記事を表示

Python3でQuoted Printableエンコーディングを再現してみた

# Quoted Printable とは
以下、wikipediaからの引用です。
>Quoted-printable(QP encodingとも呼ばれる)は、印字可能な文字(例えば、英数字や等号「=」)を使用した符号化方式であり、8ビットデータを7ビットデータパスで転送するためのものである。インターネット電子メールで使用できるようにするため、Content-Transfer-Encoding として定義されている。

コンピュータ黎明期で資源が少なく、1bitが貴重な昔の時代に、少しでもサイズを小さくしようと7bitで設計されたASCII文字と、utf-8などの他の文字コードの互換性を保つ必要があるシチュエーションにおいて、8bit ↔︎ 7bit のQuoted Printableエンコーディングが用いられることがある。
と解釈しています。

## アルゴリズムの特徴
元のデータがASCII文字を多く含む場合、エンコードされた文字列をほぼそのまま読むことができ、エンコード後のサイズも小さくなる。
日本語など、ASCII文字を多く含まない場合はエンコード後は “=E3=8

元記事を表示

Twitterの投稿からワードクラウドを作ってみた

# Twitterからワードクラウドを作りたい!
## 経緯
ある授業でワードクラウドを作る課題をやったところとても面白かったので、自分でもいろいろなものを使ってワードクラウドを作ってみたいと思ったのが始まりです。今回は特定のTwitterアカウントの投稿を取得し、そのワードクラウドを作成するシステムを作ってみたので紹介します。

## 作るぞ!
作ってみます!
自分のアカウントの投稿を取得してワードクラウドを作ることを目標にします。
今回作成したコードはgithubにも公開しています。
https://github.com/KojoBarbie/wordcould_practice

モジュールのインポート

“`import.py
!pip install tweepy==4.0
!pip install janome
!pip install demoji

import tweepy
from pprint import pprint
import re
import demoji
fro

元記事を表示

Airflow資料抄訳(14):Kubernetesエグゼキューター(Kubernetes Executor)

恥ずかしながら最近になって知ったワークフローエンジン [Apache Airflow](https://airflow.apache.org/)。日本語の紹介記事もちらほら出てきていますが、[公式ドキュメント](https://airflow.apache.org/docs/)をちょっとずつ抄訳しながら読んでいこうと思います。

14回目の今回は[Kubernetesエグゼキューター](https://airflow.apache.org/docs/apache-airflow/stable/executor/kubernetes.html)(Kubernetes Executor)。
バージョン2.3.3時点のものです。

# Kubernetesエグゼキューター(Kubernetes Executor)

Kubernetesは各タスク・インスタンスをKubernetesクラスター上のPodの中で実行します。

KubernetesExecutorそのものはAirflowスケジューラーの中のプロセスとして動きます。スケジューラーそのものが動くのにKubernetesは不要

元記事を表示

Pythonでマークダウンをパースして、快適なプログラミング記事作成環境を作る

先日、社内のホームページで、プログラミング活用の事例紹介をしてほしいとの依頼がありました。
いくつかの記事をHTMLで直接書いてみたのですが、これじゃ続かないと思い、マークダウンで書くことにしました。

PythonでマークダウンファイルをHTMLに変換することにし、シンタックスハイライトできるように工夫しました。

使用するPythonライブラリは

* [python-markdown](https://python-markdown.github.io/)
* [jinja2](https://jinja.palletsprojects.com/en/3.1.x/)

シンタックスハイライトは[Prism.js](https://prismjs.com/index.html)を使用します。Prism.jsはあらかじめダウンロードページで、必要なオプションをチェックし、cssファイルとjsファイルをダウンロードしておきます。(今回はPythonとLine Numbersを追加でチェックしました。)

マークダウンファイルは次のように用意し、contents.mdというファイル名で保

元記事を表示

Visual Studio Code で Python のプログラムを作る

# Python も簡単、VScode があれば

 Visual Studio Code (以下VScode)は拡張機能によってさまざまなプログラム言語に対応します。Python も Python extention for Visual Stodio Code を使うとインテリセンスが使えるのでコード入力が楽になります。

 VScodeのインストール方法は以下を参照して下さい。

https://qiita.com/cmssai/items/cde9080e32b7dfd75030

## 作業用のフォルダを作る

 まず作業用のフォルダを作ります。ここでは Cドライブ のworkフォルダに pj1フォルダを作って作業することにします。フォルダはエクスプローラーであらかじめ作成しておきます。

![vscode01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211906/e9976349-3edc-7a7c-8e86-a9b6187a20ce.png)

## 作業用のフォルダを開く

 VS

元記事を表示

元iOSエンジニアの自分が、我妻先生の「みんなのKaggle講座」のPython基礎で特に学びになったことをまとめてみた

Udemyの我妻先生の[「みんなのKaggle講座」](https://www.udemy.com/course/learning-kaggle/) を受講させていただきました。
大変わかりやすかったので、Kaggleに取り組んでみたいと思われているみなさんにおすすめです。この記事を見て、少しでも気になった方はぜひ購入してみてください。

自分は元iOSエンジニアということもあり、Pythonの書き方がなれていなかったので、
Pythonはこのように書くのかと、特に学びになったことをまとめさせていただきます。
誰かの学びになれば幸いです。

#### 学びになったこと
* 論理演算子の書き方
* リスト
* タプル
* for文
* クラスのself
* ファイルの保存と読み込み
* __init__メソッド
* __call__メソッド

## 論理演算子の書き方
Pythonでは、論理演算子を **「and」** **「or」** **「not」** と直接、文字で記載します。
&&とかでは記載しません。

“`
a = 3
b = 4
c = 5

d = a <

元記事を表示

パイ村 Part.2 データ分析のための環境構築(とりあえずPython動かしてみる)

# はじめに

Pythonをかじってみたい。データ分析の知識も身に付けたい。
ということからスタートしてみましたが、まずはPythonを使ってデータ分析を行う環境を作ります。

Pythonをインストールし、その他のいろいろなパッケージを使用する必要があるらしく、
個別にインストールすると面倒らしい。

なので、Anacondaというものをインストールし楽に環境構築します。
Anacondaはディストリビューションということらいしいですが、
つまりは、いろんなパッケージが纏まっているものだと想像しています。

**Pythonでデータ分析を始めるには必要なものが揃っているということらしいっす。**

ちなみに、私の環境はWindows10です。

# Anaconda の インストール

早速、Anacondaをインストールしていきましょう。

https://www.anaconda.com/download

上記URLにアクセスしダウンロードをクリックします。

download

元記事を表示

OTHERカテゴリの最新記事