- 1. (Python3)とあるDBにおける文章分類を学習したモデルの作成を行い、別のDBの文書分類に使おう、という機械学習のプロジェクト(2)
- 2. [python] distutilsが非推奨でwarningが出る時の解決
- 3. 40代おっさんPythonを勉強する(データ解析,Pandas編①)
- 4. いろいろな機能をpythonに追加してみた(print, if, while 関数)(cpython)
- 5. Python3: モンテカルロ法で円周率を求める
- 6. 40代おっさんPythonを勉強する(プレーンテキストファイルの読み書き編)
- 7. 40代おっさんPythonを勉強する(CSVファイルの読み書き編)
- 8. Deepspeedの「unhandled system error, NCCL version 2.7.8」の対処法
- 9. Raspberry Pi Zero W(H)のPythonバージョン統一とNode-red の使用法
- 10. アルゴリズム実技検定(PAST) 第11回 D問題 Python解答例(Union-Find使用と不使用)
- 11. functoolsのlru_cache, cacheデコレータはメソッドには使用してはいけない
- 12. PythonでCodilityのLesson4 MaxCountersのスコア100%
- 13. typescriptのtypeと同じような動きをpythonで実装したい。
- 14. python chromedriverのpathを通せなくて困った話し
- 15. 40代おっさんPythonを勉強する(パッケージとモジュール編)
- 16. Python、selenium、webdriverでログイン後の画面の要素をスクレイピング(仮)
- 17. optunaで探索済みのデータをtrialに渡して重要度を評価する方法
- 18. プログラミング初心者すぎてPythonで計算できるのにすげぇ!!って思ってた
- 19. for _ in range(3) について
- 20. 40代おっさんPythonを勉強する(数学関連や時間表現のモジュール)
(Python3)とあるDBにおける文章分類を学習したモデルの作成を行い、別のDBの文書分類に使おう、という機械学習のプロジェクト(2)
# (前書き)
[前回](https://qiita.com/tomofu74/items/c148b833ccfb44ad0626)、修行(訓練)に入ったところ。今回はその続き。さて、学習を続行してきた標記の文章分類学習モデル・・・。一週間経っても、計算が終わらない、どころか学習の進捗状況を表示しない・・・
![スクリーンショット_20221024_202521.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/699890/b60667c1-f931-7676-ddb7-d58172659742.png)1%も進んだように見えねぇなんて、精神と時の部屋もあったもんじゃねーべや。(ヤジロベー風)しかもよ、WindowsUpdateが入ってもうて、なんか再起動しろとかWindowsのメッセージが右下のほうからハチャメチャに押し寄せてくる・・・カリン塔で仙豆でもくうか・・・
いや、何かがおかしい。環境を再構築することにした。
# (この部分は個人の備忘録)
前回はWSL2で jupyter noteb
[python] distutilsが非推奨でwarningが出る時の解決
pylintにsetup.pyをかけたところ,
“`pylint setup.py
setup.py:12:0: W0402: Uses of a deprecated module ‘distutils.core’ (deprecated-module)
“`と警告が出力された.
【解決方法】
python3.10および3.11から,distutilsが非推奨となる.
(https://setuptools.pypa.io/en/latest/deprecated/distutils-legacy.html)新たにsetuptoolsを使う必要がある.
“`setupt.py
from distutils.core import setup
“`から
“`setup.py
from setuptools import setup
“`に変更することで警告を解消.
40代おっさんPythonを勉強する(データ解析,Pandas編①)
## 本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。## Pandas
– データ分析を支援するPythonのライブラリ
– 元々金融データの操作のために設計された
– スプレッドシートやリレーショナルデータベースの処理ができる
– DataFrameという基本データ構造を定義されている
– 科学データだけではなく、ビジネスデータの処理でも単純化している
– ホームページ [https://pandas.pydata.org](https://pandas.pydata.org)
– ドキュメンテーション [https://pandas.pydata.org/pandas-docs/stable/](https://pandas.pydata.org/pandas-docs/stable/)## データの可視化
– データをグラフとして見せる
– 数字だけよりわかりやすい
– Pandasで簡単なグラフをすぐに作成できる
– Ma
いろいろな機能をpythonに追加してみた(print, if, while 関数)(cpython)
# はじめに
このブログは、eeic2022の3年後期実験、大規模ソフトウェアの第5班の成果報告のブログである。
今回は、c言語を用いてpythonにunless文(if文と同じ機能)とuntil文(while文と同じ機能)を追加してみた。また、print関数をc言語のprintf関数のように、自動で改行したり空白を開けたりする機能を失わせてみた。そして、元のprint関数の機能を持つprintln関数を追加してみた。###### pythonの文法がどのように構築されているかを知る
いつもpyhtonを使ってるけど、実際に文法がどういう仕組みで成り立っているのかは知らないことが多いですよね?そこで、ソフトウェア初心者がpythonの構造を理解するために、新しい文法unless文、until文の追加を試みました(機能はif文、while文と同じだけど、仕組みを理解するためだけなので許して)。###### print関数が使いにくい
pythonのprint関数って便利なようで便利じゃないかも?
例えば、以下のように自動的に改行されてしまう。
“`python
print(“
Python3: モンテカルロ法で円周率を求める
こちらのページを参考にしました。
[モンテカルロ法で円周率を求めるのをPythonで実装](https://note.com/shimakaze_soft/n/n9547f5c0bae0)## プログラム
“`py:pi_monte_carlo.py
#! /usr/bin/python
#
import random
import math
# ——————————————————————
def calc_pi_proc(nn):
point = 0
for it in range(nn):
xx = random.random()
yy = random.random()
if math.hypot(xx,yy) < 1.0: point += 1 pi = 4.0 * point / nn # return pi # # ------------------------------------------------------------------ fo
40代おっさんPythonを勉強する(プレーンテキストファイルの読み書き編)
## 本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。## 基本のファイル入出力
– ファイルの読み書き
“`python
tobj = open(filename, mode)
“`– fobjはopen()関数が返したファイルオブジェクト
– filenameはファイル名、場所がわかるようにパスも必要な場合がある
– modeはファイルのタイプや操作モード
– 第一文字
– `r`=>読み出し、ファイルが存在しない場合はエラー
– `w`=>書き込み、ファイルが存在しない場合は新しく作り、存在する場合は上書き
– `x`=>書き込み、ファイルが存在する場合はエラー(上書きミスを防ぐため)
– `a`=>書き込み、ファイルの後ろに追記
– 第二文字
– `t`=>テキスト
– `b`=>バイナリ
– デフォルトは`rt`、テキストの読み出し
– 最後にファイルを閉じる必要があ
40代おっさんPythonを勉強する(CSVファイルの読み書き編)
## 本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。## 構造化されたテキストファイル
– 単純なテキストファイルだと、情報を探すのが大変なので、構造的なデータを作るのが一般的
– これらの構造化ファイル形式を読み書きのPythonモジュールが提供されている
– 良く使われる形式は下記のようになる| 形式 | 形式や言語 | 特徴 |
| — | — | — |
| CSV | Comma-Seperated Values | セパレーター、区切り子:タブ(’\t’)、カンマ(’,’)、縦棒(’\|’)、コロン(’:’)など |
| XML | Extensible Markup Language | タグ’<'と'>‘で囲む |
| JSON | JavaScript Object Notation | 記号を駆使するもの |
| YAML | YAML Ain’t a Markup Language | インデント |
Deepspeedの「unhandled system error, NCCL version 2.7.8」の対処法
# 症状
DeepspeedをDockerコンテナを使ってマルチGPUで学習しようとしたところ,以下のようなエラーを出して止まってしまった.
“`
RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:825, unhandled system error, NCCL version 2.7.8
ncclSystemError: System call (socket, malloc, munmap, etc) failed.
“`
当初,nccl系のエラーだと思いバージョンを変えてみたが,改善しなかった.# 解決方法
どうやら,Dockerコンテナに割り当てられているshared memoryが64MBと少なすぎたのが原因っぽい.わりあてられているめもりりょうはコンテナ内で以下を実行するとshmの行から確認できる.
“`bash
$ df -h
shm 64M 0 64M 0% /dev/shm
“`
なので,Dockerコンテナを起動さ
Raspberry Pi Zero W(H)のPythonバージョン統一とNode-red の使用法
# はじめに
RaspberryPiの中でパフォーマンスと、省エネ性、コストが一番ベストと思われる
Raspberry Pi Zero W(H)を使いこなすうえで少し、困惑したので備忘録的に記載します。以前 8/29に投稿した記事で、私はRaspberry Pi OS(Legacy)でDesktopに対応しているものをインストールしました。2022年10月現在クリーンインストールした状態では、下記の通りのバージョンです。
Linuxのバージョン
“`
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.103+ #1529 Tue Mar 8 12:19:18 GMT 2022 armv6l GNU/Linux
pi@raspberrypi:~ $
“`Raspbian OSのバージョン
“`
pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GN
アルゴリズム実技検定(PAST) 第11回 D問題 Python解答例(Union-Find使用と不使用)
Supershipの名畑です。
前回の記事「[アルゴリズム実技検定(PAST)について 並びに 第11回A〜C問題 Python解答例](https://qiita.com/nabata/items/0421f20e8ec849ee70ad)」の続きです。
アルゴリズム実技検定(PAST)第11回のD問題の私の解答例(Python3)を公開します。私が解いた感覚だと、D問題〜F問題(7点問題)でABC(AtCoder Beginner Contest)のB問題とC問題の間ぐらいの難易度でしょうか。
未読の方は「[採用活動のために競技プログラミング(AtCoder)を始めて一年経ったので感想を書きます](https://qiita.com/nabata/items/44fa3995e476b12b9860)」も一緒に読んでいただけると嬉しいです!
## 第11回の過去問題全部
– [第11回](https://atcoder.jp/contests/past202206-open)
## 第11回 D問題 似ている文字列(7点) 解答例
### 問題
– [D – 似て
functoolsのlru_cache, cacheデコレータはメソッドには使用してはいけない
Pythonの標準ライブラリ[functools](https://docs.python.org/3/library/functools.html)にある、`cache`と`lru_cache`デコレータですが、メソッドにも使えそうですが、使ってはいけないということが下記のビデオで詳しく解説されています。
使ってはいけない理由は、キャッシュ付きメソッドがコールされたインスタンスは、一生ガーベージコレクションされないで残ってしまうからということです。メソッドの第一引数に`self`が渡されるので、キャッシュが`self`をキーとして保存してしまうためです。
この問題は回避可能で、その方法も上記のビデオで紹介されています。
例えば、下記の`double`をキャッシュしたいとします。“`python
from functools import cacheclass Foo:
def __init__():
passdef double(self,
PythonでCodilityのLesson4 MaxCountersのスコア100%
# はじめに
タイトル通りです。下の問題をPythonで解きました。
[MaxCounters coding task – Learn to Code – Codility](https://app.codility.com/programmers/lessons/4-counting_elements/max_counters/)# 回答コード
“`python
import collections# Aは空じゃないリスト
# Aの各要素は、1~N+1
def solution(N, A: list):
if (len(set(A)) == 1):
if (A[0] == N+1):
return [0] * N
else:
counters = [0] * N
counters[A[0] – 1] = len(A)
return counters# Aの中から、要素がN+1の全インデックスを探す
indexs:
typescriptのtypeと同じような動きをpythonで実装したい。
以下のようにObjectに型をtypescriptでつけることがある。これをpythonでも同じようにやりたい。
“`typescript
type ProfileInterface = {
name: string
title: string
email: string
}const profile_objects: ProfileInterface = {
name: “test”,
title: “mamushi”,
email: “test@hoge.com”
}
“`## 【解決策】TypedDictを使用する。
“`python
from typing import TypedDictclass ProfileInterface(TypedDict):
name: str
title: str
email: strprofile_objects: ProfileInterface = {
“name”: “mamushi”,
“title”: “types
python chromedriverのpathを通せなくて困った話し
python3でselenium chromedriverをmacでインストールするのにターミナル
`brew install chromedriver`で、インストールまでは良かったけど
“`
driver = webdriver.Chrome() 〜省略〜
selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH
“`
のエラーメッセージ
パスが通ってないのはすぐに分かったけど、
homebrewでインストールしたchromedriverがどこにあるのか見当たらず。
下記のコマンドでHomebrewにインストールされたパッケージの場所の確認ができるとのことなので実行
“`
brew –prefix chromedriver
Error: No available formula with the name “chromedriver”. Did you mean chrome-cli?
“`
なんでー!
再インストールしたり
40代おっさんPythonを勉強する(パッケージとモジュール編)
## 本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。## パッケージとモジュール
### スタンドアロンプログラム
– 現実的な大規模のプログラムはファイルに保存してスタンドアロンプログラムを作成しなければならない
– filename.pyのプログラムを書いてみよう“`python
print(‘こんにちは’)
“`上記のPthyonコードをtest1.pyというファイルに保存
ターミナルウィンドウで開いてPythonのコマンドで実行“`bash
python3 test1.py
“`### コマンドライン引数
コマンドライン引数とは、コンピューターのコマンド入力画面(コマンドライン)からプログラムを起動する際に指定する文字列のこと
– test2.pyを作成
“`python
import sys
print(‘プログラム引数:’, sys.argv)
“`“`bash
python3 test
Python、selenium、webdriverでログイン後の画面の要素をスクレイピング(仮)
# 前提
“`
$ python –version
Python 3.9.0
$ pip list
Package Version
—————- ———
pandas 1.5.1
selenium 4.5.0
“`# コード
“`scraping.py
from selenium.webdriver.common.by import By
from selenium import webdriver
import pandas as pd
import csvUSER = ‘メールアドレスとかIDとか’
PASS = ‘パスワード’browser = webdriver.Chrome()
# ログイン画面
browser.get(‘ログイン画面のURL’)# ID,PW,送信ボタン
elem_username = browser.find_element(By.CSS_SELECTOR, “#ID名やClass名など”)
elem_password = browser.find
optunaで探索済みのデータをtrialに渡して重要度を評価する方法
表題の通りです.
具体的には,
1. `trial.create_trial`でデータからtrialを作成
1. `study.add_trials`で`study`にデータを追加`create_trial`には各変数の分布型を指定する必要があります.(言い換えると分布型は探索空間を定義するものであり,当然ですが分布型によって結果が変わります.)
“`python
import optuna
import numpy as npstudy = optuna.create_study()
rng = np.random.RandomState(42)
samples = rng.random((50, 2))
study.add_trials([
optuna.trial.create_trial(
params=dict(x=x, y=y),
distributions=dict(
x=optuna.distributions.FloatDistribution(-5, 5),
y=
プログラミング初心者すぎてPythonで計算できるのにすげぇ!!って思ってた
Pythonで計算できるのに知ったのはネットサーフィン中に。
AIでも計算できるのは知ってたのに、まさかこれにすげぇと言うとは。
時代遅れ??
for _ in range(3) について
備忘録
python(3.8.2)のfor文
`for _ in range(3)` の`_` について## 疑問点
`_`とは何でしょうか。## 調査結果
`for _ in range(3)`は`for i in range(3)`のように書いてもOKです。
変数名が`_`になっているだけであり、変数名を`_`にすることによって、
「その変数を使っていません」ということを表現しています。(Pythonの習慣です)。ソースコード
“`python
N = 3
for i in range(0, N):
print(i)for _ in range(0, N):
print(_)
“`標準出力
“`python
0
1
2
0
1
2
“`
40代おっさんPythonを勉強する(数学関連や時間表現のモジュール)
## 本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。### random
– 疑似乱数を生成する
“`python
import randomprint(random.choice([1, 2, 3, 4, 5,])) # リストから無造作で1つを返す
print(random.randint(15, 50)) # 15から50までに整数を1つ返す
print(random.random()) # 0.0から1.0までの間に浮動小数点数を1つ返す
print(random.sample(range(1000), k=20)) # 1000の中に整数に20個の整数リストを返す
n = [1, 2, 3, 4, 5]
print(random.shuffle(n)) # リストnをシャッフルする
print(n)
“`### math
– 数学関数
“`python
import math# 入力引数はxとする
pri