Python関連のことを調べてみた2021年12月05日

Python関連のことを調べてみた2021年12月05日

【Python】株価データ分析 株価チャートを描く~mplfinance 一目均衡表完成編~

## はじめに

前回 mplfinance を使って一目均衡表を描いたが
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/385512/6cb2d6f1-cc25-2668-f359-1a3492889d82.png)
抵抗帯の未来(26日分)の部分が描けていないのがいけてなかった
今回は,未来26日分の抵抗帯を描くように変更する

前回のコードからの変更点が記事の主な内容となるので,
まずはこちらから確認してほしい

https://qiita.com/tnozoo/items/81a972fe911a28a781f9

## 一目均衡表に未来26日分の抵抗帯を描くための変更点

抵抗帯は先行スパン1と先行スパン2の間の部分で,
先行スパン1と先行スパン2は,基準値などを使って計算した結果を26日先行させて表示させたものであったので,

– `pandas_datareader.DataReader` で取得したデータ(DataFrame)に未来26日すべて欠損値の DataFrame

元記事を表示

Cloud DLPで特定のBigQueryデータセットの中身を全部スキャンする

GCPにはCloud DLPという個人情報(っぽく見える情報)が含まれていないかを機械学習で自動的に検知するサービスがあります。

https://cloud.google.com/dlp

このサービスを使うと、BigQueryやCloud Storageなどに個人情報が格納されてないかをチェックできます。
GCPのwebコンソールからスキャンするとテーブル1つ1つ単位でしかチェックができません。
データセットの中身全てをチェックしようとすると煩雑だったために、データセット内の全てのテーブルをスキャンするスクリプトを作りました。

“`py
import google.cloud.dlp
from google.cloud import bigquery

def scan(project_id, dataset_name, table_name):
dlp = google.cloud.dlp_v2.DlpServiceClient()

# 以下を参考に検知したい情報を列挙する
# https://cloud.google.com/dlp/docs/in

元記事を表示

PythonからSnowflakeを操作する際のケースインセンシティブな注意点

## はじめに
データウェアハウスとしてクラウドサービスである[Snowflake](https://www.snowflake.com/)、近年注目株で業務に使用している方もいると思います。今回はこのSnowflakeにPythonからクエリを実行させる際、ケースインセンシティブの扱いで当時私がハマった内容と対応方法について記録しておきます。

## 前提
使用した言語やライブラリ
– python 3.8
– pandas 1.1.5
– sqlalchemy 1.3.21
– snowflake-sqlalchemy 1.2.4

## Snowflakeのケースインセンシティブな仕様
[ドキュメント](https://docs.snowflake.com/ja/sql-reference/identifiers-syntax.html#unquoted-identifiers)曰く、Snowflakeではテーブルやスキーマなどのオブジェクト名は大文字がデフォルトであり、小文字として認識させるためには`”`でオブジェクト名を囲わないといけません。

つまりデータベース名・スキー

元記事を表示

Blender 2.93 の設定を 3.0 に持ってくるのにやったこと

# Blender3.0リリース

Blenderの3.0が12/3にリリースされました。
ちょっと使ってみたので、その紹介をします。

環境はmacOSです。管理者権限のユーザーで実行しています。

## インストール

まずは、2.93を残しておくために下記を実行しています。

“`bash
mv /Applications/Blender.app/ /Applications/Blender.2.93.app/
“`

https://www.blender.org/ の「Download Blender」を押してインストーラーをダウンロードしてインストールします。

3.0も下記のようにフォルダを変更します。

“`bash
mv /Applications/Blender.app/ /Applications/Blender.3.00.app/
“`

アプリケーションのフォルダを開いて、Blender.3.00を起動しましょう。

![スクリーンショット 2021-12-04 7.43.50.jpg](https://qiita-image-store.s3.ap-

元記事を表示

自然言語処理の前処理(one-hotから多次元へ)

# はじめに
お疲れさまです。
アドベントカレンダーに参加しましたので、5日目の担当記事を投稿しました。

この記事は自然言語処理初学者に向けた、深層学習の基礎になる前処理に重きをおいた記事です。
2013年に登場したword2vecまでしか触れませんので、現在主流のTransformerなどを触る前にさっと読んでいただければと思います。

# 自然言語処理における前処理とは
自然言語処理、つまり、我々の使う日本語や英語などをマシンに読み解かせ、必要な情報を取得する処理において、有名なタスクとしては、感情分析・固有表現抽出や質問応答・翻訳といった文生成などが挙げられます。
これらは、語の意味を文脈を加味して正確に捉えることで、高い正解率を出すことができると考えられています。

そのためには、入力の文章から語を切り出し、マシンが解析できる状態、つまり、語を数値化する必要があります。
それを本記事では、前処理と定義し、以下の項目にてご説明したいと思います。

## 形態素解析器を用いた分かち書き
例えば、以下の文から感情分析を行う場合のことを考えてみましょう。
![スクリーンショット 20

元記事を表示

【python】画像検索、翻訳、画像認識を一度にやってみる【初級篇】

この記事は、マイナビ [Advent Calendar 2021 5日目](https://qiita.com/advent-calendar/2021/mynavi)の記事です。

# 何を作ったのか
簡単に言うと、検索ワードを入力したら自動でネットから画像を複数枚取得してきて、
それらを画像認識、物体認識をして何が映っているのかを予測するというものです。

# なぜ
画像認識について素人である筆者が画像認識の勉強をするのと同時に
潤沢に存在するpythonのライブラリを多用してどんなことができるのか知りたかったからです。

# イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2272663/8135d14e-efc5-2b02-f9a7-9984e1576abd.png)

### 大まかな流れ
①ユーザが何かの単語を入力する(検索ワード)

②検索ワードを英語に翻訳して、フォルダを作成する

③検索ワードで画像検索をし、複数枚の画像を取得

④取得した画像を保

元記事を表示

Docker+VSCodeでAtCoder用の開発環境を簡単に作る(Python編)

## はじめに

この記事はQiita主催 [競技プログラミングを始めたばかりの人に伝えたいことアドベントカレンダー](https://qiita.com/advent-calendar/2021/pre-competitive) 5日目の記事です。

https://qiita.com/advent-calendar/2021/pre-competitive

? 前日の記事は[こちら](https://qiita.com/torifukukaiou/items/9a2235d2476857f9ff32)

## まえがき

競技プログラミングを始めたばかりの方へ向けた便利なCLIツールと私の競プロ環境を紹介します!

AtCoderは大変優れたサイトでブラウザ上でコーディングもテストも行えますが、
linterの補完を受けたり一度に全部のテストケースを試したいと思うことがありますね?

そんな方にオススメです。
画像の感じでコマンド一発でテストや提出ができるようになります。
![screenshot_1638625713.png](https://qiita-image-sto

元記事を表示

AtCoder超初心者によるABC230のまとめ A~C (Python)

# ABC230

https://atcoder.jp/contests/abc230

# A問題

https://atcoder.jp/contests/abc230/tasks/abc230_a

## 問題のイメージ

**型変換**を適切に行い、**文字列を連結**すれば解けます。

特定の文字列と標準入力の文字列を連結して出力します。

「コンテストの中止による欠番」をif文で判定し、標準入力の値を置き換える必要があります。

## コード化

“`python
# 標準入力をint型で受け取る
n = int(input())

