Python関連のことを調べてみた2023年01月20日

Python関連のことを調べてみた2023年01月20日
目次

[UE5]c++でコマンドプロンプトを呼び出し、Pythonの実行

# はじめに
[以前の記事](https://qiita.com/k-o233/items/dad8e5a9dd4d0398a1ab)でPythonを実行する方法を書きましたが、
この機能は実験的機能なので、ゲームをパッケージ化したら、うまく使用できません。
本記事でコマンドプロンプトを呼び出し、Pythonを実行する方法を紹介します。
>Unreal Engineドキュメント:Python を使用したエディタのスクリプティング
https://docs.unrealengine.com/5.0/ja/scripting-the-unreal-editor-using-python/

この方法は、C++で関数(BlueprintFunctionLibrary)を書いて、ブループリントで関数ノードを使用する方法です。

## 準備
Unreal EngineとVisual Studioをインストールします。
セットアップは下記のURLを参考にしてください。

https://docs.unrealengine.com/4.27/ja/ProductionPipelines/Deve

元記事を表示

Pythonで次元削除後の散布図に楕円を描く

## 背景
分類データを扱う際、PCAやNMDSで次元削除した後、matplotlib/seabornで散布図を書くのですが、
「分類ごとに楕円を描いてほしい」と思ったが、なかなか見つからなかったので、メモです。

## ドキュメント
https://matplotlib.org/stable/gallery/statistics/confidence_ellipse.html

## コード

“`python
# ライブラリのインポート
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
import matplotlib.transforms as transforms

# 楕円を描く関数
# https://github.com/matplotlib/matplotlib/blob/main/examples/statistics/confidence_ellipse.py
def confidence_ellipse(x, y, ax, n_

元記事を表示

推薦システムにおける人気度バイアスを後処理的なアプローチで制御する手法xQuADの論文を読んだ

はじめに, 本記事は論文読み会で発表した内容になります.

# Managing Popularity Bias in Recommender Systems with Personalized Re-ranking

published date: 12 August 2019,
authors: Himan Abdollahpouri, Robin Burke, Bamshad Mobasher
url: https://arxiv.org/pdf/1901.07555.pdf
(勉強会発表者: morinota)

## どんなもの?

– 多くの推薦システムでは、人気のアイテム(=”short-head”なアイテム)は頻繁に推薦され、人気のないニッチなアイテム(“long-tail”なアイテム)はほとんどor全く推薦されないという、Popularity Bias(人気度バイアス)に悩まされている.
– もちろん人気アイテムを推薦する事が良いユーザ体験をもたらすケースもあるが、**新しいアイテムの発見を促進せず、ニッチな嗜好を持つユーザーの興味を無視する**事になる.

元記事を表示

【最速】選択文字列を英訳し置換するショートカットキーを作った

# まずはこちらをご覧ください。
![example.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1790537/8826f0f8-144e-07ac-eee4-896d0a72bf04.gif)
GIFに変換した際に余計に速くなってしまっているが、とにかく速いのは伝わると思う。

### *『多分これが一番早いと思います』*

これで変数の命名に迷わなくなるね!

精度はGoogle翻訳に依存しているのでDeepLには劣る。こだわりがあればGoogle翻訳 APIをDeepL APIに置き換えてみてください。

# セットアップ
Automator.appを開く
![スクリーンショット 2023-01-20 4.14.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1790537/93263c9d-27c5-6b6d-8293-99bd4312d5c4.png)

ライブラリ > ユーティリティ > シェルスクリ

元記事を表示

和牛子牛セリ価格の予測モデルの構築

# 1. 自己紹介
現在、主に牛を対象とする家畜診療獣医師をしています。
今回、プログラミングスクールに通い、Pythonについて学ぶことができたので成果物を一つここに残したいと思います。
初めて成果物を一から作成したので、改善点等あれば遠慮なくコメントいただければ嬉しいです!

# 2. はじめに
皆さんは普段口にする牛肉がどのような血統なのか、どんな大きさまで育った牛だったのかということを考えたことはありますか?
おそらく、多くの方がそのようなことを考えたことはないと思います。
しかし、和牛農家さんにとっては、いかに良い牛を育てるのかが重要になってきます。
なにせそれがセリ価格に反映され、生活に直結しますからね。

今回は、普段の診療業務ではなく、セリ市場の情報を分析して農家さんにそれを還元することで、農場経営の発展につなげてもらいたいと考え、セリ価格の予測モデル作成に取り組むこととしました。

# 3. 概要
和牛農家は、繁殖農家と肥育農家に大別されます。
あまり知られていませんが、一般に、和牛は繁殖農家で産み育てられ、10ヶ月齢前後で市場でセリにかけられます。(ちなみに、雄

元記事を表示

Pythonで2本の円柱周りの磁界(アンペールの法則)を可視化する

# 今回の目的
今回は皆さんが、高校物理、大学電磁気学で学習するアンペールの法則を用いた磁界の様子を`Python`と`Matplotlib`を用いて可視化したいと思います。使用する式自体はとてもシンプルな公式のみを使うことになりますので電磁気を怖がらずに見てください。

プログラムを切り取って解説していますが、全体をまとめたものは一番最後の`プログラム全体`にあるので、そちらをコピペして遊んでみてから読んでもいいかもしれないです!

## 出力結果
先に出力結果を示します。左が磁界の強さを高低差で表した図で、右が円柱回りの磁界の大きさと方向を色と矢印で表した結果になります。
少し工夫をしてマウスでなぞると片方の円柱を動かせるようにもしました。

元記事を表示

ChatGPTがアクセスできなかったので、PythonでGPT3.0のAPIを呼び出して使ってみて十分だった話。

# 概要
ChatGPTは現在人気沸騰中で、時々アクセスが集中していて使えないことがあります。GPT3も十分な精度のチャットボットを実現できるし、製品に組み込みやすいAPIが2023/1月現在も提供されているので、この記事では使い方を画面キャプチャつきで解説します。

# 目次
– [申請](#申請)
– [プログラム開発](#プログラム開発)
– [おわりに](#おわりに)
– [関連講座](#関連講座)
– [参考記事](#参考記事)

# 申請

以下を参考にGMAILアカウント作っておく
https://support.google.com/mail/answer/56256?hl=ja

以下URLへアクセス
https://beta.openai.com/account/api-keys

Sign upをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/d1de06fd-9609-a45e-f2af-8833394ec102.png)

元記事を表示

Pythonで考える少子高齢化と詐欺グラフ

## はじめに

少子高齢化が問題とされはや数十年が過ぎようとしていますが、なんとなく**ヤバい**とは思うけれどもそれがどの程度**ヤバい**のかがピンとこないです。

そこで、以前からツイッターで見かける**動くグラフ**を活用して、少子高齢化を可視化するグラフを描いてみようと思い立ちまして起稿しました。

さらっと動くグラフを作るには [Flourish](https://flourish.studio/) で作れるようですが、エンジニアとしてはプログラムで作るべきだろうということで Python で作ることにしました。

ところが、Pythonが優秀すぎて**関数を2つを呼べば動くグラフができてしまった**のであまりプログラマ感はなかったです。ただし、データからうまくグラフに使えるデータを抽出する点ではエンジニアやコンサル感はあったかもしれません。

## 人口ピラミッドのデータを入手

国立社会保障・人口問題研究所[人口ピラミッド](https://www.ipss.go.jp/site-ad/TopPageData/PopPyramid2017_J.html)のページを見

元記事を表示

【FastAPI】Failed to execute ‘fetch’ on ‘Window’ / String contains non ISO-8859-1 code point. エラーの原因と解決方法

# エラー内容
* FastAPIを使ってAPIのリクエスト・レスポンスのテストをしていたら、以下のエラーメッセージが返ってきた。

“`
TypeError: Failed to execute ‘fetch’ on ‘Window’: Failed to read the ‘headers’ property from ‘RequestInit’: String contains non ISO-8859-1 code point.
“`

* FastAPIとは:PythonでRESTful APIを開発するためのWebフレームワーク

# 原因
* リクエストヘッダーの中に`non ISO-8859-1 code point`、つまり日本語が入っていた。
* ISO 8859-1とは、ラテンアルファベットの文字コード標準。西欧系の言語なので、日本語には対応していない。
*ISO 8859-1の詳細についてはこちら: [ISO/IEC 8859【ISO 8859】ISO 8859-1
](https://e-words.jp/w/ISO-IEC_8859.html)

元記事を表示

pip uninstall 失敗した時(scikit-learn)

・ライブラリのインストール先を確認(Location)

“`
$ pip show scikit-learn
Name: scikit-learn
Version: 1.1.0
Summary: A set of python modules for machine learning and data mining
Home-page: http://scikit-learn.org
Author:
Author-email:
License: new BSD
Location: /Users/sou/opt/anaconda3/lib/python3.8/site-packages
Requires: joblib, numpy, scipy, threadpoolctl
Required-by:
“`

・ライブラリ確認(scikit-learn)

“`
$ ls | grep scikit
scikit_learn-0.23.2.dist-info
“`

・ライブラリ消去
“`
$ sudo rm -rf scikit_learn-0.23.2.dist-

元記事を表示

サンプリングアルゴリズム – 棄却サンプリング

サンプリングアルゴリズムについていくつか紹介していく. 第二回目は **棄却サンプリング** について.

確率密度関数$p(x)$に基づく乱数を生成したいが, python 上で実装されていない状況を考える. さらに次のような前提条件を設定する.
**前提条件:**
– 確率密度関数は $p(x) = \frac{1}{Z_{p}}f(x)$ であり, $f(x)$すぐに計算できるが規格化定数$Z$がわかっていない.
– 確率密度関数$q(x)$からのサンプリングが可能である.

棄却サンプリングはこのような状況において $p(x)$からのサンプリングを行い規格化定数を求める方法である.
**用語整理:**
– $f(x)$: 目的関数
– $p(x)$: 目的分布
– $q(x)$: 提案分布
– $Z$: 規格化定数, 分配関数

棄却サンプリングにおけるアルゴリズムは次のとおり:
**手順:**
1. 任意の $x$ に対して $f(x)\leq Mq(x)$ を満たす$M$を求める
1. 提案分布 $x \sim q(z)$ に従う乱数を生成
1. $[0, M

元記事を表示

python .globの使い方

# ディレクトリ構成
dirname
┣1.txt
┣2.txt
┗3.dat
# とりあえず使ってみる
“`python
import glob
import os
file = glob.glob(‘dirname/*.txt’)
print(file)
#[‘dirname\\1.txt’, ‘dirname\\2.txt’]
“`
# フォルダ名とファイル名を分けて取得
“`python
print(os.path.split(file[0]))
#(‘dirname’, ‘1.txt’)

print(os.path.split(file[0])[1])
#1.txt

print(os.path.split(file[1]))
#(‘dirname’, ‘2.txt’)
“`
# for inで特定の拡張子のファイル名だけ出力
“`python
for n in glob.glob(‘dirname/*.txt’):
print(os.path.split(n)[1])
#1.txt
#2.txt
for n in glob.glob(‘dirname/*

元記事を表示

エンジニア向けのニュースアプリを作った【個人開発】

## 要約
– エンジニア向けのニュースアプリをFlutterで作った。
– 毎日Zenn、Qiita、noteやそのほか海外のテックメディアを開くのが面倒。
– RSSフィードで登録していくのもいいが面倒だし、時に不要な情報もある。
– 個人に最適化されたニュースを提供し、エンジニアの日々の情報収集を効率化させることを目的とした個人開発アプリを作ることにした。
– スマホアプリ開発言語はFlutter,バックエンド言語はPython、インフラはGCPのCloud FunctionsとFirebaseを利用。

## 背景と課題
わたしたちエンジニアは毎日チェックすべき情報が多すぎる。毎日Zenn、Qiita、noteやそのほか海外のテックメディアをひらいて、不要な情報の中で自分に関連するような情報を見つけて確認する作業をしているとあっという間に1時間が経過してしまう。おそらく、わたしたちが重要な記事に辿り着いて読んでいる時間は全体の6割程度だということに気づいた。ゆえに効率的に日々の最新のトレンドを押さえることは非常に重要だ。

## 目的
エンジニア向けのニュースアプリは意外と少な

元記事を表示

【備忘録】torch.Tensorの保存とロード

“`python
import torch

tensor = torch.rand(3)
path = “./mytensor.pt”
torch.save(tensor, path)
loaded_tensor = torch.load(path)

print(tensor == loaded_tensor)
# tensor([True, True, True])
“`

元記事を表示

【備忘録】torch.Tensorが入ったlistを二次元のTensorに変換

“`python
import torch

tensor_list = []
for i in range(3):
tensor_list.append(torch.rand(3))
print(tensor_list)
# [tensor([0.4824, 0.2966, 0.3177]), tensor([0.5601, 0.0189, 0.4304]), tensor([0.9667, 0.4388, 0.2032])]

tensor_list = torch.stack(tensor_list, dim=0) # これ

print(tensor_list)
# tensor([[0.4824, 0.2966, 0.3177],
# [0.5601, 0.0189, 0.4304],
# [0.9667, 0.4388, 0.2032]])
“`

元記事を表示

【備忘録】 日本語の文章を事前学習済Bertで特徴量にembeddingする (Colab環境2022/01/19)

Colab環境
“`
!pip install transformers
!pip install fugashi
!pip install ipadic
!pip install tqdm
“`
“`python
import torch
from transformers import AutoModel, AutoTokenizer
import tqdm

bertjapanese = AutoModel.from_pretrained(“cl-tohoku/bert-base-japanese”)
tokenizer = AutoTokenizer.from_pretrained(“cl-tohoku/bert-base-japanese”)
device = “cuda” if torch.cuda.is_available() else “cpu”

bertjapanese.to(device)
features = []

for i, text in enumerate(tqdm(texts)):
input_ids = tokenizer.encod

元記事を表示

CNN(畳み込みニューラルネットワーク)とは?

こんにちは、すきにーです。

今日はCNNについて書こうと思います。

①CNNとは
CNNとは「convolutional nearal network」の略であり、
日本語にすると「畳み込みニューラルネットワーク」と訳されます。
画像認識の分野でよく使われるニューラルネットワークです。

畳み込みニューラルネットワークときいて、
「畳み込みとは何ぞや?」と思いますよね。

もうちょっとで説明しますね。
先にCNNの構造を説明します。

②CNNの構造
CNNは主に3つの層構造で構成されています。

・畳み込み層
・プーリング層
・全結合層

です。
これらが合わさることで、画像を認識できるようになるんです。
すごいですよね。

③畳み込み層の役割
畳み込み層の役割は、一言でいえば「畳み込む対象の特徴を抽出すること」です。
フィルター(カーネル)を使って、画像とフィルターの値を掛け合わせます。
そうすることで特徴が抽出されます。
(特徴が抽出される仕組みまで書きたいんですけど、うまく言葉にかけないですね。
アウトプットって難しい)

④プーリング層の役割
プーリング層の役割は「重要な

元記事を表示

if you encounter ‘parser ModuleNotFoundError’ when running NFStest on Jammy

## 問題 ##

[Ubuntu 22.04](https://releases.ubuntu.com/22.04/)で[NFStest-3.0](https://linux-nfs.org/wiki/index.php/NFStest)を動作させようとすると以下のエラーメッセージで実行できず。

“`
vagrant@ubuntu-jammy:~/NFStest-3.0/test$ ./nfstest_posix -h
Traceback (most recent call last): File
“/home/vagrant/NFStest-3.0/test/./nfstest_posix”, line 27, in from nfstest.test_util import TestUtil File
“/home/vagrant/NFStest-3.0/nfstest/test_util.py”, line 60, in from nfstest.nfs_util import NFSUtil File
“/home/vagrant/

元記事を表示

BitbucketからHerokuへ自動デプロイ

Herokuさんは有料化してしまいましたが課金してずっとお世話になっております。

HerokuにはGithubにプッシュすると自動でデプロイされる機能が備わっています。
ローカルからはHeroku Gitを使ってデプロイされることも多いでしょう。

今回「Git管理はBitbucketでオネシャス」というお達しがありました。

私はBitbucket使ったことがありません。

Herokuにデプロイできるのかな?と思いましたが
「Bitbucket Heroku デプロイ」でGoogle検索

https://support.atlassian.com/ja/bitbucket-cloud/docs/deploy-to-heroku/

Bitbucketサポートのヘルプ記事が出てきたのでまぁどうにかなるやろと

「Bitbucket承知ナリ~~」と返事をしていました。

その後頭を抱えることとなりました/(^o^)\

# HerokuでAPIトークンを発行
ローカルにHeroku CLIをインストールしてログイン
そしてこのコマンドを実行します。

“`
$ heroku

元記事を表示

ABC285 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder

ABC285(AtCoder Beginner Contest 285) A~D問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。

その他のABC解説、動画などは以下です。

更新時はツイッターにて通知します。

https://qiita.com/sano192/items/54accd04df62242b70f0

# A Dif:11

https://atcoder.jp/contests/abc285/tasks/abc285_a

図をよく見ると
1と2,3
3と6,7
5と10,11
というように2倍と2倍+1の頂点がつながっているということがわかります。
a

元記事を表示

OTHERカテゴリの最新記事