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

Python関連のことを調べてみた2022年11月09日
目次

【Python・MySQL】SQL文中でテーブル名やカラム名を変数にする方法【初心者向け】

初投稿です、よろしくお願いします。

PythonでMySQLを実行する際に、SQL文中でプレースホルダ(%s)を用いる場合に値を変数にすることはできますが、SQL文中のテーブル名やカラム名をプレースホルダにすることはできずに不便だったので、テーブル名やカラム名であっても変数で動的に変更する方法の解説になります。

やっていること自体は単純ですが、「PythonでのMySQL解説」というジャンル内では言語化された記事を見かけなかったので、言語化しておこうと思いました。

format関数を使う方法です。

“`Python:py
import mysql.connect

# MySQLへの接続処理は中略

sql = (”’SELECT *
FROM {} # テーブルに{}を代入
WHERE {} = %s # カラムに{}を代入
”’.format(tbl, clm))

param = (“hoge”, )

cursor.execute(sql, param)
“`

以上の場合、テーブルが変数tbl、カラムが変数c

元記事を表示

Docker マルチステージビルドについて

DockerでPython環境作成する際に以下のようなFROMが複数出てくるDockerfileがあった。

FROMが複数ってどういうこと?ってことで調べますと、
dockerのイメージ作成を段階的に実施できるとのこと。
何がうれしいかというとビルド環境をそのままデプロイするといらないものが入ってたりする(コンパイラとか)ので、実際にデプロイする環境は実行モジュールだけにしたいという思惑の模様。

“`Dockerfile
# Define global args
ARG FUNCTION_DIR=”/home/app/”
ARG RUNTIME_VERSION=”3.9″
ARG DISTRO_VERSION=”3.12″

# Stage 1 – bundle base image + runtime
# Grab a fresh copy of the image and install GCC
FROM python:${RUNTIME_VERSION}-alpine${DISTRO_VERSION} AS python-alpine
# Install GCC (Alp

元記事を表示

PytorchでのData Augumentation(データ拡張)

どうもエンジニアのirohasです。

最近さらにブームが巻き起こっているAI。
そのAI開発において開発手法として用いられている機械学習やディープラーニングにおいて、DataAugumentation(データ拡張)というのはすごく重要になります。

そこで今回は、前回実装したkerasのDataAugumentationとは別にPytorchでのDataAugumentationを実装してみたので、備忘録も兼ねて記事にしようと思います。

# 目次
[1.はじめに](#1-はじめに)
[2.環境](#2-環境)
[3.Data Augumentationって何?](#3-DataAugumentationって何?)
[4.事前準備](#4-事前準備)
[5.実装](#5-実装)
[6.機能説明](#6-機能説明)
[7.まとめ](#7-まとめ)
[8.参考文献](#8-参考文献)

# 1. はじめに
みなさんはPytorchというものをご存じでしょうか?
PyTorchは、コンピュータビジョンや自然言語処理で利用されているTorchを元に作られた、Pythonのオープンソースの機

元記事を表示

Watson Studio上のSPSS Modeler FlowからWatson Queryに接続する

# はじめに
データ仮想化サービスであるWatson Qeuryに、SPSS Modeler Flowから接続して操作する方法を説明する。

# 手順概要
1. Watson Queryの認証情報を取得する
1. Watson Studioのプロジェクトから、Watson Queryの接続情報を登録する
1. SPSS Modeler Flowの画面から、Watson Queryの資産を入力として指定する

# 手順詳細
1. Watson Queryの認証情報を取得する
[こちらのリンク](https://qiita.com/hk8111/items/6437c3be2113de881d8d#%E6%89%8B%E9%A0%86%E8%A9%B3%E7%B4%B0)の”Watson Queryの認証情報を取得する”を参考に、認証情報を取得する。
– APIKEY : 資格情報ファイル.apikey
– DB名 : 資格情報ファイル.connection.legacy.database
– ホスト名 : 資格情報ファイル.connection.legacy.ho

元記事を表示

[Django]settings.pyでよく見るパラメータまとめのメモ

# はじめに
業務でDjangoを使っているのですが、
あまり設定ファイルをいじることがないので、この際パラメータにどんなものがあるか調べてみました。
大体は名前から意味が予測つくようになっていると思いますが、注意点なども含めて書き残しておきたいと思います。

# デフォルトで存在するパラメータ
## BASE_DIR
・プロジェクトの基となるフォルダ
・`django-admin startproject projects-name`で作成したプロジェクトの一番上位のフォルダ
## SECRET_KEY
・Django のインストールごとに設定される個別の秘密鍵
・暗号化やハッシュ化で用いられる秘密鍵であり、Djangoプロジェクト作成時にランダムに生成される
## DEBUG
・本番環境では必ずFalse
・開発環境でデバッグが必要な時にTrueにしておく。エラーが起きたときに、詳細なエラー画面を表示してくれる。ただしKEYやPASSなどの重要情報はセキュリティのため表示されないようになっている。
・実行したクエリを全て記憶しておくので、メモリへの負荷は高い
## ALLIWED_

元記事を表示

【トリビアのDelta Lake】#10 PySparkでカラム名に「:」が入ってて困った

だいぶ、小ネタなのですが…
PySparkを使ってデータ操作していたとき、カラム名に「:」が入ってて困った話を今回はしてみます。

# サンプルデータフレームを用意
今日の晩御飯はすき焼きだったので、牛肉にちなんで、牛肉の産地表と、ブランド肉の名称表という2つのデータフレームを用意し、それを結合する、というものをやってみます。

“`python
meat_from = [
{“hoge:id”: “A1”, “from”: “kobe”},
{“hoge:id”: “A2”, “from”: “matsuszaka”}
]
meat_name= [
{“foo:id”: “A1”, “name”: “神戸牛”},
{“foo:id”: “A2”, “name”: “松坂牛”}
]
meat_from_sdf = spark.createDataFrame(meat_from)
meat_name_sdf = spark.createDataFrame(meat_name)
“`
んで、
“`python
meat_f