# 欠番以降は回数を1増やす
if n >= 42:
n += 1

# 回数を3桁で揃えたときに足りない分だけ前に0を追加
# 左辺のnは文字列になる
n = “0” * (3 – len(str(n))) + str(n)

# 結合して出力
print(“AGC” + n)
“`

## バグポイント

– nを1増やすとき、nは `int(n)` でint型にしましょう。

– nの文字数を `len()` で数えるときは `

元記事を表示

Python関係のググり方Tips集

# はじめに
2021年現在、**Python**は新たなライブラリや機能が盛んに開発されている言語であり、知識のアップデートや問題解決のために**「ググる」頻度が高い**と想定されます

そこで今回、Python関係でGoogle検索する際に**意識すると検索効率が上がるTips集**を、記事にまとめてみました

# ググるときの流れ

一般的には、以下の流れでググるかと思います。

1. ググるためのワードを考える
2. グーグル検索を実行し、検索結果から適切なサイトを選択する

# 1. ググるためのワードを考える
まず、Python関係で検索が必要となる事態には以下のようなパターンが多いかと思います。
A. あるライブラリの使い方や機能がが分からないので、使い方を調べたい
B. コード実行中にエラーが発生したので、解決策を調べたい

それぞれ、検索ワード

## A. あるライブラリの使い方や機能を調べたい
Pythonは様々なライブラリを組み合わせて使用することが多いため、未知のライブラリ使用時に、使用法をGoogleで検索することが多いかと思います。

私の経験上、調べたい

元記事を表示

Deepでポン用実験管理ツール(サービス)の比較2021

皆様メリークリスマス!ふぁむたろうです。 ~~記事遅れてしまいすみませんでした~~

