- 1. Pythonのデコレーターで引数情報や型情報を保持する方法
- 2. Pythonのインストール[2022/06/28版]
- 3. GoogleCloudRunからGCSにファイルをアップロードする
- 4. pythonのバージョン変更方法(aliasとpyenv)
- 5. Python3.7以上の環境でpyaudioをインストールする
- 6. DockerでFlask環境構築【Python】
- 7. [Python] macにDockerを入れてsumyを試してみた
- 8. Windows10 + Python3 + Selenium4でChromeとEdgeをheadlessで起動してみる
- 9. MacにPythonインストールをしたとき困ったことまとめ
- 10. DockerFileを利用した「Hello World」のブラウザへの出力方法
- 11. Windows10 + Python3 + BeautifulSoup4 を試してみる
- 12. 言語処理100本ノック解いてみた 6
- 13. pythonのアンダースコア
- 14. Pythonでポケモン御三家の種族値をソートする
- 15. DockerでCentos7 Python3.6の環境を構築 & Jupyter Lab
- 16. 【音声認識】MFCCからlog-mel スペクトルで深層学習をしたら正解率が上がった
- 17. attributeに指定するlocationIdは、locationのlocationIdではない(GoogleMyBusiness API)
- 18. カスタムモデルを sagemaker neo コンパイルしようとしてハマった
- 19. Pandas: データフレームについて–11: 重複データの処理
- 20. Pandas: データフレームについて–10: データの置換
Pythonのデコレーターで引数情報や型情報を保持する方法
Pythonでデコレーターを使う際に引数情報やdocstring情報などがエディタやLint上で失われないようにするための小ネタです。
# 何が問題なのか
たとえば以下のような関数があったとします。
“`py
def sample_func(a: int, b: str = ”) -> int:
“””
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore.Parameters
———-
a : int
Et dolore magna aliqua.
b : str, optional
Ut enim ad minim veniam, quis nostrud exercitation ullamco
laborisReturns
——-
c : int
Nisi
Pythonのインストール[2022/06/28版]
# Pyhonのインストール方法
私自身の備忘録のためにPythonのインストール方法を記載していきます。(2022/06/28 現在3.10.5)
## python公式サイトからダウンロード
– [Python公式サイト](https://www.python.org/downloads/)から`[Download Python x.xx.x]`を選択する。https://www.python.org/downloads/
– ダウンロードした`python-x.xx.x-amd64.exe`を実行する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2726394/ee156183-fccc-d4ac-483b-460efaf52ed8.png)
上記画像のInstall Nowに該当するボタンを押す。
(もし、Pathを通す必要がある場合は[Add Python 3.10 to PATH]にチェックを入れておく。)– 完了したらCloseを押す。
以上でインストー
GoogleCloudRunからGCSにファイルをアップロードする
# VS Codeの設定
もしもCloudRunが初めてで、VSCodeを使っているのなら、このあたりを試してみてデプロイ出来るようにしておくと良いです。
[サンプル アプリケーションからの Cloud Run サービスの作成 | Cloud Code for VS Code | Google Cloud](https://cloud.google.com/code/docs/vscode/creating-a-cloud-run-service?hl=ja)
# ソース
CloudRunように作っています。CloudFunctionsでも手直せば動くと思う。
言語はPythonです。“`python
import os
from functions.upload_file import upload_gcs
from flask import Flask, request# pylint: disable=C0103
app = Flask(__name__)@app.route(‘/upload-gcs’, methods=[‘GET’, ‘POST’])
d
pythonのバージョン変更方法(aliasとpyenv)
はじめに
—
pythonを使用して構築する際に、バージョンの変更方法によって違いが発生し、詰まってしまったため、まとめておくことにしました。
AmazonLinux2を使用してpython3.9.2の適用を検証していきます。
デフォルトではpythonコマンドでは2.7.18、python3コマンドでは3.7.10が呼び出されます。適用パターンは以下の3パターンです。
1.wgetを使用してインストール、aliasで適用
2.wgetを使用してインストール、シンボリックリンクの変更で適用
3.gitを使用してインストール、pyenvで適用インストール方法(1,2共通)
—### python3.9.2のインストール
インストールに必要なツールをインストールします。
“`
$ sudo yum groupinstall “development tools”
$ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-
Python3.7以上の環境でpyaudioをインストールする
# Introdaction
1. Python3.7以上でリアルタイム音声認識プログラムを構築する際に、pyaudioが必要になった。
1. `pip3 install pyaudio`ではインストールに失敗した。
– fatal error: ‘portaudio.h’ file not found
– brewでportaudioをインストールしていても、見つけられないとエラーが吐かれる状況
1. python3.7以上の環境でpyaudioをインストールする方法をまとめる
– 多くの情報が既に公開されているが、自分用のまとめとして本記事を作成する## 環境
– Apple silicon Mac
– macOS Monterey
– Windows 10
– Python3.7以上## Install for Mac
以下のコマンドで外部のヘッダファイル、ライブラリのディレクトリを指定してインストールすればよ
DockerでFlask環境構築【Python】
## ディレクトリ構成
“`:ディレクトリ構成
└─VoiceEmotion
├─Dockerfile
├─docker-compose.yml
└─app
├─requirements.txt
└─app.py
“`
## Dockerfile
“`Dockerfile
# pythonのバージョンは任意
FROM python:3.8WORKDIR /usr/src/app
ENV FLASK_APP=appCOPY /app/requirements.txt ./
RUN pip install –upgrade pip
RUN pip install -r requirements.txt
“`
**FROM**
ベースになるコンテナイメージの指定**WORKDIR**
コンテナ内の作業ディレクトリを指定**ENV**
環境変数の設定
必要に応じて使う.**COPY**
イメージを構築するときに、ローカル環境からコンテナ内にファイルをコピーして設置する**RUN**
コンテナ内のシェルコ
[Python] macにDockerを入れてsumyを試してみた
## 背景
「Pythonでテキストを要約してみたい。」とういうことで、[この記事](https://self-development.info/【python】テキスト自動要約が可能なsumyのインストール/)を参考にPythonのライブラリの`sumy`を使用してみました。
この記事では、macの中にDockerを入れることからします。
python3.6以降+pipの環境がある場合は、[ライブラリのインストール](#ライブラリのインストール)までスキップできます。## 環境
– MacBook Air (M1)
– macOS Monterey 12.3
– Homebrew 3.4.6## Docker Desktopの起動
“`sh
brew install –cask docker
open /Applications/Docker.app
“`
`–cask`を付けると、Docker Desktopがインストールされます。私の環境では、以下のエラーが出ました。
“`
It seems there is already a Binary at
Windows10 + Python3 + Selenium4でChromeとEdgeをheadlessで起動してみる
# 目的
Selenium4を使用してChromeとEdgeをheadlessで起動してみる
以下の Selenium3での内容の修正点が多すぎなのでメモを残しておく
[Windows 10 + Python3 + selenium + msedgedriver で headless edge(Chromium) を試してみる](https://qiita.com/tabizou/items/249b3c03e5322828e848)
[Windows 10 + Python3 + selenium + chromedriver で headless chrome を試してみる](https://qiita.com/tabizou/items/71911a4d55e9c35b4546)
※BeautifulSoupは整形されたhtmlの出力用に使用している## モジュールのインストール
“`
pip install -U selenium
pip install webdriver_manager
“`## サンプルコード
“`
PS > python -V
Pytho
MacにPythonインストールをしたとき困ったことまとめ
# 概要と経緯
新しいMacBookAirを購入しました。
“`
MacOS Monterey
メモリ:8GB
ストレージ:256GB
“`
もう一台古いMacBookProの環境を整えようとした時のナレッジとして記載します。## Pythonインストール
– Command Line Toolsのインストール
ターミナルを起動し
“`zsh:zsh
$ gcc
“`
を実行。そうすると
![pic01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409451/7962907b-1401-5dc4-e98f-e6e40b4b01b4.png)
と表示されたので、そのまま`[インストール]`。を押下。
「電源つなげ!」みたいな催促もポップアップで出たりしますがそこは**新Mac!**
無視してお元気バッテリーで続行。少々時間がかかりましたが、無事`Command Line Tools`はインストール完了。## Homebrewのインストール
お次はHomebrewのインストールです。ター
DockerFileを利用した「Hello World」のブラウザへの出力方法
# やりたい事
ブラウザ(ホスト側)からのHTTPリクエストにより、Docker(コンテナ)上のアプリからのレスポンス「Hello World」をブラウザ(ホスト側)に出力したい■前提
・DockerFileを利用すること
・WebサーバにはPythonのFlaskを利用■補足
勝手に思っていることですが「ホスト」と「コンテナ」は別世界と捉えると色々理解しやすくなります
※違うかもしれませんが、現実世界とメタバース、みたいな関係?その別世界に対する「環境構築」までの手順は基本、ターミナルからのCUIベース。
アプリの実行はブラウザ経由です。# 知りたい事
大きくは下記の点です・DockerFileとアプリケーションファイルの関連性
・Dockerを利用したブラウザ経由の通信の仕組み# ステップ1:アプリケーションファイルを作る
まずは、Docker関係なく、ローカル(ホスト側)で「Hello World」が出力されるAPファイル(hello.py)を用意“`python:hello.py
from flask import Flask#Flaskオ
Windows10 + Python3 + BeautifulSoup4 を試してみる
# 目的
[Yahoo!ニュース](https://news.yahoo.co.jp/)の主要トピックスに対してBeautifulSoupを使って以下を試したときのメモ
・Copy selectorの出力
・Copy XPathの出力
・find、find_allを使った例
検索結果で記述した日付が記述されていない記事は注意が必要
Yahoo!ニュースの構成が変更される頻度が多い??ようなので、まずはtagを検証する## 使用するパッケージのインストール
“`
PS > pip3 install BeautifulSoup4
PS > pip3 install lxml
“`## サンプルコード
“`python
# ここからは共通コード。
# Windows Add env PYTHONIOENCODING = UTF-8 & restart vscode
# coding:utf-8from bs4 import BeautifulSoup
import urllib.request
import re
from lxml import etree
from l
言語処理100本ノック解いてみた 6
“`python
str1 = “paraparaparadise”
str2 = “paragraph”
def bigram(string):
return [string[i:i+2] for i in range(len(string)-1)]
X = bigram(str1)
Y = bigram(str2)
print(X+Y)
dup = [_ for _ in X if _ in Y]
print([_ for _ in X if _ not in dup],[_ for _ in Y if _ not in dup])
print([[_,__]for _ in X for __ in Y])
if “se” in X: print(“X”)
elif “se” in Y: print(“Y”)
else: print(“None”)
“””
[‘pa’, ‘ar’, ‘ra’, ‘ap’, ‘pa’, ‘ar’, ‘ra’, ‘ap’, ‘pa’, ‘ar’, ‘ra’, ‘ad’, ‘di’, ‘is’, ‘se’, ‘pa’, ‘ar’, ‘ra’,
pythonのアンダースコア
# pythonのアンダースコア(_)を使う
コードを見ていると所々に出てくるアンダースコア。
変数の頭に付いていたり、関数の頭に二つ付いていたり、どんな意味があるかまとめた。### 必要のない値を一時的に格納するもの
例
・for文
“`
# 単純に文字列を5回出力したいだけ。range()から取り出した変数は使わない。
for _ in range(5):
print(“test”)
“`
・return値を返さない
“`
def main():
a = “hoge”
b = “fuga”
return a, bif __name__ == ‘__main__’:
# aしか出力しない
# bは廃棄される。
a, _ = main()
print(a)“`
### 関数名や変数名の頭に1つ付いているもの
クラス内メソッドや変数
あくまでも慣例的なので、外部からアクセス可能
importのワイルドカードで読み込まれない### 関数名や変数名の頭に2つ付いているもの
ネー
Pythonでポケモン御三家の種族値をソートする
初投稿 & タイトルの通りです。
大学院の研究でグラフを描くために最近Pythonを使っているのですが「どうせなら言語丸ごと習得してしまうか~」と思い立ち、着想から約2~3時間ほどで書きました。
ご指摘やアドバイスの他、「こういう機能作ったらいいんじゃない?」などありましたら是非コメントいただけますと大変有り難いです。
“`python
import pprint#御三家の種族値のタプルリスト
pokemon_data = [
(“フシギバナ”, 80, 82, 83, 100, 100, 80, 525),
(“メガニウム”, 80, 82, 100, 83, 100, 80, 525),
(“ジュカイン”, 70, 85, 65, 105, 85, 120, 530),
(“ドダイトス”, 95, 109, 105, 75, 85, 56, 525),
(“ジャローダ”, 75, 75, 95, 75, 95, 113, 528),
(“ブリガロン”, 88, 107, 122, 74, 75, 64, 530),
DockerでCentos7 Python3.6の環境を構築 & Jupyter Lab
# 構築内容
“`
Centos7
Python3.6
Jupyter Lab
“`# クローン
以下リポジトリをクローンする
https://github.com/yamada-ham/centos7_python3.6# コマンド ビルドして起動
“`
$ docker-compose up -d
“`# コンテナに入る
“`
$ docker-compose exec centos bash
“`# Jupyter起動
“`
$ jupyter lab –ip=0.0.0.0 –port 9999 –allow-root
“`
【音声認識】MFCCからlog-mel スペクトルで深層学習をしたら正解率が上がった
本記事では、[MFCC(メル周波数ケプストラム係数)入門](https://qiita.com/tmtakashi_dist/items/eecb705ea48260db0b62)の記事で見かけた[Deep Learning for Audio Signal Processing](https://arxiv.org/abs/1905.00078)の論文で特徴量抽出をMFCCからlog-mel スペクトルにして深層学習にするとよい、というヒントから実践してみた記事です。
# メル尺度
メル尺度は、定性的には人間の音高の知覚的尺度です。数式的定義は次のようになります。“`math
m = m_{o} \log\left(\frac{f}{f_o} + 1\right)
“`ただし、$f_o$はパラメータの一つの周波数パラメータで、$m_o$は「1000Hzは1000メル」という制約から導かれる式、
“`math
m_{o} = \frac{1000}{\log\left(\frac{1000\rm{Hz}}{fo} + 1\right)}
“`
で算出される従属パラメー
attributeに指定するlocationIdは、locationのlocationIdではない(GoogleMyBusiness API)
# 前置き
GoogleMyBusinessのBusinessInfomationAPIでlocationを更新する際は、location_idを指定する。
locations.attributesを更新するには以下のように行う。“`py
location_location_id = location.get(“name”).split(“/”)[-1]
attr_response = self.api.attributes.get(location_id)
attribute_location_id = attr_response[“name”].split(“/”)[1]attribute = gen_attribute(attribute_location_id)
# attributesAPIにpatchでリクエストするとattributesを更新できる
response = self.api.attributes.patch(location_location_id, attribute, field_mask)“`
attributesを更新する際に
カスタムモデルを sagemaker neo コンパイルしようとしてハマった
## 表題の通りコンパイルしようしてハマった以下エラー
“`py: error
ClientError: InputConfiguration: Unable to load provided Keras model. Error: Unknown layer: Functional For further troubleshooting common failures please visit: https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html
“`– 原因は、カスタムモデルのネスト構造をフラット処理しようとした時に、tensorflow のバージョンを違うものにしていたので、エラーが出ていた。
バージョンを統一することで解決。しかし、わかりづらいエラーの内容にハマった。面倒くさい。。。(笑)
Pandas: データフレームについて–11: 重複データの処理
# 重複データの処理
列単位でユニークな値,行単位でユニークな行についての処理を行う。
“`python
import pandas as pd
df = pd.DataFrame({
‘a’: [4, 4, 1, 5, 1, 3, 4, 3, 5, 3, 3, 4, 3, 3, 5],
‘b’: [4, 1, 4, 3, 1, 2, 4, 4, 2, 1, 1, 1, 1, 3, 3]
})
df
“`
Pandas: データフレームについて–10: データの置換
# データの置換
欠損値 `NaN` の置換については, 「Pandas: データフレームについて–02: 欠損値の扱い」を参照のこと。
“`python
import pandas as pd
df = pd.DataFrame({
‘a’: [1, 2, 3, 4, 5],
‘b’: [1.2, 3.4, 5.6, 7.8, 9.0]
})
df
“`
関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた