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

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

Djangoのfixtureで登録したユーザーでテストClientのログイン認証に一瞬だけ手間取った話

# 開発環境
* Python 3.9
* Django==3.2.12
* djangorestframework==3.13.1

# 困ったこと。

DjangoでModelSetViewを使ったAPIの開発で、
ログイン認証の必要なAPIのテストをしているとき。

“`tests.py
class TestAuthApi(TestCase):
”’認証APIのテスト”’

AUTH_URL = ‘/api-token-auth/’ # 認証用URL
fixtures = [‘fixtures/test/test_data.json’]

def test_token(self):
”’POSTメソッドのテスト”’
client = Client()
# トークン取得
token_response = client.post(
self.AUTH_URL,
data={
“username

元記事を表示

titanicコンペで外れ値を探してみた。

こちらのNotebookを摸写した上で、自分で考えたことを考えてデータ処理してみた。
— https://www.kaggle.com/code/maheshnanavare/titanic-using-pipelined-xgboost-gridsearch

## データの読み込み
“`
# データ読み込み
X_y = pd.read_csv(‘train.csv’, index_col = ‘Passenger_id’)
X_test = pd.read_csv(‘test.csv’, index_col = ‘Passenger_id’)

# Survivedカラムに欠損値がある行を削除する。
X_y = X_y.dropna(subset=[‘Survived’], axis=0)

# yをXから分離する。
X = X_y.copy()
y = X.pop(‘Survived’)
“`

## データクレンジング
“`
def show_null_values(X, X_test)
# 変数Xの欠損値の数を数える。
null_values = pd

元記事を表示

「[Q&A] 部分和の計算(初心者です)」の動的計画法のコードを書いてみました

 Qiitaの次の質問

https://qiita.com/hiro1044/questions/7ff52d0e1e4d9fd42a13

の、動的計画法のコードを考えたが、時間がかかりすぎて質問がクローズになっていたので、ここに投稿します。

 `dp[j]`は和が`j`となる数の組(リスト)を要素とするリストとします。
 最初の状態は何も選ばれていなくて和が`0`であるから、`dp[0]`は空リストを要素とするリスト`[[]]`となる。
 $i$番目に和が`j`になるのは、$i$番目の`xs_i`を、「選ばず」にか、「選んで」かのどちらか。
 よって遷移式は、$i-1$番目に「和が`j`になっている数の組を要素とするリスト」と「和が`j – xs_i`になっている数の組を要素とするリスト」を結合したリストになるので、

“`
dp[j] <- dp[j] + (dp[j - xs_i]の各要素のリストにxs_iを追加したものを要素とするリスト) ``` となる。  コードにすると、 ```python def has_subset_sum(xs, k, target):

元記事を表示

deeplAPIでファイルを翻訳する方法

# はじめに
deeplを使った翻訳アプリを作成したいと思い、調べて実装致しました。

# 対象
・Python学習者
・deeplで翻訳アプリを作成したい方

# 開発環境
・macOS Monterey バージョン12.3.1
・Python 3.10.8

# 本題

① deeplAPIを利用する際は、以下のサイトで登録する必要があります。
https://www.deepl.com/pro-api?cta=header-pro-api

② ライブラリをインストールする
“`
pip install –upgrade deepl
“`

③初期設定
“`
import deepl

translator = deepl.Translator(“認証キー”)
“`

④実装
“`
translator.translate_document_from_filepath(
“translate-test.docx”, #翻訳対象ファイル
“translate-test-ja.docx”, #翻訳後のファイル
source_lang=’DE’, 

元記事を表示

DatabricksでPythonデバッガー(pdb)を使う

以下の記事を訳していた時に気づきました。Python debugger(pdb)を使うことで、例外発生時の問題特定が容易になります。

https://qiita.com/taka_yayoi/items/d21eda71037575dcaf7d

翻訳済みサンプルノートブックはこちらです。

https://github.com/taka-yayoi/public_repo_2/blob/master/python_debugger/Debugging%20Examples.py

# 要件

Databricksランタイム11.2以降が必要となります。

# サンプルノートブックのウォークスルー

Databricksノートブックにおけるpdbの使い方のサンプルを示します。
– 最後の例外からデバッグするには`%debug`を使います。これは、予期しないエラーに遭遇し、原因をデバッグする際に役立ちます(`pdb.pm()`と似ています)。
– 例外後(しかし、プログラム終了前)にインタラクティブなデバッガーを自動で起動するには`%pdb on`を使います。

これらのコマンドを使う

元記事を表示

TensorFlow Developer Certificate 受験にあたる PyCharm 関連の環境作成とエラー奮闘記+振り返り

# はじめに

2022年11月に [TensorFlow Developer Certificate](https://www.tensorflow.org/certificate) に合格しました。
受験する過程で試験特有の **PyCharm** 関連の問題が発生して苦労したため、この記事にまとめることで今後受験する人にとって有益な情報を提供したいと思い執筆しました。

* 対象:これから TensorFlow Developer Certificate の受験を控えている人
* 環境:Windows 11
* 内容:受験にあたり発生したエラーと解決(試験内容や対策方法については触れません)
* 基本的な操作:[ガイドブック](https://utility.trueability.com/google/tensor-flow/Instructions_for_taking_the_TensorFlow_Certificate_exam.pdf) に従って実施、この記事はガイドブックの補足という位置づけです(ガイドブックが更新されてこの記事のリンクが古くなっている可能性があるため

元記事を表示

JR EAST Train SimulatorをZUIKIの電車でGo!!用コントローラーで遊べるようにする(python)

# はじめに
JR公式から突如、社員教育用のシミュレータのSteam配信がアナウンスされ、界隈を震撼させました。
[JR東日本トレインシミュレータ][1]
しばらくβ版の配信が行われていたのですが、来る11月15日、ついに本格配信が決定!([公式プレス][2])
やったぜ~!!

さすがは公式、車両の挙動とかは結構いい感じなのですが、操作方法が…キーボードかマウスホイールのみ…
どうせなら電車でGO!!とかのコントローラーで運転したいなーと思い、お勉強がてら対応させてみたいと思います。

(結構表記ゆれがあったり、単語の意味を間違えて使ったりしているかもしれません。
にわかなのでやさしく指摘してくれるとありがたいです。)
# 概要
* ZUIKIの電車でGO!!用ワンハンドルコントローラーを、JREast TrainSmuratorの操作入力に対応させる。
* コントローラー(JoyStickとして認識されます)の状態に応じて、キー入力を行うプログラムを作成する。
* pythonでプログラムを作ってみます、とりあえず。

## pygameのインストール
pythonでジョイスティッ

元記事を表示

yamlで保存してあるconda仮想環境をDocker上で構築(multistage-build)

昔書いた記事: [yamlで保存してあるconda仮想環境をDocker上で構築](https://qiita.com/junkor-1011/items/cd7c0e626aedc335011d)をふと見返してみると、色々と微妙というか「個人的には今ならこうは書かないな。。。」と思ったのでアップデート版を書いてみる。

## 概要

前提知識:

– [conda cli](https://docs.conda.io/projects/conda/en/latest/commands.html)の基本と概念
– 特にAnacondaやminicondaで仮想環境を作ることができ、yamlファイルの形でexport出来ること
– 逆に、yamlファイルを取り込むことでAnacondaやminicondaなどで仮想環境を作成出来ること
– docker周りの基本
– linux周りの基本

**やること:**
– [`conda env export`コマンドなどから生成したyamlファイル](https://conda.io/projects/conda/en/l

元記事を表示

[python] Webスクレイピング 値取得の完全自動化 -BeautifulSoup-

# はじめに
前回に続き、Webスクレイピングの自動化について、まとめておく
今回は特に株価に注目してWebスクレイピングをした

https://qiita.com/junzai/items/47964a3b7026349191ce

# 環境
windows 10
python version: 3.7.8
Microsoft Edge
Yahoo Finance

# Code
“`python
import requests
from bs4 import BeautifulSoup
“`

## 情報の自動取得
“`python
def Read_Stock_Price(stock_number: list) -> str:
data = requests.get(f’https://finance.yahoo.co.jp/quote/{stock_number}.T’)
soup = BeautifulSoup(data.content, ‘html.parser’)

# htmlより場所を指定
price_now = soup.f

元記事を表示

【matplotlib】2次元ヒートマップのProjectionを取る方法

# 概要
一般的に、2次元ヒートマップの縦横比が等しい場合の軸方向のProjectionを取る方法は、matplotlib公式([Scatter plot with histograms](https://matplotlib.org/stable/gallery/lines_bars_and_markers/scatter_hist.html#sphx-glr-gallery-lines-bars-and-markers-scatter-hist-py))で紹介されています。しかし、公式そのままでは、縦横比が異なる場合に上手くいかないと思います。そこで、本記事では**縦横比が異なる場合のProjectionを取る方法**について紹介します。
また、応用編では慣性主軸を使って2次元ヒートマップのいい感じの軸を選び、その方向にProjectionを取る方法について紹介します。
Google Colabで作成したコードは、[こちら](https://colab.research.google.com/drive/1pyvZh2-_WJ9H0kd7a8BTNqIaQj2Bydor?usp=

元記事を表示

Scipyのビルドでコケた件(Ubuntu, Python3.10)

# 1. 概要
 MKLをリンクしたScipyを使用するためビルドしようとしたら以下のエラーが出たが、openblas-devをインストールしたらビルドに成功した。
“`
../../scipy/meson.build:131:0: ERROR: Dependency “OpenBLAS” not found, tried pkgconfig and cmake
“`

# 2. 実行環境
– Ubuntu 22.04.1 LTS on WSL2
– Python 3.10.6

# 3. 内容
 MKLをリンクしたNumpy、Scipyを使用するために、いつも両パッケージをビルドしてインストールしている(参考[NumPy/SciPy で Intel MKL を利用する (2019年11月版)](https://qiita.com/osanshouo/items/7a729aabf65a70ad6762))。最近Ubuntuのバージョンを20.04から22.04へとアップグレードしたのに伴って、Pythonのバージョンが3.8から3.10に変更された。そこでパッケージをインストール

元記事を表示

AlfredでGoogle Chromeのプロファイルを切り替えたい!

# TL;DR
Chromeのプロファイルを切り替えるAlfredワークフローを作った話。
https://github.com/murakami97/google-chrome-profile
![alfred_chrome_profile.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2658770/4e0c9960-cd05-ca19-f547-b8972ab194d3.jpeg)

# 目次
[1. 背景](#1-背景)
[2. 道具](#2-道具)
[3. 実装](#3-実装)
[4. 所感](#4-所感)

# 1. 背景
## Chromeのプロファイル機能
Googleアカウントを使い分けるときに便利な機能。私は学校用・職場用・個人用でアカウントを使い分ける必要があって、プロファイル機能にはかなり恩恵を受けています。

## マウスで操作したくない
Chrome以外のアプリを使っている途中で、特定プロファイルでChromeを使いたくなったとしましょう。このとき必要な操作は次のようになると

元記事を表示

pythonで13桁unixtimeの単なる数字羅列を日付型に変換しデータフレームへ格納する方法すら毎回忘れてしまうので終止符と膝を打つ!

#13桁unixtimeのtimestamp列を日付が見れるditetimeに変換しデータフレームへ格納します。

df[‘unixtime’] 13桁の数字が入っています。

“`
df[‘datetime’] = df[‘unixtime’] / 1000 #13桁の為unixtimeを1000で割ります。
df[‘datetime’] = pd.to_datetime(df[‘datetime’].astype(int), unit=’s’) #13桁から日付へ変換します。
“`

#日付をobject型から日付型に変換します。
#Date列はdatetime64型、#Date列の要素はTimestamp型となります。
“`
df[“Date”] = pd.to_datetime(df[“Date”], format=”%Y-%m-%d %H:%M:%S”)
print(df[“Date”].dtypes)
print(type(df[“Date”][0]))
“`

元記事を表示

pysparkのrdd.sortByで、関数の引数で受け取ったカラム名でソートしたい場合の解決法

# 事象
関数の引数で受け取ったカラム名で、rdd.sortByを使って、repartitionする際にソートしつつrepartitionしたいが、strの引数で処理しようとするとエラーが出る

# 環境
python 3.7.4
pyspark 3.1.2

## 例
### 関数例
“`python
def hoge(df: pyspark.sql.DataFrame, partition_num: int, partitionby_key: str) -> None:
repartitioned_df = df.rdd.sortBy(lambda r: r[partitionby_key], numPartitions=partition_num)

repartitioned_df.write.csv(‘any_path’)
“`
### 飛んでくるエラー
“`python
df = spark.range(5)
>> df.show()
| id|
|—|
| 0|
| 1|
| 2|
| 3|
| 4|

>> hoge(df

元記事を表示

UnrealEngine5でPythonの深層学習開発日記

## はじめに

最近,`UnrealEngine5`で`Python`を使った深層学習などをやりたいと思っているのですが,`Unity`みたいにプラグインがまだ充実していない様子です.そこで,その足掛かりとして簡単なプログラムを動かしてみたいと思います.

## 環境

– Unreal Engine 5.0.3
– Windows11

## UnrealEngine5 x Python

### 基礎編
– ✅[【python】UnrealEngine5のEditor Utility Widgetでpythonを使ってみる~Hello world~](https://hamaruki.com/2022/10/29/ue5_python_001/)
– ✅[【python】UnrealEngine5のpythonでpipを使ってみる~Numpyのインストール~【UE5】](https://hamaruki.com/2022/10/29/ue5_python_002/)

### 入出力編
– ✅[【python】UnrealEngine5のPythonでCSVを出力してみる【UE

元記事を表示

Python開発者向けDatabricksのご紹介

[Databricks for Python developers \| Databricks on AWS](https://docs.databricks.com/languages/python.html) [2022/11/3時点]の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

本書では、Python言語を用いたDatabricksにおけるノートブックやジョブの開発に対するガイドを提供します。最初のサブセクションでは、一般的なワークフローやタスクに関するチュートリアルへのリンクを提供します。二つ目のサブセクションでは、API、ライブラリ、キーとなるツールへのリンクを提供します。

スタートする際の基本的なワークフローは以下となります。

– [コードのインポート](#ノートブックとdatabricks-reposによるコード管理): ファイルやGitリポジトリからご自身のコードをインポートするか、以下に示すチュートリアルをトライします。インタラクティブなDatabricksノ

元記事を表示

【試行錯誤】「〇〇で歌ってみた」動画の自動生成 その2:MusicXMLから歌詞の発話タイミングを取得

# 概要
替え歌字幕動画の生成に向けて、その1に続き、MusicXMLの内容を読み取る試行錯誤をしています。今回は歌詞の発話タイミングを取得してみます。

シリーズ一覧:
[【試行錯誤】「〇〇で歌ってみた」動画の自動生成 リンクまとめ](https://qiita.com/shimajiroxyz/items/5df23a0ca81a3a2d9568)

# 背景
「〇〇で歌ってみた」と呼ばれるジャンルの替え歌動画の自動生成に挑戦しています。
最終的に作りたい動画は、元歌詞、替え歌歌詞、替え歌歌詞と対応する適当な画像を、音楽に合わせて表示する静止画のつなぎ合わせのような動画です。

例えば下記動画のようなイメージです(ときどきあるアニメーションや右下の都道府県画像の更新などは再現しない予定ですが)
[[駅名替え歌] 駅名で「うっせぇわ」](https://www.youtube.com/watch?v=zd5M_tn-O5I)

これをするためには歌詞を表示するタイミング(タイムスタンプ)を知る必要があります。歌詞の発生タイミングは歌声合成システムに入力するMusicXMLに記述されて

元記事を表示

入茶しました[AtCoder]

入茶しました

Ffrc36GakAE62N9.png

 うれし~

自己紹介

 ラーメンと申します。
 普段は情報系の専門学校でパソコンをカタカタしています。
 ゲームしてアニメ見てたら成人してました。

私とAtCoderとPython

AtCoderとの出会い

 私がAtCoderに出会ったのは高校3年生の冬でした。
 授業で出されるプログラミングの課題を解くのが好きで、なんかもっと問題ないかなーってググってた時に出会いました。
 一目惚れでした。

初めてのコンテスト

 私は当時、学校でJavaを習っていたのでコンテストもJavaで行けるやろ!と気楽にAtCoder Beginner

元記事を表示

Waifu DiffusionのOpen in Colabが動かない場合の対処方法

以下のOpen in Colabが動かない場合の対処方法。

https://huggingface.co/hakurei/waifu-diffusion

# ImportError: Please install the \`accelerate\` library to use Diffusers with PyTorch. You can do so by running \`pip install diffusers[torch]\`. Or if torch is already installed, you can run \`pip install accelerate\`.

0.7.0でaccelerateが必要になった模様。

https://github.com/huggingface/diffusers/releases/tag/v0.7.0

なので、エラーメッセージのとおり `diffusers` を

“`
!pip install transformers gradio scipy ftfy “ipywidgets>=7,<8" datasets d

元記事を表示

スクレイピングをcronで定期的に実行

## やりたいこと
– 【[こちらから](https://qiita.com/kawagoe6884/items/940d87d9a0b7d919f1dd)】無料枠でGCEを起動したい
– 【[こちらから](https://qiita.com/kawagoe6884/items/940d87d9a0b7d919f1dd)】SSHの22番ポートを3333番ポートに変更したい
– 【[こちらから](https://qiita.com/kawagoe6884/items/709826bcb1d84957e88f)】GCE(仮想マシン) 内の Python(Ubuntu) でSeleniumを使ったスクレイピング
– 【[こちらから](https://qiita.com/kawagoe6884/items/709826bcb1d84957e88f)】取得したファイルをGoogle Driveにアップロード
– 【このページ】スクレイピングを cron で定期的に実行する
– 【このページ】指定の時間にインスタンスをオン/オフする

## 全体図
![cloud.jpg](https://qi

元記事を表示

OTHERカテゴリの最新記事