自分はここ1年くらいのコンペでは~~脳死で~~ [wandb(Weights & Bias)](https://wandb.ai/site) を使って実験管理をしていたのですが、
1年の節目ということで他のツール(サービス)も見てみようと思い記事にしました。
(余談ですが wandb の読み方は「Weights & Bias」でも「ワンディービー」でも「ダブリューアンドビー」でも良いっぽいです)

特に業務上で使う場合 pricing 等も気をつけなきゃいけないため、この記事ではそこらへんにも触れていければと思います。

とはいえ昨今の実験管理ツールはたくさんあるので、今回は以下の5つに絞って比較してみます。
(pytorch lightning に標準装備されているもの)

– [TensorBoard](https://www.tensorflow.org/tensorboard/)
– [MLflow](https://mlflow.org/)
– [Neptune\.ai](https://n

元記事を表示

アプリで使える日本国内の地形/建物の3Dモデルをつくる

日本国内でも様々なデータが公開されるようになってきました。今回はこのうちARなどにも利用できそうな地形データや建物データについてアプリケーションで利用しやすいWavefront OBJ (.obj)形式に変換することを試してみました。
出力される.objファイルは、PowerPoint などの Microsoft Office 製品やUnityなどのゲームエンジン、各種3Dソフトウェアなどで開けるよう互換性を考慮しています(例えば、PLATEAUで配布されている.objファイルはそのままでは読めないアプリケーションがあります) ので、いろいろ活用してみてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43450/5c28a906-b016-e550-c8dc-360b77d90db8.png)

## 地形の3Dモデルを利用する

[地理院地図](https://maps.gsi.go.jp/)は、従来よりSTL, VRML, WebGL向けの3Dモデルを作成するこ

元記事を表示

リハビリとしてpythonでウラムの螺旋をつくったよ

#背景
しばらくpython触ってなかったし、ウラムの螺旋の描画をpythonでリハビリがてらやってみるか~
画像化とかまではやってなくて、cmdでウラムの螺旋を表示させるだけです。
#ウラムの螺旋とは
[ウラムの螺旋 – Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A6%E3%83%A9%E3%83%A0%E3%81%AE%E8%9E%BA%E6%97%8B)
詳しいことはwikiに書いてあるので、要約。
1から始まる数字を反時計回り螺旋状に並べていって素数だけを表示させると、なんとなく規則性の有りそうな模様っぽくなるよ。不思議だねというお話。
#環境
Python 3.9.9
sympy(素数判定がめんどくさかったので)
#本題

“`python:run.py
from sympy import sieve

class Ulam():

def input_data(self):
self.n = int(input(“螺旋の大きさ(n*n):”))

def create_map(self):#マップ配列を0で初期

元記事を表示

tkinterで表・ボタン・時間表示

#はじめに + tkinterとは
ロボットを操作する際に色んな環境と競合せず,簡単に使用できるpythonのためのGUIライブラリはないかなーとなったときにtkinterを発見しました.ボタンやラベルを使って比較的簡単にUIを作ることができます.

[参考]tkinter
https://docs.python.org/ja/3/library/tkinter.html
[参考]python用のGUIインターフェース一覧
https://www.simugrammer.com/python_gui_matome/

ちなみにpythonにはどうやらたくさんGUIを作れるライブラリがあるっぽいです.
正直,比較していないので特にtkinterが良い理由はないです(笑),,,

その中で今回はロボットのような状態を命令したり表示したりすることが求められる際に利用できる書き方を以下に示したいと思います.
tkinterを使って何か操作したり表示させたい場合はぜひ参考にしてください.
ただ長らくお世話になっている先人たちが丁寧に説明してくださっているので,ここでは割愛してコメントのみ記載して

元記事を表示

pythonでログのファイル出力とコンソール出力を両方できるようにする。

## 目的
– ファイル出力とコンソール出力の両方のログを出力できるようにする。
– ファイル出力については、エラーレベル以上のみ出力されたファイルも作る。

## 注意点
ログについては最近勉強を始めたばかりなので、ここ少しおかしいなとか、もっと効率的に書けるなというところがあれば、コメントいただければ幸いです。

## ライブラリのインポート
“`
from logging import ERROR, Formatter, getLogger, StreamHandler,FileHandler,DEBUG
“`
## ログの出力形式を設定
“`
formatter=Formatter(‘[%(levelname)s] %(asctime)s – %(message)s(%(filename)s)’)
logger = getLogger(__name__)
“`
## コンソール表示用ハンドラーの生成
“`
stream_handler = StreamHandler()
“`
## テキストファイル出力用ハンドラーの生成
デバッグレベルとエラーレベルに分ける。

`

元記事を表示

【Hydra+wandb+etc..】研究室で利用している機械学習実験環境について(追記予定です.)

# はじめに

[TDU_データ科学・機械学習研究室Advent Calendar
](https://qiita.com/advent-calendar/2021/ranking/subscriptions/categories/company)5日目

**記事書ききれてないです.すみません,もう少し解説加えたものを近日中にアップします!!**

普段僕はComputer Visionの研究をしています.
研究ではCNNを用いて伝統文様の解析をしています.昨今の深層学習ではGPUを利用することがほぼマストで.かくいう僕も研究では研究室のGPUマシンを利用しています.リモート(大学のGPU)マシンでの画像関係の実験は難しいです.具体的に言うと,画像は大量にあるので生データを逐一見るのは難しい.

そこで,僕は普段GPUマシン上に利用している実験環境について語ります.

– パラメータ管理: hydra
– ログ(Accuracy, loss, GPUモニタリング)管理: wandb
– 画像の管理
– sshfs
– streamlit(オリジナルアプリ)
– デー

元記事を表示

2つの目的が共存する組合せ問題の最適解を求めて(Python-MIP)

題材となる問題はこちら
**“とあるスーパー、過去3ヵ月以内のレシートを合計N万円分集めると500円券をN枚貰える“**

以前、numpyとpandasを用いていましたが、ほぼスクラッチでのグリッドサーチを実装してみました。
こちらがその記事です。

https://qiita.com/pyzki/items/a6a9ae4bc389c3d2b47d

しかし、20枚のレシートで5時間弱の処理時間を要してしまい、実用性に欠けていました。
今回は既存のライブラリを用いて、問題を定式化し、実用性の高いものを作ろうと思います。

#環境
OS:Windows10
CPU:AMD Ryzen 9 5900X 12-Core
メモリ:32GB
バージョン:python 3.9
ツール:jupyter Notebook
※以前のグリッドサーチ実装時と同様です。

#問題文の変換
題材となる問題(以下、レシート問題)は、所謂、**0-1ナップサック問題**の類似問題と言えます。
一般的な0-1ナップサック問題と比較しやすいように、問題文を変換します。

0-1ナップサック問題
元記事を表示

PyQt5 QToolBarを使ってみる

# 内容

サイドメニューの作り方が気になり調べたところ,`QToolBar`を使うと作ることができそうでした。

以下のサイトにサンプルがあったので動かしてみました。

https://www.tutorialspoint.com/pyqt5/pyqt5_qtoolbar_widget.htm

“`qtoolbar.py
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class tooldemo(QMainWindow):
def __init__(self, parent = None):
super(tooldemo, self).__init__(parent)
layout = QVBoxLayout()
tb = self.addToolBar(“File”)

new = QAction(QIcon(“test.png”),”new”,self)
tb.ad

元記事を表示

Flaskはじめに

## 環境変数

hello.pyを実行したいとき

“`bash
export FLASK_APP=hello
“`

デバッグモード

“`bash
export FLASK_ENV=development
“`

元記事を表示

SegamakerのDirectマルチコンテナエンドポイントを構築してみる

# 背景
* 独自コンテナより推論エンドポイント
* 複数モデル
* コストを考えている

# 自動インフラ構築

* InferenceExecutionConfig: { Mode: ‘Direct’ }の設定はAWS Consoleに設定できない、デフォルトは{ Mode: ‘Serial’ }で、推論パイプラインになる

“`
Model:
Type: “AWS::SageMaker::Model”
Properties:
InferenceExecutionConfig:
Mode: ‘Direct’
Containers:
– ContainerHostname: ‘aaa’
Image: !FindInMap [ConfigMap, !Ref EnvType, Image]
Mode: ‘SingleModel’
ModelDataUrl: ‘s3://xxx’
– ContainerHostname: ‘bbb

元記事を表示

【4日目】Python初心者が変数の基本を学ぶ

#変数宣言
Pythonでの変数宣言は下記のように行います。

“`python:文字列
foo = “test”
print(foo)
“`

“`python:数値
var = 100
print(var)
“`

文字列はシングルクォーテーションでも大丈夫です。
また、文字連結するときは同じ型同士であれば「+」で可能です。
**#**の行はコメントで出力結果イメージ

“`python:文字列連結
hoge = ‘hello’ + ‘ ‘ + ‘world’
print(hoge)
# hello world
“`

文字列と数値を連結しようとするとエラーになるので、取扱には注意です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2343271/8d07cb05-c9cb-6ca6-0557-589ca0477b51.png)

#データ型チェック

type関数で変数のデータ型が何か判別できます。

“`python
print(type(hoge))
#

元記事を表示

OTHERカテゴリの最新記事