動かざることバグの如し

近づきたいよ 君の理想に

python

YouTube登録しているチャンネルの全一覧をCSVエクスポートしたい

やりたいこと 自分の登録しているYouTubeの全チャンネルをCSVエクスポートしたい 用意するもの Pythonを動かす環境 Pyhton 3.11 YouTube Data APIのAPIキー 自分のチャンネルID 事前準備 google-api-python-clientが必要 pip install google-api-python-clie…

Pythonでプロジェクトごとに環境を分ける機能「venv」を使う方法

環境 Ubuntu Python 3 やりたいこと 俺は最近、Pythonを使う機会が増えてきた。Pythonはプログラミング初心者にも優しい言語だと聞いていたが、実際に使ってみるとその理由がよくわかる。しかし、pip installを直接行ってパッケージをインストールすると、す…

yt-dlpのダウンロードエラーの時はインストール方法を変えろ

Githubのリリースは最新じゃない Releases · yt-dlp/yt-dlpからバイナリ版をダウンロードできるが、実は最新コミットのMasterブランチからは結構遅れてしまう やり方 Master版の最新版をブチ込むコマンド python3 -m pip install --force-reinstall https://…

Python3.10からimport Optionalしなくてよくなった

環境 Python 3.10 from typing import Optionalしなくて良くなった 昨今のPythonでは型アノテーションが流行っているが、その中でもOptionalは使う機会が多い 例えばPythonの組み込みメソッドであるstr.startswith()は文字列が指定された文字列から開始して…

fastapiのmodels.pyとschema.pyのモデルの違い

環境 fastapi v0.75 モデルが2つある? fastapiやってると、多くのチュートリアルでmodels.py、schema.pyが出てくる。 が、その違いがいまいち分からず混乱したのでメモ models.pyはSQLAlchemy用、schema.pyはPydantic用ファイル 実際のソースコードでは何を…

VSCodeにPylanceを入れてみた

環境 VSCode 1.66.2 Pylance 最近だとVScodeのPython Language Serverは「Pylance」がオススメと言う記事をよく見る 現状不満があるわけではないが、せっかくのGWでもあるので導入してみた インストール 普通に拡張機能としてインストールするだけ。よく見る…

Ubuntuにpyenvインストールする手順

最後にpyenvの記事書いてからだいぶ時間経ってしまい状況も変わってしまっているので再度メモ thr3a.hatenablog.com git clone https://github.com/pyenv/pyenv.git ~/.pyenv 以下を~/.zshrcに記述 export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init…

GoogleスプレッドシートをスクレイピングしてCSVにする

やりたいこと 公開設定されているGoogleスプレッドシートをCSVでスクレイピングしたい 例えば↓みたいなURL https://docs.google.com/spreadsheets/d/1pYeP5a7WgukcJ8uhtyxVktbvzGvWoj48QFwdM7Po06I GCPのAPIキー不要で行ける 環境 Python 3.9 pandas 1.4.0 …

Python3で

globが最強だと思ってた時期が僕にもありました pathlib使ったほうが書きやすいと思う ファイル一覧を取得してfor in でループ処理 for f in Path('voices').glob("**/*.wav"): print(f) サクッと確認する場合はlist()でリスト型に変換してあげれば確認でき…

JupyterLabのターミナルフォントを変更する

環境 JupyterLab 1.1.3 JupyterLabのデフォルトフォントダサすぎ問題 JupyterLabの比較的新しいバージョンではnotenookとは別に専用のターミナルを立ち上げることができる。 今まではDocker内でJupyterLabを立ち上げてもdocker execするか、、とあまりイケて…

Sympyで定積分を計算する

前回の記事の続き 環境 Python 3.5 Sympy 1.4 コード from sympy import integrate, Symbol x = Symbol('x') expr = 'x**2' # 不定積分 print(integrate(expr, x)) # 定積分 (var, 下限, 上限) print(integrate(expr, (x, 2, 4))) 以下実行結果 x**3/3 56/3 …

Sympyで微分をして極値を計算してみる

Pythonだったら一発で微分できるんじゃね?っと思ったらちゃんと専用のライブラリがあった。さすがPython先輩 環境 Python 3.5 SymPy 1.4 SymPyとは SymPyとは、公式曰く SymPy is a Python library for symbolic mathematics とも言っているように数学系のP…

CPU数が多いとTensorflow&kerasの機械学習が遅い件

概要 どういうわけか、CPUが多いサーバーだと学習に時間がかかるんじゃないかという話があった。そんなことないやろと思いつつ、公平にAWSでベンチマークを撮ってみたが、やはりCPU数が多ければ多いほど遅くなってしまう。。 検証環境 AWS p3.2xlargeインス…

脳死でCNNによる画像分類 on TensorFlowするメモ

Ver 2 from keras.models import Sequential from keras.layers import Conv2D, Dense, MaxPool2D, Flatten, Dropout from tensorflow.keras import optimizers from tensorflow.keras.preprocessing.image import ImageDataGenerator import datetime # バ…

TensorFlowでTensorBoardを使う MNIST版

