Python3関連のことを調べてみた2021年01月06日

Python3関連のことを調べてみた2021年01月06日

PythonでLifegame。

前書き

あけましておめでとうございます。 大した数を投稿してないですが、今年もよろしくお願いします。 個人的にLifegame的なプログラムをPythonで書きたいなー、とか思っていたので、年末年始で挑戦しました。 「松の明けぬうちにせめて一本記事を」という思いもありますので、ざっくりした説明とコードを投稿します。 従来同様、あちこちのサイトを調べては書き、「我ながらイケてない」と独り言をつぶやいては手直しし、の繰り返しなので、お見苦しい点もありますが、ご容赦くださいませ。

環境

– Windows 10 Pro Build 19042.685 – Python 3.9.1 – matplotlib 3.3.3

概要

– Lifegameの詳細については[こちら](https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B2%E3%83%BC%E3%83%A0)。(Wikipedia) – 今回はmatplotlib.pyplotの[scatter](ht
元記事を表示

DjangoでDateTimeFieldの書式を変換する方法

##Djangoにて取得した日付をフォーマットして表示させたい Djangoのmodels.pyにて datetime.now()でなくtimezone.now()を使用する際、 date = models.DateTimeField(‘日付’,default=timezone.now()) とすると書式は 2020-12-08 21:12:24.333404+00:00 のようになる。 Webアプリケーション上で12/08/20のようにあらわしたいとき date = models.DateTimeField(datetime.now().strftime(‘%m%d%y %H:%M’)) としてしまうと、 ValidationError [u”’12/08/2020′ value has an invalid date format. It must be in YYYY-MM-DD format.”] というエラーが表示される。 ###解決方法 htmlで取得した日付を表示する際に、下記のようにしてフォーマッ
元記事を表示

LightGBMのpredictで予測値への寄与度を出す

# はじめに LightGBMで作ったモデルで予測させるときに、“`predict“`の関数を使っていました。 “`pred = model.predict(data)“` という感じです。 ふと[公式のドキュメント](https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.Booster.html#lightgbm.Booster.predict)を見てみたら、“`predict“`の引数に“`pred_contrib“`というパラメタがあって、SHAPを使った予測への寄与度を出せると書かれてあったので、試してみました。 # 環境 環境は以下の通り。 “`bash $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.6 BuildVersion: 17G14042 “` Jupyterlab (Version 0.35.4) 上で作業していたので、python kernelのバージョンも記載しておきます。 “` Pytho
元記事を表示

発音の類似度の指標としての編集距離を計算する【python】

#概要 日本語文同士の発音の類似度として編集距離を用いる場合に注意したことをまとめました。 またカナ、母音、子音の編集距離を求めるコード例を示しました。 #背景 ダジャレや空耳などの自動生成をするときに文章や単語間の発音類似度を求めたくなることがあります。このときに編集距離を使うことが思いつきます。 編集距離は文字列の類似度の指標として使われる指標であり、ある文字列を1文字ずつ編集(挿入、削除、置換)して別の文字列にするために必要な最小編集回数と定義されます。 日本語ではカナ表記と発音が原則1対1対応するので、カナ表記の編集距離を求めれば、発音がどの程度近いかを知ることができます。 ただし拗音、長音については扱いを気をつける必要があります。具体的には以下の処理が必要です。 * 拗音(シャなど)は発音としては1拍のため、2単位ではなく1単位として扱う。 * 長音(伸ばし棒)は、直前のカナによって(同じ文字でも)発音が異なるので、対応するカナに変換してから編集距離を求める。 また、発音の類似度ということであれば、母音や子音だけに注目した指標を求めたくなることもありそうです。 以上の背
元記事を表示

Spotify APIで曲を解析したい 2

#始めに [前回](https://qiita.com/grinch1252/items/76ca4f03e1d198964eef)の続きです。 アルバム単位のAPI取得、曲の項目などをみていきます。 #アルバム情報の取得 前回取得した任意のアーティストのidを利用します。 “`main.py import spotipy from spotipy.oauth2 import SpotifyClientCredentials client_id = ‘クライアントid’ client_secret = ‘クライアントシークレット’ spotify_client_credentials = spotipy.oauth2.SpotifyClientCredentials(client_id, client_secret) spotify = spotipy.Spotify(client_credentials_manager=spotify_client_credentials) artist_uri = ‘spotify:artist:5PalnqYJTpnO5wt00jf
元記事を表示

Pythonで正規表現

# 使い方 ## モジュールのimport “` import re “` ## 正規表現オブジェクトの生成・マッチング 正規表現オブジェクトを生成してから、マッチングする方法 “` # 生成 cmpObj = re.compile(r’a.c’) # マッチング ret = cmpObj.match(‘abc’) “` 正規表現オブジェクトを生成しなくても、マッチングできる。 しかし、プログラム中で何度も同じ正規表現パターンを使用する場合は、正規表現オブジェクトを生成して使用するほうが効率的に処理できる。 “` # マッチング ret = re.match(r’a.c’, ‘abc’) “` 正規表現パターンに文字列がマッチしている場合には、`match()`の戻り値として、マッチオブジェクトを返却する。 マッチしなかった場合は、Noneが返却される。 `match()`は文字列の先頭がマッチするかを見ているため、以下のような場合はマッチしない “` # これはマッチしない ret = re.match(r’a.c’, ‘babc’) “` 文
元記事を表示

Windows10のローカル環境で、jupyter labを使う方法

# はじめに Windows10 環境に jupyter lab をインストールするのに手こずったため、記録を残しておきます。 jupyter lab のインストール手順を Google や Youtube で調べると、Anaconda をインストール手順がよく出てきます。私もそれに倣って、Anaconda 3 をインストールしました。無事に Anaconda 3 をインストールして、jupyter lab も起動するのですが、いくつか問題点がありました。 – Anaconda Navigator 画面から、jupyter lab を Lunch して起動する手順が面倒で嫌だった。 – jupyter lab の拡張機能のインストールができない(jupyter lab が壊れる?) 何度やっても上手くいかなかったので、この方法は諦めました。 そもそも jupyer lab が使いたいのであって、Anaconda 3 はいらないので、jupyter lab だけインストールする手順を再調査しました。 # jupyter lab のインストールと起動 とても簡単に完了しました。 以下
元記事を表示

dotenvの使い方

#はじめに 今回`dotenv`を使用したので忘れないようにメモとして残しておきます。 #dotenvとは dotenvを使用することにより、DBのパスワードやあまり見られたくない情報を`.env`に設定し、`settings.py` を経由して読み込むことができます。デプロイする際には、この`.env`はアップロードしません。環境変数を見せずにGitHubにファイルをアップロードできます。 **インストール方法** “` $ pip install python-dotenv “` **.envファイルの作成** このファイルに環境変数を書き込みます。`.env`ファイルは`.gitignore`の対象にして下さい。 “` USER=”username” PASSWORD = “password” “` **settings.pyの作成** “`.py import os from os.path import join, dirname from dotenv import load_dotenv load_dotenv(verbose=True
元記事を表示

LightGBM/XGBoostのtree構造可視化メモ

# はじめに LightGBMとXGboostのtree構造を可視化したいと思いdtreevizとplot_treeを試したときの備忘録。 # 環境 実行した環境は以下の通り。 “`bash $sw_vers ProductName: Mac OS X ProductVersion: 10.13.6 BuildVersion: 17G14042 “` Jupyter Notebookを使用しました。 “` The version of the notebook server is: 5.7.8 The server is running on this version of Python: Python 3.7.3 (default, Mar 27 2019, 16:54:48) [Clang 4.0.1 (tags/RELEASE_401/final)] “` # モデル構築 tree構造の可視化が目的なので、データはscikit-learnのbostonデータセットを使用しました。 506行13列のデータで、すべてNullがなくfloat型なので、特徴
元記事を表示

自作言語でHeloWorldしてみる(How to & コード付き)

# 自作言語のお時間です。 どうも、もっと冬休みを伸ばしてほしいdangomushiです。 ## またまたまたまた作りました。(仮想機械言語の説明) 何回作るんでしょう。何回このくだりやるんでしょう。 それはさておき、また作りました。今回は、前回の反省を生かして、実行速度を速めてみました。具体的には、VMの仮想言語の設計に力を入れた感じです。ちなみに、ほかのバイトコード等と区別するため、自分ではこの言語を「lasバイトコード」とか言ってます。 名前をラピスラズリ(lapis lazuli)といいます。拡張子は「~.la」なんでかは、、文法とか昨今の自作言語の名前つけブームから察してください、、、。一説には、筆者の誕生石とも関係があるとか、、、。 あと、またもや12/30~1/4までの五日間で仕上げましたので、コードがスパゲッティを通り越して糸こんにゃく状態です(個人的な裏話ですが、他人に発表できるような言語を何日で自作できるかの挑戦でもあったためです。筆者は中学生のため、きれいさ等は大目に見ていただけると幸いです)。 時間があれば、次の記事でプログラム本体の説明もしたいと思ってい
元記事を表示

Spotify APIで曲を解析したい 1

#始めに たまには自分の趣味と絡めたプログラミングをやってみたいと思い、今回はspotify APIを使ってアーティストと曲情報の抽出をしてみました。PythonでAPIを叩くのは初めてでしたが、あっさりと出来たのでメモとして残します。 [次回](https://qiita.com/grinch1252/items/2903482772043745db26) #登録 Spotifyのアカウントを作成した後に[Spotify for developer](https://beta.developer.spotify.com/dashboard/)でアプリケーション登録をします。 ダッシュボード→Create an app→nameとdescriptionの記述→作成で完了です。 Client IDとClient Secretはあとで使うのでメモしておきます。 #APIを呼び出す 今回はPythonでAPIを呼び出したいと思いますので、spotipyをインストールします。 “` $ pip install spotipy “` 次に[spotipyの公式リファレンス]
元記事を表示

分類木の動作確認用サンプルデータセットを生成するpythonスクリプト

# やりたいこと * 機械学習で使うダミーのデータセット(顧客リストのサンプル)を作成したい。 * 顧客リストはCSVファイルに出力したい。 * 顧客リストの特徴を任意に設定したい。 * 顧客リストの特徴とは「年配の男性会社役員が買っている」「関西の既婚女性が買っている」といったデータの傾向。 * そのためのスクリプトをpythonで実装したい。 # 生成したデータセットの利用例 決定木(分類木)を実装して、そのモデルがデータセットを正しく分類できるか? を確かめたい場合、モデルに読み込ませるCSVファイルとして利用する。 CSV作成時に特徴を任意に設定できるので、モデルがその特徴を分類できたなら、 モデルが正しく動作していると判断できる。 # 生成したいデータセットの仕様 ### カラム * 性別: 顧客の性別(1:男性 / 0:女性) * 年齢: 顧客の年齢(数値) * 婚姻: 顧客の婚姻状況(0:未婚 / 1:既婚) * 都道府県: 顧客が住んでいる都道府県(47都道府県のいずれか) * 職業: 顧客の職業(1~8のいずれか。項目は後述) * 趣味: 顧客の趣味(1
元記事を表示

pythonで英語スペルミスの検出を試みた

pythonで英語スペルミスの検出を試みた際の備忘録 今回試したライブラリ – autocorrect – pyspellchecker – text blob library – pyenchant # autocorrect > [https://pypi.python.org/pypi/autocorrect](https://pypi.python.org/pypi/autocorrect) “` pip3 install autocorrect “` “`python:test.py from autocorrect import Speller spell = Speller(lang=’en’) print(spell(‘caaaar’)) print(spell(‘mussage’)) print(spell(‘survice’)) print(spell(‘hte’)) “` “` $ python3 test.py aaaaaa message service the “` # pyspellchecker > [https://p
元記事を表示

Flask+gunicornを使って作成したTwitter連携アプリをHerokuにデプロイした話

初投稿です。 本記事は**Flask+gunicorn**を使ってTwitterに自動投稿を行うPythonアプリをHerokuにデプロイした際の備忘録的な内容になっています。 ほぼ知識ゼロから始めたこともあり色々とハマったので、同じ境遇の方の助けになればと思い、本記事を書こうと思った次第です。 本稿は下記構成となっています。 + [前提条件](#前提条件) + [Twitter API keyの取得](#twitter-api-keyの取得) + [各種パッケージのインストール](#各種パッケージのインストール) + [ファイル構成](#ファイル構成) + [アプリケーションのデプロイ](#アプリケーションのデプロイ) + [おまけその1:画像付きでツイートする](#おまけその1画像付きでツイートする) + [おまけその2:リプライツイートに返信する](#おまけその2リプライツイートに返信する) #前提条件 以下がインストール済みである前提で話を進めます。 + Python3.7系 + git #Twitter API keyの取得 下記ページを参考に`APIkey & s
元記事を表示

PythonでFTPを使う方法

#はじめに Pythonでftpを使用する機会がありましたのでメモとして残しておきます。 ###FTP接続 “`.py import ftplib ftp = ftplib.FTP(IP_ADDRESS) ftp.set_pasv(‘true’) ftp.login(USER, PASSWORD) “` *処理の最後には、`ftp.close()`を忘れずに ###ファイルのアップロード(テキスト) “`.py with open(“a.txt”, “rb”) as f: ftp.storlines(“STOR /aa.txt”, f) “` *`rb`バイナリーモードで開く必要あり(バイナリー) ###ファイルのアップロード(binary) “`.py with open(“b.txt.zip”, “rb”) as f: ftp.storbinary(“STOR /bb.zip”, f) “` ###ファイルのダウンロード(テキスト) “`.py with open(“b.txt”, “w”) as f: ftp.
元記事を表示

fairseqで推論するときのクラス

ずっとinteractive.pyを改変してやってきましたが、公式にいい関数がありました。 以前の方法 [fairseqのinteractiveをクラス化する](https://qiita.com/izso/items/ea7a23205264079eea7d) ## コード “`python from fairseq.models.transformer import TransformerModel class Interactive: def __init__(self, spm_path, data_path, checkpoint_path, checkpoint_name): #同時処理文数 self.num = 32 self.ltos = TransformerModel.from_pretrained( checkpoint_path, checkpoint_file=checkpoint_name, data_name_or_p
元記事を表示

【実装例】Cython(Python)でファイルを行単位で末尾行から読み込み

調べると案外例があまり出てこない。ファイルサイズがメモリに対して充分小さければreadで全読み込み+reverseでもいいが、巨大なファイルにも備えておきたいのでブロック単位で末尾読みを繰り返す。 実装は都合によりcythonなので、Pythonなら主にcdef周りを消せば使えると思う。 テストでは、Ubuntu上、改行コード”\n”のファイルでopen, closeが通ること、block size以下およびblock sizeより長い行を持つ場合でも正しくreadlinesできること、先頭に到達した場合もエラーが出ないこと、を確認した。 “`Python: cdef class ReversedFileReader(object): cdef: object file int block_size, pos str newline def __init__(self, str _path2file=”, int _block_size=4096): self.file = None
元記事を表示

【Python】Anacondaの環境構築(インストール、起動、仮想環境、パッケージ管理)Mac環境

こんにちは、かをるです。

今回は、Anacondaの環境構築の方法を紹介していきます。

PyCharm同様にGUIインストーラを使って進めていきますので、比較的簡単に進めることができます。

Anacondaはデータサイエンティスト向けのPythonパッケージになっておりますので、データサイエンティストを目指される方は使い慣れておくのがいいかと思います。

インストール自体は簡単に行えますが、色んな事を自動的に行なってくれるので、【中身がどの様に行われているのかわ

元記事を表示

taichiの使い方⓪ 目次

## このシリーズについて taichiというpythonで使えるグラフィックのライブラリに最近ハマっているので、使い方をまとめていきます。 ## 目次 ① [mp4とgifで出力](https://qiita.com/Hiroaki-K4/items/7607b54fbcfaea171215)
元記事を表示

Githubおもしろリポジトリ⓪ 目次

## このシリーズについて githubのトレンドリポジトリから情報を[定期通知する機能](https://qiita.com/Hiroaki-K4/items/61b357fa69c90fd9bbfd)を作ったのですが、それを通じて発見した面白そうなリポジトリを紹介するシリーズです。 ## 目次 ① [面白そうなグラフィック系のリポジトリを発見したので試してみた](https://qiita.com/Hiroaki-K4/items/e8cdb8c4e79c0d1a6670) ② [家中をどこからでもコントロール](https://qiita.com/Hiroaki-K4/items/08a2feffbc477691ca5f)
元記事を表示

OTHERカテゴリの最新記事