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

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

SPSS Modelerのデータ検査ノード(目的変数がカテゴリ型)をPythonで書き換える。

SPSS Modelerのデータ検査ノードをPythonで書き換えます。データの傾向が一覧でつかめるのでとても人気のあるノードです。目的変数がカテゴリ型が連続型かによって動きが異なるところがありますが、今回は目的変数がカテゴリ型である場合の書き換えを行います。

#0.データ

目的変数
Risk:信用リスク

説明変数
Age:年齢
Income:収入ランク
Credit_cards:クレジットカード枚数
Education:学歴
Car_loans:車のローン数

年齢や収入ランクから信用リスクを判定する2値分類のモデルを評価します。

#1m.①データ検査 Modeler版
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/99be9888-636c-303e-ac39-72d4435c328e.png)
まず、CSVの読み込み時にカテゴリ型のデータを文字列で読み込みます。これはデータに意図的に欠損値や空白データを混入させているためです。Car_loans、Cred

元記事を表示

flask run が上手くできない場合の対処法

Python Flaskにてflask runでプレビュー画面を表示しようとした際、一部ターミナルでは機能しない場合があります。
ちなみに自分の場合はpowershellにて問題が起こりました。

(例)Dcument

flask run

(結果)
+ CategoryInfo : ObjectNotFound: (flask:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

(原因)
恐らくPathが通っていないことが原因でコマンドとして認識されていないと思われます。

(解決)
1,Pathを通す。
システム環境変数の設定にて設定しなおしてください。

2,pythonコマンドを使う。
pythonのversionを指定して、そこからflask runを割り当てます。

(書き方)
python3 -m flask run
 

元記事を表示

Progateの学習を終えたプログラム初心者が【テトリス】を作ってみた

Progateの学習を終えて、Pythonの理解を深めるためにテトリスをつくってみました。
アウトプットで書き留めようと思います。

プログラム初学者で初めて組んだプログラムです。
分からなかったところは参考サイトを参考に自分なりに書きました。
どうしても書けなかったところは、参考サイトを参考に自分なりに考えながら模写しています汗。

#参考にさせてもらったサイト一覧
[だえうホームページ](https://daeudaeu.com/)
[SAMURAIENGINEER](https://www.sejuku.net/blog/category/programming-language/python/python-study)
[TKinterによる簡単なGUI](https://oku.edu.mie-u.ac.jp/~okumura/python/tkinter.html)
[kusakarism](https://kusakarism.info/category/programming/python/)

#環境
・python: 3.10.1

#####使用したライブラリ

元記事を表示

【画像処理】Numpyでハフ変換による直線検出

Numpyでハフ変換による直線検出を実装してみます。

直線を検出する画像を読み込みます。

“`python
import numpy as np
import matplotlib.pyplot as plt

original_image = plt.imread(image_name)
if np.issubdtype(original_image.dtype, np.integer):
original_image = original_image / np.iinfo(original_image.dtype).max
gray_image = 0.2116 * original_image[:,:,0] + 0.7152 * original_image[:,:,1] + 0.0722 * original_image[:,:,2]
plt.imshow(gray_image, cmap=’gray’)
“`

![GrayImage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

元記事を表示

django_restframeworkでjwtトークン認証を実装したAPIをvueからaxiosで叩く

# 目的
django_restframeworkで実装したAPIをvueからaxiosで叩くことはしたが、実務のようにJWTを利用したトークン認証を行う

# 実施環境
### ハードウェア環境
| 項目 | 情報 |
|:-:|:-:|
| OS |macOS Catalina(10.15.7) |
|ハードウェア | MacBook Air (11-inch, Early 2015) |
|プロセッサ | 1.6 GHz デュアルコアIntel Core i5|
|メモリ | 4 GB 1600 MHz DDR3 |
|グラフィックス | intel HD Graphics 6000 1536 MB |
### ソフトウェア環境
| 項目 | 情報 |
|:-:|:-:|
| homebrew | 3.3.8 |
| mysql | Ver 8.0.27 for macos10.15 on x86_64 |
| @vue/cli | 4.5.15 |
| vue | 2.6.14 |

# 前提
今回の記事はこれまでの[【django/vue

元記事を表示

Pythonでアナグラムを判別するプログラムの作成

# アナグラムとは
>〘名〙 (anagram) ことばのつづりを換えることによる遊び。単語をばらばらに崩し、全く別の単語を作る。LIVE が EVIL に、TIME が EMIT にの類。
出典: 精選版 日本国語大辞典

例えば、evilとlive, eatとteaなどがアナグラムの例として挙げられます。

# 与えられた配列からアナグラムをグループ分けする

いくつかの単語が格納されたリスト(strs)からアナグラムとなっている単語のグループを返す関数を作ります。

“`Python
def groupingAnagram(strs):
hashMap = {} #ハッシュマップを作成

for s in strs:
key =”.join(sorted(s)) # 文字列をアルファベット順にソートする
if key not in hashMap.keys():
hashMap[key] = [s] # ハッシュマップにキーを作成
e

元記事を表示

ツイキャスAPIv2でデータ収集

# これは?
データ収集用の目的でツイキャスAPI v2を呼ぶ方法、[ドキュメント](https://apiv2-doc.twitcasting.t)で言う所の`アプリケーション単位でのAPI実行`。`ユーザ単位でのAPI実行`(Webアプリ、クライアントアプリ等)は対象外。

# アプリケーション登録
[開発者向けページ(要ログイン)](https://twitcasting.tv/developer.php)からCreate New Appして`ClientID`と`ClientSecret`をメモしておく。審査は無いので気が楽。

# 呼び出し例
[Get User Info](https://apiv2-doc.twitcasting.tv/#get-user-info)を呼ぶ。ヘッダーに[指定された](https://apiv2-doc.twitcasting.tv/#request-formats)ものを追加すればOK。

“`python
import requests

client_id = ‘xxxx.yyy…’
client_secret = ‘zzz’

元記事を表示

【Jython】AutoCloseable / Closeable 実装オブジェクトに with 文を使うには

# `try-with-resource`文と`with`文
Java には`try-with-resource`文があり、これを、[インターフェース`AutoCloseable`](https://docs.oracle.com/javase/jp/10/docs/api/java/lang/AutoCloseable.html)又は[インタフェース`Closeable`](https://docs.oracle.com/javase/jp/10/docs/api/java/io/Closeable.html)を実装したクラスをインスタンス化したオブジェクト(以下、`AutoCloseable`/` Closeable`実装オブジェクト)が使用すると、ブロック終了時又は例外発生時に於いて、自動的にそのオブジェクトの`close()`メソッドが呼び出され、クローズ処理が為される。

次に示すJavaソースコードファイル`Main.java`には、2 つの`try-with-resource`文があり、変数`bw`及び変数`br`に、`AutoCloseable`/` Closeable

元記事を表示

OpenCVで取得した画素値を、既存のfloat型DataFrameに.iloc結合すると値が変わった

#発生した問題
‘numpy.float64’型DataFrame(下記のx, y, z)にOpenCVで取得した画素値(r, g, b)をilocで結合したところ、一部異なる値が記録されました。

“`:間違った値
x y z r g b
0 0.481850 0.361779 -0.037970 -72 126 124
1 0.458742 0.330488 -0.088316 -72 -112 119
2 0.466888 0.337605 -0.040462 -78 -120 114
3 0.423848 0.292867 -0.072854 -93 94 78
4 0.451685 0.319499 -0.096578 -60 -99 -114
.. … … … .. … …
463 0.465720 0.238455 -0.005005 -70 -122 112
464 0

元記事を表示

tensorflow-datasets の celeb_a が読めない件

# 概要
[[第3版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践](https://www.amazon.co.jp/dp/B08LYWFPQ9)の15章のサンプルプログラムに従って tensorflow-datasets パッケージに入っている [celeb_a](https://www.tensorflow.org/datasets/catalog/celeb_a) データセットを読もうとするとエラーが出ます。

“`python
import tensorflow as tf
import tensorflow_datasets as tfds

celeba_bldr = tfds.builder(‘celeb_a’)
celeba_bldr.download_and_prepare()
celeba = celeba_bldr.as_dataset(shuffle_files=False)
“`

“`:結果
NonMatchingChecksumError: Artifact https://drive.google.com/uc?

元記事を表示

デッキ画像から駒名称を抜き出す【テンプレートマッチング編】

# はじめに
こんにちは。逆転オセロニアのYouTubeチャンネル「まこちゃんねる」の中の人です。
本稿では、**デッキ画像から駒名称を抜き出すこと**を目標にします。
抜き出す方法はいくつか存在すると思いますが、今回は**テンプレートマッチング**を使った方法を利用してみます。
ファイル名

# モチベーション
リスナーさん**「デッキに入ってる駒名称が分からない!教えて!」**
まこちゃん(うーん…毎回手動で書くの面倒くさいな…ある程度自動化したさ)

# テンプレートマッチングとは?
**入力画像(今回であればデッキ画像)からテンプレート画像に類似する箇所を探索する手法**です。類似度と座標を取得することができます。ただし、回転や拡縮に弱く処理も遅いのが欠点です。

元記事を表示

小ネタ/GitHub Actions の Python 環境で MeCab + NEologd を使う

こちら↓の Q&A サイトで関連する質問の抽出を実装する際に、GitHub Actions(Python)で MeCab + NEologd を使ったので、メモ的に残しておきます。

https://vaccinecert-faq.code4japan.org/

– **[ワクチン接種証明書アプリ FAQ](https://vaccinecert-faq.code4japan.org/)**

**参考:**

– **[DockerでPython公式イメージ + MeCab + NEologd辞書](https://qiita.com/Takayoshi_Makabe/items/18cefa4b4572d12b5aa9)(Takayoshi_Makabe さん)**

# ポイント

GitHub Actions で使用する`.yml`ファイルを記述する際、

– `cd`が使えないので代わりに`working-directory`を指定する
– `/etc/mecabrc`に上書きしようとすると権限エラーが出るので、別の場所に書き出しておいた`mecabrc `を`/us

元記事を表示

Pythonのenumでネストした (枝分かれした) 状態を管理

# 概要

以前「**[LINE公式垢でボットとチャット両立させてみた!](https://qiita.com/tacomeet/items/a3945d3321ab104a72e2)**」という記事を書いた際は、下記のように`enum.Enum`を用いて、現在の会話の状態を管理していました。

“`python

class Type(Enum):
BN_CREATE = auto()
BN_CREATE_TRACK1 = auto()
BN_CREATE_TRACK2 = auto()
BN_CREATE_TRACK3 = auto()
BN_CREATE_TRACK5 = auto()

“`

本来、`BN_CREATE_TRACK*`は`BN_CREATE`から枝分かれした状態を表現したいのですが、それが出来ず、並列的に状態が管理されてしまっています。このネストした状態をPythonの `enum.IntFlag` ( `enum.Flag` )を用いて、表現したという記事です。

ネストした(枝分かれした)状態のイメ

元記事を表示

VOICEVOX EngineのCPU/GPU速度比較

## はじめに

[ヒホさん](https://twitter.com/hiho_karuta)の[VOICEVOX Engine](https://github.com/VOICEVOX/voicevox_engine)を利用してあれこれ遊んでいます。VOICEVOXは[こちら](https://voicevox.hiroshiba.jp/)。

自分は普段mac miniを使っているのでdocker CPU版を使用しています。古いWindows 10機もあるので今回速度比較を行ってみました。「最近のPCじゃないのか…」と思われた方、すみません。

## コード

コード中の`(音声合成を行う文章)`は、下記の青空文庫・若草物語の最初の部分「作者について」を使用しました。文面で言えば`この「若草物語」(原名リツル、ウィメ

元記事を表示

BERTの事前学習 Next sentence prediction の実装

“`python
from transformers import BertForNextSentencePrediction

nsp_bert = BertForNextSentencePrediction.from_pretrained(‘cl-tohoku/bert-base-japanese-whole-word-masking’)
nsp_bert.eval()
“`
“`python
prompt = ‘私の家族は5人家族です。’
next_sentence = ‘家族は、父、母、兄、私、妹です。’

input_tensor = bert_tokenizer(prompt, next_sentence, return_tensors=’pt’)
print(input_tensor)
“`
{‘input_ids’: tensor([[ 2, 1325, 5, 2283, 9, 76, 53, 2283, 2992, 8, 3, 2283,
9, 6, 800, 6, 968,

元記事を表示

Sublime Text 自作Plugin Scripts API TIPS 個人用メモ

## 選択範囲が無い場合、行を取得する。
“` py
for region in self.view.sel():
if region.empty():
region = self.view.line(region)
“`

## region
選択範囲を示すregionは、開始地点と終了地点の数字の入ったオブジェクト

“` py
region = sublime.Region(0, 10)##Region自作。0文字目から10文字目
print(region)
##regionの開始地点と終了地点の数字取得
reg1 = str(region.begin())
reg2 = str(region.end())

“`

## 自作誤字脱字選択肢表示機能
いちいちlinterとかインストールするのとか面倒くさいので自分で作りたいとき。

“` py
i=0
##選択範囲を数字で取得
reg1 = str(region.begin())
re

元記事を表示

BERTの事前学習 Mask language modelの実装

##環境の準備

“`Python
!pip install -q transformers==4.9.0
!pip install -q fugashi
!pip install -q ipadic
# 必要なモジュールのインストール
import torch
import transformers
“`
##BERT モデルと Tokenizer の準備

“`Python
from transformers import BertJapaneseTokenizer, BertForMaskedLM
“`
今回は東北大学で開発されたモデルである cl-tohoku/bert-base-japanese-whole-word-masking を使用します。

“`Python
# 分かち書きをするtokenizer
bert_tokenizer = BertJapaneseTokenizer.from_pretrained(‘cl-tohoku/bert-base-japanese-whole-word-masking’)
lm_bert = BertForMaskedLM

元記事を表示

M1 Mac で古いバージョンの numpy をビルドする

# 環境
M1 Macbook Pro (2021)
OS: MacOS X Monterey
Python バージョン: 3.9.9

# 問題

M1 Mac に古いバージョンの numpy をインストールしようとしたところ,事前ビルド済みのバイナリが存在しないためにローカルでビルドが走ったが,エラーメッセージが出てビルドが失敗した.

## 詳細

python で `pip install` を行うと,コンパイルが必要なパッケージに関しては,使用している OS とバージョンに応じて事前にビルドされたバイナリがダウンロードされ,高速にパッケージをインストールできる仕組みになっている.

しかし,事前ビルド済みのバイナリがない場合は,ローカルでビルドが行われる.

今回インストールしたい `numpy==1.19.3` がリリースされたのは2020年10月のことで,M1 Mac がリリースされた2020年11月より前なので,当時存在しなかった OS に対して事前ビルド済みのバイナリは作られていない.

今回は以下のようにコマンドで numpy をインストールしようとしたところ,

元記事を表示

Python: 画像データからサムネイルを作成する

“`python
import imghdr
from io import BytesIO

from PIL import Image

def create_square_thumb(
binary_of_fullimage: bytes,
thumb_size: tuple, # サムネイルのサイズ(x, y)を指定する。 例:(100, 100)
thumb_quality: int, # サムネイルの品質を指定する。↓をご参照
) -> bytes:
“””
画像データのbytesから、指定したサイズと品質でサムネイルを作ってbytesで返す。
[thumb_quality: int]
フィルタ ダウンスケーリング品質 アップスケーリング品質 パフォーマンス
PIL.Image.NEAREST ⭐⭐⭐⭐⭐
PIL.Image.BOX ⭐ ⭐⭐⭐⭐

元記事を表示

scikit-learnやlightgbmなどのONNX形式モデルがブラウザで動作しないとき

# やりたいこと
Pythonで訓練したモデルをONNX形式でブラウザ上(JavaScript)で推論させたい。

# 使用ライブラリ
– Python
– scikit-learn/lightgbm
– onnxmltools
– JavaScript
– onnxruntime-web

# 問題
[JSのサンプルコード](https://github.com/microsoft/onnxruntime-inference-examples/blob/main/js/quick-start_onnxruntime-web-bundler/main.js)通りに書いても`session.run()`部分で`4123988`のようなエラーが出て動かない。

# 解決法
PythonでモデルをONNX形式に変換する際、`zipmap`オプションを無効にしないとブラウザでは動かないらしい。
例えば、LightGBMモデルだとこんな感じ。

“`py
import onnxmltools
onnx_model = onnxmltools.convert_light

元記事を表示

OTHERカテゴリの最新記事