環境 Python 3.6 TensorFlow 1.13 今年中にはTensorFlow2.xが出るのだろうか、、、 やりたいこと TensorBoardを試してみたかった。が、Qiitaをかいつまんで実行してもうまくいかない。。。 そこでMNISTの最小のコードを使ってサンプルを作る。 TensorBoardな…

Jetson NanoにTensorFlowとKerasをインストール

Jetson Nanoとは1万円弱で買えるRaspberry Pi大きさ並みのGPU付きシングルボードコンピュータである。 で、GPUがあるということは当然機械学習用なわけで、早速ライブラリのインストールをした 環境 Ubuntu 18.04 CUDA 10 最初から入ってる python 3.6 pyen…

駅メモがエロ路線に走っているのは本当なのか

でんこの露出度がどんどん高くなっていってる説 駅メモという可愛いでんこを愛でる駅を軸にした位置取りゲーがある。 他のソシャゲと比べて、安易なエロ要素が少なく、エロというより萌えという感じだった。しかしながら某SNS界隈では、最近のでんこは変に露…

VoTTでラベル付けしたJSONをAWS SageMaker用に変換する

VoTTとはMSが作った画像系機械学習に使うラベリングをGUIで行えるツール これのおかげでくっそダルくて発狂しそうなラベル付作業が少しだけ楽になる。神ツール が、当然マイクロソフト謹製の機械学習用アプリケーション(CNTK)ように作られているので、ライ…

Pythonで2つの日付からdate rangeを取得する

環境 Python 3 やりたいこと 2つの日付からfor文で日付を回したい場合 rubyでいう require 'date' (Date.parse('2017-12-01')..Date.parse('2018-1-31')).each do |date| puts date.strftime("%F") end 的なのをやりたい コード from datetime import date,…

pandasでMySQLに接続

めも 環境 Python 3.6 インストール pip install mysql-connector-python コード import mysql.connector as mc import pandas.io.sql as pdsql con = mc.connect( user ='USER', password='PW', host='localhost', database='DB') sql = 'SELECT * FROM tab…

Pythonでランダムな文字列を生成する

環境 python3 2マンは帰って、どうぞ 方法 ググるとQiitaが一番上に出るけど見づらくて仕方ない python3ならもう少しきれいに書けるだろ 以下は12文字のランダムな文字列を生成する例 import random import string ''.join(random.choices(string.ascii_up…

Pythonでヒストグラムを生成する

こんなグラフ ヒストグラム自体に「グラフ」の意味があるからヒストグラムのグラフを生成っていうのはおかしいらしい(棒グラフグラフ的な 環境 Python 3.5 pandas コード %matplotlib inline import numpy as np import pandas as pd import matplotlib.pyp…

XGBoostのインストール

めも 公式サイトのドキュメントに全部載ってるので、基本はそれの通りにやれば良い brew install gcc5 pip install xgboost >>> import xgboost as xgb ができればインストール成功 qiita.com

pandasでA column-vector y was passed when a 1d array was expected

環境 Python 3.6 pandas '0.23.0' 症状 適当に model = RandomForestRegressor.fit(x_train, y_train) とかしてると DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), f…

Pyrthon3でエクセルファイルをCSVに変換する

たいてい転がってるサンプルがPython2でキレたので書いた 変換するにはライブラリが必要である。Pythonでエクセルを扱えるメジャーなライブラリは以下 openpyxl pandas xlrd 順に見ていく openpyxl xlsには対応していない。 Openpyxl is a Python library fo…

GAE(flexible environment)にflaskをデプロイする

まずはrequirements.txtを用意 Flask==0.12.2 gunicorn==19.7.1 gunicornはGAE上で使用するwsgiアプリケーション 実際のプログラムがないと始まらない。ってことでmain.py from flask import Flask app = Flask(__name__) @app.route("/") def hello(): retu…

pyenv環境でgcloudをインストールする

環境 Mac Pyenv + anaconda3 gcloudがpython3に対応してない問題 pyenvをわざわざ使っている人の99%はデフォルトのPythonのバージョンは3.xだと思う(anaconda含め) が、残念なことにgcloudコマンドはpython2.xにしか対応していない。結果、pyenvでpython3…

PythonからAWS Pollyを実行するサンプルコード

環境 python 3.6 2だと動かないので注意 コード 予めAWSのIAM管理からpolly用のアクセスキーを取得しておくこと。 import boto3 from contextlib import closing client = boto3.client( 'polly', aws_access_key_id='KEY_ID', aws_secret_access_key='ACCES…

日本語音声合成Open JTalkをPythonから実行する

環境 Python 3.6 コード 以下をjtalk.pyとして保存する #coding: utf-8 import subprocess import tempfile def run(message, voice_path='voice.wav'): speed = 1.0 dic_path = "/usr/local/Cellar/open-jtalk/1.10_1/dic" model_path = "/usr/local/Cellar…

Python3で一時ファイルを作成する

tempfile.NamedTemporaryFileを使う >>> import tempfile >>> f = tempfile.NamedTemporaryFile(mode='w+') >>> f.name '/var/folders/6z/xq_8ddx97hq9hzlgwzjjdjbw0000gn/T/tmpncbwgf4y' >>> f.write('こんにちは') 5 >>> f.seek(0) 0 >>> f.read() 'こんに…