元記事を表示

PythonからWatson Queryへ接続する

# はじめに
データ仮想化サービスであるWatson Qeuryに、Pythonから接続して操作する方法を説明する。
ライブラリとして、[ibm-db](https://pypi.org/project/ibm-db/#description)を利用する。

# 背景
Watson QueryはDb2/LUWと同様の認証・ライブラリを利用する一方で、Watson QueryはAPI認証でありユーザーID/パスワードを利用した認証は指定できない。
API認証によるibm-dbの設定手順について説明した記事が見当たらなかったため、当記事を作成した。

# 手順概要
1. Watson Queryの認証情報を取得する
1. 認証情報をサンプルプログラムに転記する
1. サンプルプログラムを実行する

# 手順詳細
1. Watson Queryの認証情報を取得する
1. Watson Queryサービスにアクセスする
1. サービス資格情報 → 新規資格情報をクリック![image.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

Databricks ( Spark ) にて Windows 機種依存文字 を保持しているソースを読み込む場合にはエンコーディングを `ms932` とするのがよさそうという話

## 概要
Databricks ( Spark ) にて Windows 機種依存文字 を保持しているソースを読み込む場合には、エンコーディングを `shift_jis` ではなく、 `ms932` にするのがよさそうと教えていただいた内容を共有します。

機種依存文字 とは、CP932 という Shift_JIS を独自に拡張した文字コードなどで定義されている文字であり、Macなどの他の機種では適切に表示ができない文字のことです。 Windows の 機種依存文字としては次のような文字があるようです。

> ① ② ③ ④ ⑤ Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ ㍉ ㌔ ㌢ ㍍ ㌘ ㌧

Windows 機種依存文字が含まれるファイルを参照する場合には、`shift_jis`で読みこむと文字化けしていしまうため、`ms932` で読むことで適切に読むことができそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c0dd2dbc-647a-1356-14b2-4eea49b61

元記事を表示

Pythonにインクリメントを追加してみた

# はじめに
これはeeic2022の3年後期実験「大規模ソフトウェアをて探ろう」の4班の成果報告の記事です。
ここではPythonにインクリメントを追加する方法について書きます。
以下は他の班員の記事です。CPythonのビルドなどについて書かれているので、先にこちらを読むことをおすすめします。
# 実装環境
– Ubuntu 20.04 LTS
– Python3.10.8
# インクリメント`++`の実装
CPython内における他の単項演算子`-`(-1倍)`~`(ビット反転)の定義を参考にしながら実装しました。
以下は実装した際の変更点です。
## Grammer/Tokens
他の単項演算子と同様に以下を追加し、`$ make regen-token`を実行することで`++`をToken(意味を持った記号)として定義します。
~~~
INCREMENT ‘++’
~~~
## Grammer/python.gram
このファイルではPythonの文法が規定されています。
`++`という演算子がどのような文法で用いられるのかを記述しました。
~~~
fa

元記事を表示

【CPU上の実行に対応】OpenAI Whisperの高性能推論ver Whisper.cppを試してみた

## まえがき
OpenAI Whisperの高性能推論verが話題となっていたので試してみました。
C/C++で実装され、CPUの実行に最適化されたものとなっているようです。

## 導入

– ソースコードをローカルへクローンする
“`bash
$ git clone https://github.com/ggerganov/whisper.cpp.git
“`

– 使用するモデルをダウンロードする
“`bash
$ bash ./models/download-ggml-model.sh
Downloading ggml model small …
ggml-small.bin
100%[====================================================================>] 465.01M 2.84MB/s 時間 1m 58s
Done! Model ‘small’ saved in ‘models/

元記事を表示

自分がある期間に投稿した記事の一覧をQiita APIを使って取得する(python)

自分がある期間に投稿した記事の一覧を取得する必要があったので、その際のメモです。

# 1. Qiita API
Qiita API v2はQiitaが提供しているQiitaのデータの取得・記事の投稿などができるREST APIです。
https://qiita.com/api/v2/docs

[利用制限](https://qiita.com/api/v2/docs#%E5%88%A9%E7%94%A8%E5%88%B6%E9%99%90)があって、認証している状態ではユーザごとに1時間に1000回まで、認証していない状態ではIPアドレスごとに1時間に60回までリクエストを受け付けます。

1時間に60回もあれば別に認証いらない気がしたので、認証なしでやってみます。

ちなみにQiitaの他の記事ではちゃんと認証の解説もしてるようなので、1時間に60回以上リクエストしそうだったらだったら、[他の記事](https://qiita.com/search?q=qiita+api)を参考にしてみてください(説明が長くなるだけで特に難しくはないです)。

作成中エラーが出て何回もやってみ

元記事を表示

【Python】if x: と if x==True: が異なる場合について

# 概要

普通、後者のように書くと linter に怒られるし、こいつコード書けないやつだと思われるリスクをはらんでいる。
しかし Python は演算オーバーロードの機能を持つので、厳密には両者は異なる。
実用上そんなことするか、と思われるかもしれないが、著者は実際に SymPy を使ったコードで観測した。ここでは単純化したコード例を記す。

# コード例

“`python
class Foo:
def __bool__(self):
return False
def __eq__(self, other):
return True

x = Foo()
“`

上のように定義すると、

“`python
if x:
print(1)
else:
print(0)
“`

を評価すると

“`text:result
0
“`

となる。一方、

“`python
if x==True:
print(1)
else:
print(0)
“`

を評価すると

“`text:result

元記事を表示

SentenceTransformersを使って4行で文章埋め込みをする。

# この記事について
NLP初学者向けに、一瞬で文章の埋め込みができるSentenceTransformersを紹介します。NLP初学者向けということで用語の解説も簡単に行なっていきますが、厳密さのかけらもありません。

こんなに簡単に優秀なモデルで遊べるのに日本語の記事が少なくて勿体無い!と思ったので書きました。初めての投稿なので拙いですがお許しください。

それと良ければ「いいね」を…

# 目次
[1.この記事について](#この記事について)
[2.NLP(自然言語処理)とは](#NLP(自然言語処理)とは)
[3.SentenceTransformerとは](#SentenceTransformerとは)
[4.埋め込みとは](#埋め込みとは)
[5.使い方](#使い方)
[6.おわりに](#おわりに)

# NLP(自然言語処理)とは
自然言語とは、人間が普段会話に使う言語です。(正:日本語、英語 / 誤:Python、数式)
自然言語をコンピュータに処理させる一連の技術が自然言語処理です。
言葉を扱うAIというイメージで初めは良いのではないかと思います。

英語ではN

元記事を表示

Databricks ( Spark ) にておける File metadata column (ファイル メタデータ列) の利用方法

## 概要

Databricks Runtime 10.5 以降で利用できるようになった File metadata column (ファイル メタデータ列) の利用方法を共有します。

2022年11月8日時点では、下記のような項目を取得できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/571e6ed7-fc09-fe03-0a9b-a3b8a77b2088.png)

引用元:[ファイル メタデータ列 – Azure Databricks | Microsoft Learn](https://learn.microsoft.com/ja-jp/azure/databricks/ingestion/file-metadata-column#supported-metadata)

実際に取得できる値は、下記にあるような項目です。監査列を付与する際に有用であり、特にデータインジェスト日を付与する場合には`_metadata.file_modification_ti

元記事を表示

pandasのresampleを用いて急激な気温の変化を調べる

# 動機
10分間隔の気温データから,急激な気温変化を検出したい.
そこで,pandasのresampleを使うことにする.
使用するcsvファイルの中にはDateという列に観測時刻が,temperatureという列に気温データが入っている.

# resampleの使い方を確認
resampleの公式ドキュメントは[こちら](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.resample.html).
公式ドキュメントによると,インデックスをタイムインデックスにしておく必要があるらしい.
>DataFrame.resample(rule, axis=0, closed=None, label=None, convention=’start’, kind=None, loffset=None, base=None, on=None, level=None, origin=’start_day’, offset=None, group_keys=_NoDefault.no_defau

元記事を表示

DNNに必要な画像データの水増し

# DNNで使える画像データ水増し手法
## はじめに
DNN(Deep Neural Network)を活用したディープラーニングにおいて、画像学習をさせようとしたときの話。
DNNでクラス分類の精度を上げるには、より良いデータを取得する必要があります。
良いデータとは主に、
– 画像枚数が十分
– 各タグの画像枚数が等しい
– 正確なアノテーション

などとされています。
これらを実現するにあたって必要なものは一貫して「画像データの枚数」にあります。
そこで、今回は「ガンマ変換」と「平滑化」を用いて、画像の水増しをする手法を備忘録的に書いておきます。

また、実際のサンプルデータとコードは[github](https://github.com/wassy310/DNN_Image-data-padding-method)に置いてあります。

## ガンマ変換(ガンマ補正)
輝度値を変化させることで実装できる変換手法です。
これにより、画像を明るくしたり暗くしたりして水増しします。
サンプルコードの
“`
gamma = 0.4
“`
の実数部を変えることで、輝度を変えることが可

元記事を表示

DataFlowのパイプラインでCerberusの機能を使って、csvをチェックしてみた。

# はじめに
現在業務でGCPのDataFlowを使ってデータパイプラインを構築しており、CSVファイルがアプリケーションから来るのですが、たまにユーザが手で直したりなんてことがあるので、バリデーションして、不適当な行があれば省いて、後続のデータパイプラインに流したいと思っています。(上流の運用なおしたいのはやまやまですが。。。)
そこでCerberusというバリデーションライブラリがあったので、いっちょやってみようと思った次第です。

# Cerberusとは
Pythonのデータ検証用のライブラリで
「Cerberusは、強力でありながらシンプルで軽量なデータ検証機能をすぐに提供し、簡単に拡張できるように設計されているため、カスタム検証が可能です。依存関係はなく、Python 2.7から3.8、PyPyおよびPyPy3まで徹底的にテストされています。」とのこと
(引用元https://docs.python-cerberus.org/en/stable/index.html)

簡単に機能と使い方を説明すると、データとチェック用のファイルを比較して、OK/NGを判断してくれます。

元記事を表示

Pythonでndjsonファイルを扱う方法

# はじめに

最近ndjson形式のファイルを扱うことが増えてきたため、今回はPythonでndjson形式のファイルを扱う方法を簡潔にまとめてみた。
ndjsonというモジュールがあるらしいので、それを使用してみる。

# 参考記事など

https://pypi.org/project/ndjson/

https://dk521123.hatenablog.com/entry/2022/08/30/224248

# テスト用ndjsonファイル準備

以下のような値をもつファイルを作成し、test_input.ndjsonとして保存した。

“`
{“username”:”Mac”,”hobby”:[“baseball”,”soccer”,”tennis”]}
{“username”:”John”,”hobby”:[“baseball”,”cooking”]}
{“username”:”Miki”,”hobby”:[“cooking”,”reading”]}
{“username”:”Andy”,”hobby”:[“baseball”,”soccer”]}
“`

#

元記事を表示

AI映像解析で車両の速度を自動算出すると異常値ばっかりで苦労した

# サマリー
**・速度の算出結果がおかしい
・原因調査と対策
・距離マスクを詳細化したときの効果
・多方向からによる距離マスクの検証結果**

前回の記事「[YOLOXの映像解析で車両の速度をAIで算出して渋滞を判定するのに苦労した~その2:速度算出手法編](https://qiita.com/drafts/a86f20673df6b6536345)」で距離マスクの説明をして、斜めに移動する車両もY軸方向の移動距離のみで速度が算出できることを説明しました。
また「画面の端問題」「カルマンフィルタ問題」など、速度算出の際に異常値となる原因を見つけ出し、それらを排除して正確な速度算出ができるようにしました。

しかし実際にやってみるとそう甘くはなく、意外な原因で速度算出値がブレることが分かりました。
ここでは失敗した映像と成功した映像の比較を行い、最終的には度数分布で異常値を2%以下に抑え込みました。

また距離マスクが詳細になったときの効果や、一方向ではなく多方向に移動する車両に距離マスクが有効かどうかも検証した結果を記載します。

# 速度の算出結果がおかしい

で、実際に撮影した映

元記事を表示

pythonエンジニアになるための教材とは?(非エンジニアのメモ)

pythonエンジニアになるべく学習中。なのだがいかんせん所持している教材が多すぎる。
手元にある教材をジャンル別にまとめてみた。

コンピュータサイエンス

『基本情報技術者』

『みんなのコンピュータサイエンス』

『決定版 コンピュータサイエンス図鑑』

『教養としてのコンピューターサイエンス講義 今こそ知っておくべき「デジタル世界」の基礎知識』

『コンピュータ、どうやってつくったんですか? はじめて学ぶ コンピュータの歴史としくみ』

『UNIXという考え方―その設計思想と哲学』

Python,Django

『シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全』

『ゲームを作りながら楽しく学べるPythonプログラミング (Future Coders(NextPublishing))』

『独学プログラマー Python言語の基本から仕事のやり方まで』

udemy:
はじめてのPython 少しずつ丁寧に学ぶプログラミング言語Python3のエッセンス

現役シリコンバレーエンジニアが教えるPython 3

元記事を表示

OTHERカテゴリの最新記事