- 1. Pythonで音楽を流し、ライトの色を変える。
- 2. 基本的な機械学習手法を事例から学べるレシピ紹介
- 3. メルカリのkaggleコンペデータ分析に初心者が挑戦してみる
- 4. pythonで競技プログラミング(AtCoder)の問題を解くとき、注意すべき落とし穴
- 5. numpyチュートリアル on Jupyter Notebook
- 6. 備忘録 2022年1月20日 PySimpleGUI ポップアップ一覧 EXCELVBA MsgBox関数
- 7. 【BluetoothSerial入門】M5AtomUにENVIII_UnitでPCにデータ転送して温度湿度気圧のリアルタイム描画と記録♪
- 8. matplotlibで散布図(plt.scatter)をアニメーションにする
- 9. Blenderで車のアニメーション
- 10. 【Python】モジュール探索パスの追加方法
- 11. Pythonでp2p通信対戦を行うゲームの基盤作った
- 12. RPGタスクの使い方マニュアル
- 13. VSCodeで Import “***” could not be resolved Pylance(reportMissingImports) が出るときの対処法
- 14. 【Python】global lability synchronization法による神経信号の同期の不安定性
- 15. Pythonでインスタンスのクラスを強制的に変えてみる
- 16. Python 機械学習で中古車価格予測作ってみた
- 17. Python と C++ で websocket 通信するメモ
- 18. Python+MongoDBメモ
- 19. 写真から邪魔なものを消す -- 例の機能が簡単に使える
- 20. Pytorchの再現性最強チェックポイントの作り方メモ
Pythonで音楽を流し、ライトの色を変える。
音楽に合わせてライトの色を変えたら面白そうって思ったので、作ってみました。
#1. フローチャート
簡単に作りたいイメージをフローチャートにしてみた。
音楽をGUIで選んで、音楽を再生、ライトアップして、音楽が終わったら、ライトがフェードアウトして、終了するように作ります。
![Untitled Diagram.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176158/aa97d019-c0a6-ea85-3f09-7e37128c0833.png)#2. codeの説明
コードについて分割して説明していきます。##2-1 mp3ファイルの選択。
mp3ファイルは、PySimpleGUIを使って選択します。下記のようなGUIを作成しました。ライトの色の変更を3,5,10秒間隔で変更できるようにラジオボタンも入れています。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17615
基本的な機械学習手法を事例から学べるレシピ紹介
# はじめに
Axrossを運営している松田です。
**[Axross](https://axross-recipe.com/recipes)** は、エンジニアの”教育”と”実務”のギャップに着目し、「学んだが活用できない人を減らしたい」という想いで、ソフトバンク社内起業制度にて立ち上げたサービスです。
現役エンジニアによる実践ノウハウが”レシピ”として教材化されており、実際の業務に近いテーマで、動くものを作りながら学ぶことができます。
Axross:https://axross-recipe.com
公式Twitter:https://twitter.com/Axross_SBiv
![Axrossアイキャッチ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/9f500e0e-a759-20e2-bb8b-480bbcfaaf9b.png)# 機械学習の概念
## 機械学習とは
機械学習(Machine Learning) とは、データを「機械(コンピューター)」で反復的に
メルカリのkaggleコンペデータ分析に初心者が挑戦してみる
###【自己紹介】
社会人3年目、完全な文系出身です。
1年ほどゆるゆると独学でプログラミングを学習し、
直近3か月間、Aidemyさんでスクールを受講しました。本ブログの内容が初めてのデータ分析実践となります。
まずは自分が興味を持てる内容として、
実際に使用しているメルカリのコンペデータを分析してみました。###【使用するデータについて】
[Mercari Price Suggestion Challenge](https://www.kaggle.com/c/mercari-price-suggestion-challenge/overview)
今回の分析で使用するデータは、コンペサイトkaggleで提供されている
フリマアプリmercariの商品情報データです。本コンペでは、テストデータに含まれる
pythonで競技プログラミング(AtCoder)の問題を解くとき、注意すべき落とし穴
pythonで競技プログラミング([AtCoder](https://atcoder.jp/))を始めて2年ほど経ち、やっと緑パフォーマンスが安定するようになってきた趣味プログラマーです。この記事では自分が過去にpythonで問題を解く上でハマった落とし穴について書いていきます。
pythonの基本文法やforループや条件分岐を使いこなせるようになり、ABCのAB問題が安定して解けるようになり、アルゴリズム・データ構造の学習を本格的に始めたくらいの人に読んでもらうことを想定しています。
この記事で出てくる落とし穴は知っていれば回避は簡単ですが、知らなければ一見して原因が分かりにくく、どういったワードでググればいいか手がかりが掴みづらいです。この記事が、自分と同じところで詰まった方々の助けになれば幸いです。
実際に自分がハマったミスを挙げているので、「こんなミスするのお前くらいだろ!」ってツッコミがあるかもしれませんがご容赦ください。##PyPyを使え!
pythonで競技プログラミングをやっている人はもう耳にタコができるほど聞いているかもしれまんせんが念のため。
素のpyth
numpyチュートリアル on Jupyter Notebook
numpyチュートリアル(ビギナーズ向け)及びnumpyクイックスタートのWebサイトの内容を翻訳しJupyter Notebookで実際に動かしながら学習できるように編集しました。
元にしたWebサイトはこちら
https://numpy.org/doc/stable/user/absolute_beginners.html
https://numpy.org/doc/stable/user/quickstart.html
オリジナルのサイトに加え、わかりにくいと思われる箇所の補足説明や、全てのコードが実行できるようにテストデータを作成するコードの追加等を実施しています。
numpy の学習ツールとして活用ください。
下記のGithubのサイトからファイルをダウンロードして、Jupyter n
備忘録 2022年1月20日 PySimpleGUI ポップアップ一覧 EXCELVBA MsgBox関数
## EXCEL VBA
### MsgBox関数の使い方
https://www.moug.net/tech/exvba/0100033.html
### 変数宣言とデータ型
https://excel-ubara.com/excelvba1/EXCELVBA312.html
### Outlookの内容をEXCELに出力する
## Python
### 「Visual Studio Code」 Pythonファイルを実行するショートカットキーの作成
https://closet-land.com/python/python-run-shortcut/
### PySimpleGUI
https://github.com/PySimpleGUI/PySimpleGUI/blob/master/readme.ja.md
### PySimpleGUI ポップアップ一覧
https://knt60345blog.com/pysim
【BluetoothSerial入門】M5AtomUにENVIII_UnitでPCにデータ転送して温度湿度気圧のリアルタイム描画と記録♪
#記事の推し
・BluetoothSerial通信で複数数値データ転送と測定トリガーで読み間違いを減らした
・M5AtomUとENVIIIでI2Cで簡単に温湿度気圧測定
・PC側のPythonで温湿度気圧データをリアルタイム描画とファイル出力
・連続測定でトンガの衝撃波を記録できるかも...
・M5AtomUはraspi4のUSBに挿して、ArduinoIDEで開発
・PythonはPC上(ペアリング済)のVscodeで開発・実行
・BluetoothSerial利用なので、開発できた時点でUSBから電源供給すれば、電波が届く範囲なら自由に計測ができる#M5AtomU側
“`c
#include “Wire.h”
#include “UNIT_ENV.h”SHT3X sht30;
QMP6988 qmp6988;#include “BluetoothSerial.h”
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled!
matplotlibで散布図(plt.scatter)をアニメーションにする
plt.plot()をアニメーションにする知識はぐぐるとたくさん見つかるけど、それをscatterで行っても失敗する。成功させるには、
“`
img = plt.plot(…)
ims.append(img)
“`
これの“`
ims.append(img)
“`ここを
“`
ims.append([img])
“`リストにしてあげて
“`
img = plt.scatter(…)
ims.append([img])
“`こうすると成功する。
Blenderで車のアニメーション
## やること
Blender上で道路ネットワークを定義しておいて、それをPythonでグラフとして読み込んで、グラフ上のランダムウォークのアニメーションを作成します。
以下は、完成イメージです。
## 手順
以下のような手順です。
– Blenderで、道路ネットワークと移動用のオブジェクトを作成し、ファイル保存します。
– アニメーションを作成するPythonのコードを書いて実行します。
– アニメーションを確認します。## オブジェクトの作成
道路ネットワークは、メッシュの頂点と辺を使います(面は使いません)。
どのように作っても良いのですが、ここでは簡単に作りましょう。– `Ctrl + A`(追加)のメッシュのグリッド
移動用のオブジェクトも簡単にスザンヌ(モンキー)使いましょう。
– `Ct
【Python】モジュール探索パスの追加方法
モジュール探索パスを追加してインポートする方法をメモしておく。
# モジュール探索パスの追加方法
モジュール探索パスとは、Pythonのimport文で自作のモジュールなどをインポートする際に探索されるパスのこと。これを追加することで絶対インポートができ、カレントディレクトリによらず上位ディレクトリでも正しくインポートできる。
モジュール検索パスは、標準ライブラリの“`sys“`モジュールである“`sys.path“`に格納されている。そこに、“`append()“`メソッドを使用して、パスを追加する。“`python
import os
import syssys.path.append(os.path.join(os.path.dirname(__file__), “../..”))
“`ここで、“`os.path.join()“`は引数で与えられたパスを結合する。
また、“`os.path.dirname(__file__)“`は実行ファイルのディレクトリ名を取得できる。
Pythonでp2p通信対戦を行うゲームの基盤作った
# 始めに
pythonの授業で好きなゲームを作れと言われたので、p2pで通信対戦が行える基盤の作成を行いました。
クライアントとサーバ両方の処理を行う事ができ、様々なゲームに利用が可能になると思っています。# 目標
* 自分の操作を送信できる
* 相手の操作を受信できるこの二つが出来れば通信対戦が可能であると考えています。
相手の操作を受信して、自分のクライアントで再現すれば良いわけですから、ターン制のゲームでなくても格ゲーやぷよぷよのような対戦ゲームでも応用が可能であると考えています。
今回はUDP通信を行います。キー入力をただ送信出来ればいいだけなので、TCP通信程のコネクションが必要であるとは考えていません。
ただ、高品質でパケットロスが少ない通信対戦を行う為にはTCP通信が必須である為、勉強していく必要あり# 使用するモジュール
* socket (通信対戦を行うのでソケットの利用は絶対)
* thread (サーバとクライアントの処理を非同期で行う為に必要)
* Queue(受信した相手の操作を保存するため)
* pygame(ゲームの用モジュール)
RPGタスクの使い方マニュアル
#説明
ゼミにて作成したアプリの使い方マニュアル。
※アプリはデモ版です。作成したアプリURL↓
https://creampuff.pythonanywhere.com#使用言語等
Python3
Django3
HTML/CSS
JavaScript
Bootstrap#アプリ概要
タスク管理とゲームを融合したアプリ。大学の課題や就活の予定を締切付きで登録。
タスク完了が
締切前:モンスターに攻撃できる
締切後:モンスターから攻撃される
タスクを沢山完了させるほど勇者のレベルが上がり達成感が得られる#実装している機能
#####タスク機能
タスクの登録・削除、タスクのカテゴリー追加・削除、履歴の確認・削除
#####ゲーム機能
タスク完了時ゲームアニメーション、キャラクターの装備設定、ステータス確認、装備購入#使い方
1.アプリのURLに飛んでください。トップページに行きます。
アプリURL: https://creampuff.pythonanywhere.com2.トップページの右上から入会ボタンで入会を行ってください。
メールアドレスとパスワード
VSCodeで Import “***” could not be resolved Pylance(reportMissingImports) が出るときの対処法
いろんな環境で同じエラーを吐いていたので、備忘録として残す。[How to solve Pylance ‘missing imports’ in vscode](https://dev.to/climentea/how-to-solve-pylance-missing-imports-in-vscode-359b) を参考にした。
私の場合、venv で sandbox という仮想環境を作成し、そこにインストールした airflow をインポートする際に標題のエラーが発生していた。インストール先にパスが通っていないことが問題らしいので、追加してやればよい。
まず該当するライブラリの場所を確認する。
“`bash
$ find -name “airflow”
./sandbox/lib/python3.8/site-packages/airflow
…
“`パスの場所がわかったら、`.vscode/settings.json` に以下のように追記する。上記では相対パスで表記されているが、`.vscode/setting.json` では絶対パスで記述するのがよさそう。
【Python】global lability synchronization法による神経信号の同期の不安定性
神経ネットワークの自己組織化臨界現象を調べる上で、global lability of synchronization(同期のグローバルな不安定性)法という手法を使うことになったので、その計算方法をメモしておく。
大まかにいうと、ある神経ネットワークの活動において時刻$t$で同期しているニューロンのペアの個数$M(t)$と時刻$t+1$で同期しているペアの個数$M(t+1)$がどれだけ違うか、ということを評価する。値が大きければ大きいほど全体の同期/非同期プロセスを表し、小さいほど局所的なものを表す。
## 位相同期の評価
時系列データとして、二つの信号$s_i(t)$と$s_j(t)$の二種類が与えられたとする。
この二つの信号がある時刻$t$において
* 位相差$\theta_{i, j}(t)$の絶対値が$\pi/4$未満である
* 時間窓$v$の範囲での位相差$\theta_{i, j}(t)$に対する同期パラメータ$\gamma_{i,j}(t)$が$\sqrt{1/2}$より大きいことこの二つの条件を満たす時、二つの信号は同期しているとする。
ここで位相差$
Pythonでインスタンスのクラスを強制的に変えてみる
オブジェクト指向っていいですよね。
特に継承によって機能を拡張できるのが好みです。## クラス継承
Pythonにおけるクラス継承を使った例として以下のようなプログラムを作りました。
“`python
class Syain():
def __init__(self, name = ”):
self.name = namedef syukkin(self):
print(f'{self.name}が出勤しました。’)def taikin(self):
print(f'{self.name}が退勤しました。’)def nanoru(self):
print(f'{self.name}と申します。’)class Kanbu(Syain): #Syainクラスを継承
def __init__(self, name = ”, yakusyoku = ”):
super().__init__(name) #super()は親のSyainクラスを示
Python 機械学習で中古車価格予測作ってみた
####1.はじめに
自動車整備士から、データサイエンティストへの転職を目指し勉強中のサラリーマンです。
今回はAidemyのデータ分析講座(6ヶ月コース)で学んだことの集大成として、本記事を投稿したいと思います。
改善点等多数あると思います。コメントでご教授いただけると幸いです:relaxed:####2.モデルテーマを『中古車価格予測』に選んだ理由
コロナウイルス流行の影響で、密を避けられる自動車の需要が増えています。
しかし、現在世界的な半導体不足で新車の供給が遅れているのが現状であり、すぐに入手できる中古車の価格が高騰しています。
そこで、中古車価格を決定する特徴が分かればお得な中古車が見つけやすいと思ったからです。ここで、自動車業界で得た知識から、仮説を立ててみたいと思います。
仮説:自動車の価格は、年式、走行距離、排気量、モデルの人気度によって決まる。
※もっと細かく言えば、傷の有無や残車検年数なども関係してきますが今回使用したデータセットの関係上、上記の仮説とします。
####3.データ分析
ここから実際にモデルの作成〜データの分析を行なっていきます。
全体
Python と C++ で websocket 通信するメモ
## 背景
Python と C++ のプロセス間で numpy データや画像などそこそこ大きめのデータを扱いたい…
ローカルネットワーク越しで別 PC に処理させたいとか.websocket(バイナリデータ扱える) を使ってみます.
## C++ client, server
server も client も, 組み込みやすい civetweb が楽そうです!
https://github.com/civetweb/civetweb
websocket 有効にするには, `USE_WEBSOCKET` を define する必要があります.
また, デフォルトでは SSL 有効(SSL ライブラリとのリンクが必要)なので, ローカル PC やローカルネットワークでの利用で `wss` 不要であれば `NO_SSL` も define しましょう.## Python 側
client は `websocket-client` がよいでしょうか. `websocket` モジュールとは異なりますので注意です!
websocketとwebsocket_cli
Python+MongoDBメモ
# Python+MongoDBメモ
Pythonを使ってMongoDBを操作したかったので色々調べたのでメモ
随時更新予定https://www.mongodb.com/atlas/database
## Pythonドライバをインストール
“`bash
pip install pymongo dnspython
“`https://pymongo.readthedocs.io/en/stable/index.html
## MongoDB接続
“`python
import pymongoclient = pymongo.MongoClient(
“mongodb+srv://[User]:[Password]@cluster0.8tpbm.mongodb.net/myFirstDatabase?retryWrites=true&w=majority”)
“`## DB追加、選択
testが存在しない場合は新規作成
“`python
db = client.test
“`## コレクション追加、選択
testが存在しない場合は新規作成
写真から邪魔なものを消す -- 例の機能が簡単に使える
#画像補完モデルを簡単に使う方法です
画像の欠落部分を機械学習で補完します。#写真にうつりこんだものを消したい
背景に意図しないものが映り込んでしまったり、写真の一部分を消したいときってありますよね。#LaMaがすごい
有名な画像編集ソフトとかにあるアレですが、あの機能がPythonで簡単に使えます。
Lamaは高解像度画像に対応したインペインティングライブラリです。#手順
リポジトリをクローンして、必要なモジュールをインストール、事前トレーニング済みの重みをダウンロードします。
推論を実行します。
“`python
python3 bin/predict.py model.path=${pre_trained_model_path} indir=${input_images_path} outdir=${result_images_pa
Pytorchの再現性最強チェックポイントの作り方メモ
再現性を担保するために脳死で最強のチェックポイントを作るためのメモ。
僕の環境では以下で全部ですが、他にも追加した方が良いものがあればコメントください。## 全部盛り
保存
~~~python3
import random
import torch
import numpy as np
from apex import ampmodel_to_save = model.module if hasattr(model, “module”) else model # DataParallelを使用している場合はmodel.moduleを取り出す。
checkpoint = {
“model”: model_to_save.state_dict(),
“optimizer”: optimizer.state_dict(),
“scheduler”: scheduler.state_dict(),
“amp”: amp.state_dict(), # apex混合精度を使用する場合は必要
“random”: random.getstate()