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

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

【Python】クラス内にデコレーターを定義して、子クラスで使用する

“`python
class Parents(object):
# classmethodにしないと、インスタンス化しなければならないため
@classmethod
def deco(cls, func):
def wrapper(self, *args, **kwargs):
print(‘start’)
params = func(self)
print(params)
print(‘stop’)
return wrapper

class Children(Parents):
self.C = ‘C’

@Parents.deco
def build(self):
print(‘A’)
print(‘B’)
return self.C
“`

元記事を表示

言語処理100本ノック(2020)-51: 特徴量抽出

[言語処理100本ノック 2020 (Rev2)](https://nlp100.github.io/ja/)の[「第6章: 機械学習」](https://nlp100.github.io/ja/ch06.html)の[51本目「特徴量抽出」](https://nlp100.github.io/ja/ch06.html#51-%E7%89%B9%E5%BE%B4%E9%87%8F%E6%8A%BD%E5%87%BA)記録です。
[「第9章: RNN, CNN」](https://nlp100.github.io/ja/ch09.html)の前提だったためやりました。あまり熱心にやっておらず、以前やった[「2015年版言語処理言語処理100本ノック-71(StanfordNLP使用):ストップワード」](https://qiita.com/FukuharaYohei/items/60719ddaa47474a9d670)のコピペがほとんどです。今回はspacyを使うなどいくつか変更しています。
[記事「まとめ: 言語処理100本ノックで学べることと成果」](https://qiita.c

元記事を表示

huggingface/transformers覚書

[huggingface/transformers](https://github.com/huggingface/transformers)に関してつまづいた点をまとめた自分用のメモです。
大体は[公式ドキュメント](https://huggingface.co/transformers/)や[公式フォーラム](https://discuss.huggingface.co)で解決することが多いです。

#TensorFlowで学習したモデルをpytorch形式にして読み込みたい
参考記事:[公式ドキュメント](https://huggingface.co/transformers/converting_tensorflow_models.html)
`transformers-cli convert`で一発。

#EarlyStoppingさせたい
参考記事:[公式ドキュメント](https://huggingface.co/transformers/main_classes/callback.html)
EarlyStopping以外のCallbackも実装されている。

#Ber

元記事を表示

Anacondaにmglearnをインストールしたい人へ

#対象とする人
・書籍[Pythonではじめる機械学習]での学習をはじめる人へ
・Anacondaに標準でインストールされていないmglearnをインストールしたい人へ。
私の環境ではanacondaではconda install mglearnができませんでした。
ですのでpipを用いてmglearnをインストールしました。

#とりあえずインストールしたい人向け
AにあなたのPCの名前

“`
pip install mglearn -t /Users/A/opt/anaconda3/pkgs
“`

#ちょっとした解説
私も初心者に毛が生えたようなものですので、間違っているかもしれませんが、
・pipインストールのディレクトリを指定する方法

“`
pip install (インストールしたいライブラリ名) -t (インストールしたいディレクトリ)
“`

問題は今回インストールしたいディレクトリがどこなのかです。
次のような手順で私は探していきました。

“`
#自分の直下にあるディレクトリの確認
ls /
#optやvarなどが出てくるはず。(もしないなら、 cd

元記事を表示

そのファイル、実はシンボリックリンクで共有されています…を正しく調べる方法

## シンボリックリンクで共有されているケース

ファイルが シンボリック リンク によって実体が別にある(複数のパスで共有されている)か、共有されていないかを調べるには、ls -l コマンドを実行すれば分かると思っているのではないでしょうか。

$ ls -l
./sub1/a.ts -> ./main/a.ts

実は、ls -l だけでは分かりません。 なぜなら、共有されているファイルは、**その親フォルダーやそのさらに親フォルダー…** のどこかがシンボリックリンクになっていることがほとんどだからです。 そのフォルダーに対して ls -l しなければ分からないからです。

$ ls -l ./sub1/a.ts #// ファイルを調べても分からない
./sub1/a.ts
$ ls -l ./main/a.ts #// リンク先
./main/a.ts
$ ls -l #// 親フォルダーを調べて初めて分かった
./sub1/ -> ./main/

本記事では、ファイルの

元記事を表示

相対性理論のパラドックスについて考えてみた

#概要
同僚から、相対性理論のパラドックスというものを教えてもらいました。

>相対性理論のパラドックス
『Aさんがロケットに乗って光速の98%の速さで地球から離れて行っているとする。今、地球にBさんがいて、Aさんを眺めているとする。Aさんから見るとBさんが離れて行っているので、アインシュタインの相対性理論によりBさんの時間は遅れる。
ところが、Bさんから見れば、Aさんの方が離れて行っているように見えるので、相対性理論によりAさんの時間も遅れる。
結局、どちらの時間も遅れるので、二人の時間に違いは起きない。』
![rocket.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1641177/0c65c5d2-a10d-74ba-23a1-78e562cdd9d2.jpeg)

これはもっともな意見だと思います。
一方で、ロケットあるいは飛行機に乗っている人の時計が、地上にいる人の時計より遅れることは実験により確かめられているそうです。

このパラドックスをどう説明すればよいのでしょうか?
自分なりに考えて

元記事を表示

[Python] SeleniumでHTTP関連のエラーが出たので検証してみました

#はじめに
会社でVB.NET環境でSeleniumを使用しWebサイトからスクレイピングを行う業務の保守にあたっているんですが、最近HTTPのConnectionFailureで処理が落ちてしまうことが多いので原因を探ってみました。
僕自身はVBよりはPythonの方が慣れているのでPythonで確認しています。
今回は検証作業の記録をアップすることを目的としているので、何か気付いたことがあればご指摘いただければありがたいです。

もしSeleniumの使い方やDockerでの環境構築について知りたい方は前回、前々回の記事をご覧になってみてください。 ⇨ [[Python] Dockerコンテナでseleniumを使ってみる](https://qiita.com/y_kitchens/items/eb5a2f4d176807335fcc)

#目的
###前提
僕が保守しているプログラムについては大まかに以下の機能を備えています。
・ChromeDriverでChromeを起動
・必要なWebページにログインする
・ページ内テキストを取得しテキストアプリに保存する
・ログインやテキス

元記事を表示

huggingface/transformersのAutoTokenizerから学習済みSentencePiece Tokenizerを呼び出す

#はじめに
[huggingface/transformers](https://github.com/huggingface/transformers)の日本語BERTモデルには、`BertJapaneseTokenizer`が用意されています。これは[MeCab](https://taku910.github.io/mecab/)でpre tokenizeし、wordpieceかcharacter単位にtokenizeします。
しかし、`BertJapaneseTokenizer`は[SentencePiece](https://github.com/google/sentencepiece)に対応していません。SentencePieceを使いたい場合はどうすれば良いのでしょうか。
本記事では2種類の方法を説明します。
1つ目は、SentencePieceに対応している`AlbertTokenizer`を使用する方法です。非常に簡単なのでこちらの方法がおすすめです。
2つ目は、`PreTrainedTokenizerFast`から呼び出せるように学習済みのSentencePiece

元記事を表示

NumPy配列をシフトさせるnp.rollを使って単一画像のスクロールGIFを作ってみる

#はじめに
NumPy配列ndarrayをシフト(スクロール)させるnp.rollを用いて画像をスクロールさせて遊んでみます。スクロールした画像をGIFに保存していきます。
せっかくなので子供が喜びそうなネタを扱っていきます。遊び心満載でお届けしますので、最後まで気楽にご覧ください。

![test57.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1559455/e6c84481-7aa2-d0db-4d0b-7e895a231c35.jpeg)
↓↓↓↓↓↓↓↓↓
![2-2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1559455/080c177e-d3ec-44f0-18d3-6b5a429408eb.gif)

#NumPy配列ndarrayをシフトするnp.rollとは

まずは以下のように一次元配列を考えます。

“`ruby:python
import numpy as np

a = np.ara

元記事を表示

Python: 初心者がBランク問題を12問解いた際に必要だった知識のまとめ

# 背景
C, C# 経験者が、話題になってた Python 学んでおこうかと思い、paiza の問題を構文とか調べながら B ランク問題を解いていった際の備忘録

平均一問/週程度で解いてると、忘れ去ってしまうので、たまにはまとめておかないと、というのが動機

2021/11/21 時点で、B ランク12問 Clear
Pythonだとこれが一番よい結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/e1864533-ec22-e198-c8a1-c2277785caff.png)

# 環境
Python 3.9.6

# Baseとするソース
Base のソースとしてまとめておいて、これを元に開始することで、解答時間内に調べなくてもよくなりつつある感じ
A ランク・・・いつ挑戦しようかは悩み中。実務で使ってないと自信がなかなかつかないですね・・。ほぼ毎回構文とかをネットで調べるので :laughing:

“`python:Base.py

import nump

元記事を表示

【AtCoder解説】PythonでABC228のA,B,C,D問題を制する!

**ABC228**の**A,B,C,D問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM**や*

元記事を表示

自作Cコンパイラで作った自作Pythonでwhile文が動きました

neo-c2/yapyにpython処理系があります。
neo-c2/vinにviクローンがあります。

https://github.com/ab25cq/neo-c2

元記事を表示

PySideで印刷した

Pythonで、帳票を印刷するアプリ書こうと思って、どうやったら印刷出来るんだろうと色々ググってみたけど、結局Qt使う事にして、それならPySideで印刷する方法を調べてたけど、しっくりするサンプルが無かったので、作ってみた。

とりあえず、QPrinterオブジェクト作っておいて、QPrintDialogでユーザーにプリンターを選択させて、設定されたQPrinterオブジェクトをQPainterオブジェクトに渡して、QPainterオブジェクトで描画するという手順だった

“`python:
import sys
from PySide6.QtWidgets import QApplication
from PySide6.QtPrintSupport import QPrintDialog, QPrinter
from PySide6.QtGui import QImage, QPainter

def print_dialog(printer_obj):
dialog = QPrintDialog(printer_obj, None)
dialog.setWi

元記事を表示

ITコンサル備忘録 その1

こんにちは!
外資ITコンサルの早2年目のMr.Tachibanaです。

今後の私の記事は主に3点を重点的に書きたいと思っています。
①ITコンサルの現実
②サイバーセキュリティ・AI系の知識
③エンジニアにとって有益な情報

①に関しては、就活や転職の方々に少しでも有益な情報があるように提供したいと思っています。
②に関しては、主に技術的な内容を備忘録のためにみなさんにも共有したいなと思いました。
③に関しては、エンジニア(エンジニアに限らず)にとって有益だなと思った情報があれば共有したいなと思っています。

## 今日は①の「ITコンサルの現実」について
みなさんITコンサルと聞くとキラキラしたイメージだと思いませんか?
実は、結論から言うとめちゃくちゃ地味な仕事が9割をしめます!残りの1割がプレゼンや提案のところで、これがあるからキラキラしているようなイメージがもたれているのだと思います。
私の1日の仕事を書きますと、
9:00-9:30 雑務(メールチェックなど)
9:30-10:30 朝会
10:30-12:00 業務
12:00-13:00 ランチ
13:00-15:0

元記事を表示

SIGNATEのコンペに数人で参加した話 パート1

#コンペに参加した理由
 同じ研究室の大学4年生と大学院1年生の2人で、データ分析を行う練習のために参加した。目標はあくまでも、高精度分析ではなくコードを書いて、考察をしてみるというものである。そのため、練習用に準備されているデータの分析を行なった([国勢調査からの収入予測](https://signate.jp/competitions/107))。
 今後パート2、3、4、と続いて行く予定です。この記事は分析をしてきた足跡を残す気持ちで書きます。

# データの可視化
### 数値データだけの可視化
– 全体の値を描画
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1157150/1edca4cb-5072-dcfd-d236-cd744db6c5e3.png)
何故かわかりませんが、ヒストグラムのyの値が小さくなってしまいました。

– 収入に応じてプロットの色を変更
![image.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

トヨタシステムズプログラミングコンテスト2021 A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder

トヨタシステムズプログラミングコンテスト2021(AtCoder Beginner Contest 228) A~D問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。

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

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

##トヨタシステムズ様について
求人情報は以下のページにあるので、興味がある方はご覧ください。

https://www.toyotasystems.com/recruit/

動画

##A – On and Off

https://atcoder.jp/contests/abc228/tasks/abc228_a

まずS

元記事を表示

【Python】Pandas で株価データを取得する(その4)

# 【Python】Pandas で株価データを取得する(その4)

## はじめに

[前回](https://qiita.com/tnozoo/items/b81f89d5f7a3830d5d64)書いた株価データを取得するコードは問題があった

– 取得したい銘柄のコードをPythonコードの中に直に書いている

今回は,[前回](https://qiita.com/tnozoo/items/b81f89d5f7a3830d5d64)のコードを次のように書きかえてみる

– Excel ファイルにある銘柄一覧から株価データを取得するコード

## Pandas の read_excel で Excel 読み込みが簡単にできる

まずは Excel ファイルを用意する

用意した Excel ファイルは,
A列に銘柄コード(列名: code),B列に銘柄名(列名: company)となっている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/385512/94060b34-48f3-7

元記事を表示

【Python】Pandas で株価データを取得する(その3)

## はじめに

[前回](https://qiita.com/tnozoo/items/e69bf998ddc3ab836d2f)書いた株価データを取得するコードは問題があった

– 株価データ取得期間が固定
– 取得したい銘柄のコードをPythonコードの中に直に書いている

今回は,[前回](https://qiita.com/tnozoo/items/e69bf998ddc3ab836d2f)のコードを次のように書きかえてみる

– 1年前から現在までの期間で株価データを取得するコード

## dateutil.relativedelta で,N日前の日付を求める

N日前の日付を求めるには,dateutil.relativedelta を使うのが便利そうだ
dateutil.relativedelta の動作を確認してみる

本日2021/11/21の1年前(12か月前)を求めるのは次のようだ

“`python
>>> st = datetime.datetime.now() – relativedelta(months = 12);
>>> st.year, st.mo

元記事を表示

Webフレームワークを使わずにPythonでWebアプリを作る

# はじめに
Webアプリを作るとなるとWebフレームワークを使うのが一般的だと思うのですが,Webフレームワークを使うとクライアントとサーバとのやりとりだったりがブラックボックス化してしまい,なんかよくわかんないけどこう書けば作れるみたいな状態になってしまうのが嫌だったので,Pythonの標準ライブラリ以外のライブラリ等を極力使わずに,クライアントとサーバとの間を流れるbyteを感じられる(笑)ことを目標にWebアプリを作っていきたいと思います.

# 作るもの
とりあえずブログを作ろうと思います.機能としては以下を考えています.時間があるときに少しずつ作っていきます.

– Webサーバ
– ログイン機能
– お問い合わせフォーム
– カテゴリ機能
– タグ機能
– 記事の一覧ページ
– ユーザのアカウントページ
– タグ別一覧ページ
– カテゴリ別一覧ページ
– HTMLエディタ/MarkDownエディタ/リッチテキストエディタ
– キーワード検索
– 詳細絞り込み検索

# レポジトリ
以下の私のGitHubレポジトリにコードがあります.
[No Framework Blog]

元記事を表示

【Python】Pandas で株価データを取得する(その2)

## はじめに

[前回](https://qiita.com/tnozoo/items/4c9e594afce6555670a8)書いた株価データを取得するコードは問題があった

– 銘柄がトヨタ固定
– 株価データ取得期間が固定

今回は,[前回](https://qiita.com/tnozoo/items/4c9e594afce6555670a8)のコードを次のように書きかえてみる

– トヨタ以外にも任意の銘柄の株価データが取得できるコード

## 複数銘柄の株価データを取得する

取得したい複数銘柄のコードをリストにして main 関数に渡してみる
ついでに銘柄名も渡してみる

“`python
if __name__ == ‘__main__’:
codeList = [‘7203’, ‘7201’, ‘7267’];
companyList = [‘トヨタ’, ‘日産’, ‘ホンダ’];
main(codeList, companyList);
“`

main 関数は,コードと銘柄名のリストをもらい,
リストの要素数分の株価データ取得処理を

元記事を表示

OTHERカテゴリの最新記事