- 1. 【Python】map()・filter()関数の計算結果をprint()関数で出力する方法
- 2. pythonで複数の値を返り値に持つときの型指定
- 3. 【Python】cp932 の 大容量ファイルをイイカンジに取り込みたい
- 4. matplotlib: エクセルからデータを読み取り描画する事例
- 5. 日震学(星震学)データで遊んでみる
- 6. 某ウマゲームに影響されて競馬を始めたデータ分析初心者が競馬AI実装を試してみる話
- 7. Docker + Python + Flask で本番環境とテスト環境のポート番号の振り分け方法
- 8. Bokeh グラフ再利用時のRuntimeError:Models must be …に対応する
- 9. Inspector v2の脆弱性診断内容を「Slackベース」で管理する
- 10. Tkinterのボタン配置方法いろいろ(pack,grid,place)
- 11. ロリポップサーバーでFlaskを使おう!
- 12. python selfについてまとめる
- 13. MySQL上のデータをDash+plotlyで可視化
- 14. 【競プロ】テスト10倍速!AtCoder AHC向け【Python】自動テスト並列処理ツール
- 15. カリキュラム強化学習でタクシー問題を解ける
- 16. AWS + Python + LINEbotでゴミ出しリマインドをする【前編】
- 17. 色んな高さの「ピー」音のファイルを沢山作る(Python3)
- 18. YOLOv7のAPIを使用してみた
- 19. コロナの感染者数のグラフを強化した話
- 20. cookiecutterを使って自分専用のpythonプロジェクトテンプレートを作る
【Python】map()・filter()関数の計算結果をprint()関数で出力する方法
# 初めに
pythonの勉強中にmap()関数の動作確認のため結果をprint()関数で結果を出力しようとしたら、map型のオブジェクトが出力されてしまい計算結果がわからなかったので、結果を出力する方法を調べました。filter()関数の場合も同様にfilter型オブジェクトになるので、同じ方法で出力可能です。※間違っている情報等・不足している内容あればコメントいただけると幸いです。
# 環境
python: 3.10.4
OS: Windows 10 Home# コード
以下の二つの方法のどちらかを使うことで、結果を出力できました1. *(アスタリスク)を使ってアンパックする
2. list()を使ってリストに変換する
サンプルのコードは以下になります。
“`py
people = [(“Abel”, 20), (“Bob”, 21), (“Cait”, 16), (‘Dave’, 18), (‘Eva’, 19)]def get_age(person):
return person[1]# 方法1:*(アスタリスク)を使ってアンパ
pythonで複数の値を返り値に持つときの型指定
# やりたいこと
以下のような関数があったとき、
返り値の型指定はどうすれば良いのか?“`python
def test():
return 1, “a”, {3, 5}
“`# 解決法
“`python
from typing import Tupledef test() -> Tuple[int, str, set]:
return 1, “a”, {3, 5}
“`# setの型までちゃんと指定したい場合
“`python
from typing import Tuple, Setdef test() -> Tuple[int, str, Set[int]]:
return 1, “a”, {3, 5}
“`# 解説
python関数で複数の返り値がある場合、原則としてtupleとして返される。
“`python
from typing import Tuple, Union
def test() -> Tuple[Union[int, str], int, set]:
return “1”, 2, {1,64, 4}
【Python】cp932 の 大容量ファイルをイイカンジに取り込みたい
# cp932 の 大容量ファイルをイイカンジに取り込みたい
## 動作環境
– Windows10 21H2
– メモリ4GB
– Python3.9## 大容量ってどこまで?
1GBくらいまでならいけました。
なお、CSVをインポートしたSQLite3 も1GBくらいになりましたが
問題なく接続できました。## ソースコード
“`python
import codecs
import pandas as pd
import sqlite3 as sq
import datetimedef db_migration(file_path,db_file_path):
try:
dt_now = datetime.datetime.now()
print(dt_now)
column_names = [“column{0}”.format(num) for num in range(255)]
column_data_type = {}for column in column_names:
co
matplotlib: エクセルからデータを読み取り描画する事例
# はじめに
久しぶりの投稿になります。
最近、エクセルからデータを読み取ってmatplotlibで作図する必要が生じたので、その再作成したPythonプログラムを残しておこうと思います。# 作例
まず、作例として、元データとなるエクセルの表と作成したグラフを示します。![Screen Shot 2022-07-18 at 8.51.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129300/f5d4adf1-f97d-4a49-27d0-bfb666574fa0.png)
![fig_freq.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129300/01fa14da-15fe-4e5c-32dc-26f8f28fb998.jpeg)
# プログラム
上に示したエクセルの表から、2カラム目(B列)、9カラム目(I列)、10カラム目(J列)の4行目から17行目までを読み取り、グラフにしています。
グラ
日震学(星震学)データで遊んでみる
## 日震学とは
太陽内部を「波」を用いて調べる学問を「**日震学(helioseismology)**」といいます。地震波を使って地球内部の構造探査をするのと同様の手法で、まさに地震学(seismology)の太陽(helio-)版というわけです。太陽は圧縮性の高いプラズマガスでできており、その内部では乱流熱対流によって励起された**音波**で満たされていると考えられます。このようにランダムに励起された音波が無数に重ね合わさった結果、おそらく全体としては定在波を形成していると思われます。これは音波の固有振動とも考えられ、その固有関数や固有振動数は太陽内部構造やパラメータによって決定されています。日震学では、逆に太陽表面の音波を観測し、その固有振動数を測ることで、(光学観測が不可能な)太陽内部情報を調べます。これは数学的には、**逆問題**を解くことに相当します。
日震学は既にこれまで数多くの成果を上げており(代表的なものは太陽内部の差動回転観測など)、その私見は近年星震学(asteroseismology)として一般の恒星に応用されており、星の音波モードを調べることで(従来の天
某ウマゲームに影響されて競馬を始めたデータ分析初心者が競馬AI実装を試してみる話
# はじめに
こんにちは、初めまして。突然ですが、ウマのゲームが大流行していますね。
ゲームに影響されて実際の競馬を始めてみた、という方も少なくないのではないでしょうか?かく言う(とても影響されやすい)私もその一人です。
ちなみに、推しはサイレンススズカです :horse:さておき、[**Aidemy Premium**](https://aidemy.net/grit/premium/?utm_source=google&utm_medium=cpc&utm_campaign=brand_brand_PPLP&gclid=Cj0KCQjwn4qWBhCvARIsAFNAMijretW1ztMFmfAdavzK4C3uOFt9rRXLw3Gqv2jcD8BKD6pKYGXgrIEaAr-XEALw_wcB)にて「データ分析コース」を3か月受講し、本記事はその最終成果物となります。
触れるなら興味ある分野がいいなということで、競馬のAI実装に挑戦してみました。競馬もAI実装も初学者であり、拙い部分が多いですが、どうぞ最後までお付き合いください 🙂
:::n
Docker + Python + Flask で本番環境とテスト環境のポート番号の振り分け方法
## やりたいこと
Dockerのコンテナとのポートフォワーディング(ポート番号指定)を「テスト環境(自端末)」と「本番環境(heroku)」でソースファイルを分ける事なく実現したい。::: note info
①テスト環境ではホストOSの「8888」番ポートをコンテナの「8888」番ポートと紐づけたい。
②本番環境ではポート番号はheroku側で自動割当されるので、それを利用したい。
:::ネット調査をしてくと「dockerfile」や「docker-compose.yml」を本番環境用とテスト環境用でわけるような手法がありました(パット見でよく読んでいませんが)が、これは避けたかった。
## 前提
– 本番環境:heroku
– テスト環境:ローカル端末(自分のPC)
– docker-compose.ymlを利用
– dockerfileを利用
– pythonでアプリは実装
– webserverはflaskを利用
::: note info
できるだけ最小の単位で実現したかったという思いから、「do
Bokeh グラフ再利用時のRuntimeError:Models must be …に対応する
Bokehで一度描画したグラフを、違うレイアウトで再利用しようとするとRuntimeError: Models must be owned by only a single document, … というエラーがでます。
“`python
from bokeh.plotting import figure, show
from bokeh.layouts import gridplotp = figure()
p.scatter([1, 2, 3], [4, 5, 6])show(p)
show(gridplot([[p]])) # ここでエラー
“`これは一度showしたところで、グラフにIDがつくためのようです。
このエラーを回避するためには、IDをリセットする必要があります。“`python
from bokeh.plotting import figure, show
from bokeh.layouts import gridplot
from bokeh.models import Modelp = figure()
p.scatter(
Inspector v2の脆弱性診断内容を「Slackベース」で管理する
# はじめに
ご覧いただきありがとうございます。
以前[Amazon Inspector Classic](https://qiita.com/gahirosan/items/7a95ccc86e1cec205859)について記事を書きました。
最近 現行バージョンであるInspector v2で検知を行ったところ、検知精度に差があることがわかり、「Classic⇒v2」への移行を行っているところです。
今回はSlack画面で、Inspector v2の脆弱性検知結果を管理できるようにしたいと思います。
# 概要
1. 事前準備
2. Slack ~ Lambda間の連携
3. Lambda ~ Slack間の連携
4. Lambda関数の作成
5. 動作確認![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697264/95a99621-0a5e-55c7-ffd3-3703d08dbdbe.png)
Slackのプライベートチャンネルでコマンドを実行すると、La
Tkinterのボタン配置方法いろいろ(pack,grid,place)
## はじめに
仕事でTkinterを使う機会ができたので、少し勉強しています。
基礎的な内容ですが、ヴィジェットの配置方法が複数あってわかりづらかったので、ボタンを使っていろいろ試してまとめてみました。## pack()メソッドを使ってボタンを配置する
メソッドの引数にどこから並べるのかを記載してボタンを設置します。
以下の例ではTOPが2個あるので、ボタン5の位置がボタン1の下に積みあがるような配置になっています。“` python:in
import tkinter as tkbase = tk.Tk()
base.geometry(‘500×400’)
base.title(‘Button-set-test’)button1 = tk.Button(base, text=’ボタン1′).pack(side=tk.TOP)
button2 = tk.Button(base, text=’ボタン2′).pack(side=tk.LEFT)
button3 = tk.Button(base, text=’ボタン3′).pack(side=tk.RIGHT)
butt
ロリポップサーバーでFlaskを使おう!
## 目次
[概要](#概要)
[Helloワールドを出そう](#Helloワールドを出そう)## 概要
__Flaskを使用してWebアプルを展開したいがVPS借りるほどのお金がない__
↓
__VPSが使えないならロリポップサーバーを使えばいいじゃない__ということで、メモと宣伝がてらここに記しておきます。
この記事ではとりあえずロリポップサーバー上でFlaskを用いて作ったページを表示することを目指します。
権限設定などはまたのでそのためのメモです。__Flask上でSQL Archemyを使った検索システムを展開したい場合は以下のStep2以降もぜひぜひ参考にしてください!!__
https://gemma-knight.sygenmaki.com/entry/2022/07/17/ロリポップサーバーにFlaskで検索システムを作ろう
## Helloワールドを出そう
ディレクトリ構成は以下のようにします
“`$ ll
-rwx—— 1 <ユーザー名> LolipopUser 190 6月 25 19:56 index.cgi
-rw—
python selfについてまとめる
#### はじめに
この記事では、pythonのselfについてまとめていきます。
自分の中でselfへの理解が曖昧だったので、記事を書くことにしました。まず、初めにクラスとインスタンスから説明していきます。
クラスとはオブジェクトの処理を一つにまとめたものです。**よく金型とか設計図みたいな表現がされます。** インスタンスはクラスの実体化を意味します。 **Aの設計図からAを作り出すことです。**
では、実際のPythonのソースコードでこの挙動を見ていきましょう。“`python:sample.py
class Student:
def __init__(self, name):
self.name = namedef hello(self):
print(self.name)exe = Student(“山田太郎”)
exe.hello()
“`exe=Student(“山田太郎”)の部分でインスタンスを生成しています。
“`python:sample.py
def __init__(self, name):
MySQL上のデータをDash+plotlyで可視化
# 初めに
AWSのデータベース(MySQL on RDS)に作成したテーブルの内容を、Pythonのデータ化しかフレームワークDashを使用してWeb上に表示します。
※ 今回はdashのコードが中心です。EC2やRDSのインスタンス作成、TeraTermでの接続等は省略します。
# 環境
### データベース
– RDSにMySQLインスタンスを生成(最小構成)
– インスタンスクラス:db.t3.micro
– ストレージ:20GiB
– マルチAZ:なし
– Serverバージョンは8.0.28だが、AWSがメンテナンスしているので変わるかも。### サーバー
– EC2インスタンスを起動
– AMI:Ubuntu Server 20.04 LTS (HVM), SSD Volume Type
– インスタンスタイプ:t2.micro
– ストレージ:汎用SSD 8GB# EC2からデータベースへの接続
RDSのデータベースは、デフォルトでdefault(という名前の)セキュリティグループが設定されているインスタンスからのみ接続を受け付けます。
このため、E
【競プロ】テスト10倍速!AtCoder AHC向け【Python】自動テスト並列処理ツール
AtCoder AHC向けの、並列処理可能な自動テストツールをPythonで作成しましたので、共有します。筆者の環境で逐次テストと比較して、約10倍の速度向上を達成しました。
全ソースコードは[こちら](https://gist.github.com/toast-uz/087b0397134b23247f5e188fbf8eaca8)
# 1. AtCoder AHCとは
AtCoder Heuristic Contest (略称AHC)は、いわゆるマラソンコンテストです。マラソンコンテストは、正解というものを実時間で求める手段が基本無く、正解になるべく近づけるように自分の提出プログラムの得点をいかに上げていくか、が競われます。
# 2. ローカルテストツール
## 2.1. AHCの解答提出までのフロー
AHCの解答提出までのフローを図示します。水色部分が本ツールによる自動化範囲です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156600/b5a18db0-e80d
カリキュラム強化学習でタクシー問題を解ける
# カリキュラム強化学習でタクシー問題を解ける
:::note info
Github(英語バージョン)
https://github.com/leolui2004/curriculum_taxi
:::## 概要
過去の強化学習は、複数のステージに関する問題を解決するのに弱いです。Taxi-v3の例を使用すると、通常のactor-criticな方法はリプレイキューを使用しないと機能しません(この場合はDQNが機能します)。カリキュラム強化学習を導入することにより、モデルは段階ごとに目標を完了することを学習し、最後にタスク全体を完了することができます。また、トレーニングの効果に何らかの影響があるかどうかを確認するために、curiosityを追加しようとしました。
## Taxi-v3
https://github.com/openai/gym/blob/master/gym/envs/toy_text/taxi.py
ゲームはシンプルで、タクシーは5 x 5フィールドのランダムな位置から開始し、タクシーは乗客を迎えに行くたびに環境によってランダムに選択された位置に移動し、
AWS + Python + LINEbotでゴミ出しリマインドをする【前編】
## はじめに
いつでもゴミ出していいマンションから引っ越して、「ゴミの日覚えられん!」となりLINEbotを作成しました。
【前編】では、LINE Messaging API・AWS Lambda・Amazon EventBridgeを使って、ゴミの日の前日21時にリマインドが送られてくる機能を実装します。
【後編】では、LINE Messaging API・AWS Lambda・API Gatewayを使って、ユーザーが「燃えるゴミ」と送ったら「【収集日】毎週火曜日と金曜日」と返するような機能を実装します。## 使用技術
・Python3.9
・LINE Messaging API
・AWS Lambda
・Amazon EventBridge## 簡単な機能の説明
1.EventBridgeが定期的にLambda関数を実行する
2.Lambda関数が実行され、現在日時がゴミの日の前日の場合はLINEbotからメッセージが届く## 手順
### LINE公式アカウントの作成とLINE Messaging APIの設定
こちらの記事を参考にしました。料金の
色んな高さの「ピー」音のファイルを沢山作る(Python3)
# きっかけ
超基礎的な音感トレーニングアプリを作ってみたかった。でも、ピアノ音のファイルが見つからなかった(1オクターブ分くらいはあったけど)。
困ったので自分で作りました。ピアノの音色ではなく「ピー」音ですが、音感トレーニング用なら悪くない?(素人なので分からない)# 気づき
ピアノの鍵盤って、一つ隣の音との周波数の比はどこも同じらしいです。ということは **周波数だけ考えると鍵盤の白と黒って特に意味ない** ってことですよ。レ(白)→レ#(黒)と、ミ(白)->ファ(白)の周波数比は同じなんですよ。黒はちょっとしか上がらないんだと思ってました。びっくりですよね。# サンプルコード
**ラ(440Hz)から始まり、ラ#、シ、ド、ド#・・・ラ(1760Hz)と2オクターブ上まで1ファイル ずつ作ります**
– もっと沢山作りたい場合は`np.arange`の25を増やせばok
– 出力先のディレクトリ(`OUTPUT_DIRECTORY`)は先に作っておかないとエラーになります。もしくは`OUTPUT_DIRECTORY = ‘./’`に変えちゃえば動きます
– impor
YOLOv7のAPIを使用してみた
# 概要
※2022/7/17 記述
最新バージョンであるYOLOv7についての投稿です。
論文によると(まだざっと目を通した程度ですが)、推論速度も精度も以前のバージョンを上回っています。
この記事はYOLOv7のAPIを使用し、私好みに実装した例を記述しております。
現時点では、学習済みモデルを使用した推論のみです。
今後、モデルの学習も追記したいと思っておりますが、気分が乗り次第といったところです。※謝辞
開発してくださった皆様、ありがとうございます。
Github : https://github.com/WongKinYiu/yolov7
Paper : https://arxiv.org/pdf/2207.02696.pdf# 環境構築
“`bash
$ mkdir [任意のディレクトリ]
$ cd [任意のディレクトリ]
$ conda create -n yolov7 python=3.7
$ conda activate yolov7
$ conda install git
$ git clone https://github.com/WongKin
コロナの感染者数のグラフを強化した話
今回は…
—
前に作った感染者グラフ表示ツール
https://qiita.com/kuroge/items/0894dc2858fc0e2c2862
を強化してみました今回使うライブラリ
・pandas
・matplotlib
インストールは
“python3 -m pip install matplotlib“
または
“pip install matplotlib“コードと収集する情報
—
前のコード
“`python:ビフォー
import pandas
from matplotlib import pyplothyouji = [“ALL”,”Hokkaido”,”Aomori”,”Iwate”,”Miyagi”,”Akita”,”Yamagata”,”Fukushima”,”Ibaraki”,”Tochigi”,”Gunma”,”Saitama”,”Chiba”,”Tokyo”,”Kanagawa”,”Niigata”,”Toyama”,”Ishikawa”,”Fukui”,”Yamanashi”,”Nagano”,”Gifu”,”S
cookiecutterを使って自分専用のpythonプロジェクトテンプレートを作る
## 概要
cookiecutter(クッキーカッター)を使いpythonの自分専用のプロジェクトのひな型をつくり、そこからプロジェクトを作成する。## インストール
“`shell
pip install cookiecutter
“`## 利用
プロジェクトを作りたいフォルダで以下を実行する。
プロジェクト名などの質問が来るので答えていく* フル版
“`shell
python -m cookiecutter gh:audreyfeldroy/cookiecutter-pypackage
“`* 簡易版
“`shell
python -m cookiecutter gh:asweigart/cookiecutter-basicpythonproject
“`## 自分専用のテンプレートを作りgithubにアップして使う
* githubに自分のアカウントがあることが前提とします。(hirayama-yuuichiの所はご自分のgithubの値で読み替えてください)
* まず、元となるテンプレートをforkする。
[asweigart/coo