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

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

[py2rb] 多重継承の5

# はじめに
移植やってます。
( from python 3.7 to ruby 2.7 )
# 多重継承 (Python)
https://qiita.com/superrino130/items/baafa3d35870e63cd5bf#comment-4d89a0f12472ee16fec8

前回の記事の [コメント](https://qiita.com/superrino130/items/baafa3d35870e63cd5bf#comment-4d89a0f12472ee16fec8) にて、@Nabetani さんよりメソッドのまとめ方を教えていただきましたので、それを踏まえて再びやってみました。

![20220224a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538241/45899ae7-6363-8b1e-246e-741e977e44ed.png)

+ 一番目の行は、ファイル名(Rubyですとmodule名)
+ C:class, SC:継承するsuperclass

元記事を表示

Scrapy でノードを取得する方法

– `Response` オブジェクトの `css()`メソッドでノードを取得できる。
– `css()`メソッドの戻り値は `SelectorList` オブジェクト

## `SelectorList` オブジェクトの主なメソッド

メソッド | 内容
— | —
`getall()` | ノードの一覧を文字列の`list`として取得する
`get()` | ノードの一覧の最初の要素を文字列として取得する
※HTMLタグを含む文字列が得られるのでテキストのみを取得したい場合は、`::text` 擬似要素でテキストのみを取得してから `get()` を適用する
`re(regex)`|ノードの一覧のうち、引数に指定した正規表現(regex)にマッチする最初の部分を文字列として取得する
`css(query)` | ノードの一覧の要素に対して、引数に指定したCSSセレクター(query)にマッチするノードの一覧を `SelectorList` として取得する
`xpath(query)` | ノードの一覧の要素に対して、引数に指定した XPath(query)にマッチす

元記事を表示

Scrapy Shell の使い方

## Scrapy Shell とは
Scrapy のためのインタラクティブシェルで、CSS セレクターや XPath による抽出を簡単に試せる。
通常の Python のインタラクティブシェルと同様に Python のコードを実行できる。

### 起動方法
`scrapy shell` コマンドに URL を引数として与えることで起動。

“`bash
$ scrapy shell https://****/****/****
“`

## 関数

関数|内容
— | —
`shelp()`| Scrapy Shell のヘルプを表示する。
`fetch(url[, redirect=True])`
or
`fetch(req)` |引数で指定した URL または `Request` オブジェクトのページを新しく取得し、`request` や `response` などの変数の値を置き換える。
`view(response)`|引数で指定した `Response` オブジェクトをブラウザで表示する。


#####参考
[Pythonクローリング&ス

元記事を表示

Seleniumで認証プロキシを突破する方法

組織内でSeleniumを使用する場合Proxy認証が壁となる。調べた結果、Selenium自体の機能により突破することはできないことがわかり、代替案についての数多くのアイデアが紹介されている。各案をトライ&エラーし解決まで非常に時間を要した。
結論として、Selenium-wireがやりたいことに近く最もシンプルだったのでこの方法を採用。気になる点として、webdriverの導入をSelenium-wireから行っており、これが通常のSeleniumと比べ、今後どういう影響があるのか不透明である。

Selenium-wireを使ったProxy認証の突破方法

※Selenium wireをcondaでインストールできず、仕方なくPIPでインストール。混ぜるな危険と聞いており恐る恐る。仮想環境でやってるから大丈夫か?以下URLでCondaでのinstallを記載しているが、できなかった。https://anaconda.org/ralexx/selenium-wire

他の案としては(1)Pyau

元記事を表示

強化学習を使ってfx取引を学習する

# 作ったもの
https://github.com/komo135/forex-trading

fxの過去のデータを利用して強化学習を使って自動取引を学習させること目標にします。詳しいコードは上記のリポジトリを参照してください。

# データの準備
1. Mettrader5をインストールします
1. デモアカウントかリアルアカウントを作成します
1. pythonでMetatrader5パッケージをインストールします
“`console
pip install Metatrader5
“`
そして以下のコードを実行します。
“`console
cd data
python gen_data.py
“`

# 実行
“`python
from agent import dqn
agent = dqn.Agent(model_name=”efficientnet_b0″, s=5, action_type=3, pip_scale=1, n=1, loss_cut=False, use_device=”tpu”, dueling=False)

agent.run()
ag

元記事を表示

ARC034 B問題を解説する。 (PythonのACコードあり)

#ARC034 B問題 方程式
##問題
たとえば、$f(5391)=5+3+9+1=18$ のように、各桁の和を関数$f(x)$で定義する。
$1\leq N\leq 10^{18}$を満たす$N$が与えられるので、$x+f(x)=N$となる$x$を求めてください、という問題。

https://atcoder.jp/contests/arc034/tasks/arc034_2

##考察その1 xの上限は?

たとえば、$N=100$のとき、$x$は$100$以上の値をとりません。$100+f(100)>100$だからです。
どのような$N$が与えられても、$x

元記事を表示

yukicoder contest 332 不参戦記

# yukicoder contest 332 不参戦記

## [A 1841 Long Long](https://yukicoder.me/problems/no/1841)

Python だと乗算一発.

“`python
N = int(input())

print(‘Long’ * N)
“`

## [B 1842 Decimal Point](https://yukicoder.me/problems/no/1842)

Aに10Cをかけて、Bで割った商を10で割ったあまりが答えだけど、10Cが大きすぎて計算できない. ここで10×BをBで割った商を10で割ったあまりが常に0になるという事実に気づくと計算可能になる.

“`python
T = int(input())

for _ in range(T):
A, B, C = map(int, input().split())
print((A * pow(10, C, B * 10)) // B % 10)
“`

元記事を表示

distutils の廃止予定(Python 3.12)

こんにちは。
Python 3.12 では “`distutils“` が廃止される予定とのことです。“`pip install“` すると現在警告が表示されます(homebrew による Python 利用の場合。下記例)。

参考情報として(Homebrew/homebrew-core (GitHub)内)

* “[Python is deprecating distutils.cfg #76621](https://github.com/Homebrew/homebrew-core/issues/76621)”
* “[pybind11 2.9.1 #94696](https://github.com/Homebrew/homebrew-core/pull/94696)”

“`console
$ brew install python3
$ brew info python3 | head -n1
python@3.9: stable 3.9.10 (bottled)
$ python3 -m pip install …
DEPRECATION: Configu

元記事を表示

Raspberry Piでインターホンの音を検知してLINEに通知する (2)PyAudio録音時の警告・エラーに対処する

「インターホンの音を検知してLINE通知することで、どこにいてもイヤホンをしていても来客に気づきたい」と考えて作成したものをまとめています。
前回「[(1)インターホンの音を録音する](https://qiita.com/nkgwwwww/items/cd0e7433cfc4b2ea0a59)」では、Raspberry PiとPyAudioモジュールを使ってインターホンの音を録音しました。
しかし、その際に警告やエラーが出ることを説明しました。
今回は、これらへの対処方法をまとめます。特にエラー対処は実際に運用する際に重要です。

なかなか解決方法が見つからなかったので需要があるかなあと思う反面、
調べきれていないとも感じている箇所です(実際、どれも根本的な解決ではない)。

装置:Raspberry Pi 4
マイク:[共立プロダクツ MI-305 [USBマイク]](https://www.yodobashi.com/product/100000001004508009/)
プログラム言語:Python3 (PyAudioモジュールを使用。 [PyAudio Documentati

元記事を表示

事業企画1年目のpython学習3日目

# 本記事について
とある事業会社で事業企画をやっています。
元々は、新規営業1年→エンプラ営業3年やっていました。
事業企画への異動に伴って、ルーチンワークの自動化やスクレイピングに興味を持ちpython学習をスタートしました。
目的達成までは記事を執筆予定です。どうぞよろしくお願いいたします。

# 開発環境
jupyterlab

# 使っている本
すっきりわかるpython入門
https://sukkiri.jp/books/sukkiri_python

# 勉強計画
週5日間ミニマム1h勉強する。
最初の1weekは1冊終わらせることをgoalに。
start@ 2022/2/21

# 学習時間
2.0h

# 学び
今日は条件分岐を学びました〜

## 条件分岐

順次、分岐、繰り返しがある。
今までの2日間の記事では順次はのみ利用。
この3つを使えば、ありとあらゆるプログラムが作成可能とのこと。
構造化定理。という。

###1行=1つの文にしない場合は、セミコロン;でつなぐ。
“`py
name = ‘kamon’;print(‘my name is {}’.f

元記事を表示

sklearnテキスト分類で、vectorizerの種類とオプション指定が精度に与える影響を検証する

# 概要
`from sklearn.feature_extraction.text`のvectorizerの種類やオプションの指定によって、カテゴリ分類の精度がどのように変わるかを実験しました。具体的には、以下の要因について比較しました。

|要因|水準数|水準|
|—|—|—|
|vectorizer|3|CountVectorizer, TfidfVectorizer, HashingVectorizer|
|tokenizer|2|char, word|
|ngram_range|3|(1,1), (1,3), (3,3)|
|binary|2|True,False|

# 動機
sklearnでテキスト分類を使うときにvectorizerやオプションの指定をどうしたらいいかよくわからなかったので、感覚を掴むために実験しました。

# 結果
## 精度
教師データとしてlivedoorニュースコーパスから抽出したタイトルとカテゴリのペア7367件(カテゴリ数9)を用いました。半数のデータを使ってナイーブベイズで学習した分類モデルの精度を残りのデータで評価する、という

元記事を表示

PythonのGUIアプリをファイルひとつで実行する

# Pythonで書いたGUIアプリを実行ファイルにすると便利なのではないだろうか?

## 何がしたいのか
 この文章は、Pythonで作ったアプリを広くみんなに使ってもらいたい、そんな思いを実現するための記事です。
 ここではWindowsを対象とします。MacやLinuxでも同様にできるようですが、試していません。
 Pythonは、コードを書いて実行するのはお手軽なのですが、他の人にPythonのアプリを使ってもらうのはなかなか大変です。
 まず、Pythonを入れてもらわなければいけません。この段階でハードルが高すぎるのですが、その次にコマンドラインでPythonのアプリを実行してもらわなければいけません。
 環境さえ作れれば良いのですが、その環境を作成するのに手間がかかり、恐らく使うところまでは行きつけそうにありません。
 ならば普通のWindowsアプリのように、GUIがあり、ファイルひとつで実行できれば作ったアプリを活用してもらうのが容易になりそうです。

## 必要なもの

今回使用するのは以下です。
– Python
– tkinter
– Pyinstaller

元記事を表示

Streamlit上でPyCaretを動かす方法

こんにちは。Qiita初投稿です。

# はじめに
PythonコードだけでWebアプリを作れる[Streamlit](https://streamlit.io)と
数行のコードで機械学習の前処理から推定までできる[PyCaret](https://pycaret.org)というものがあります。
Streamlit上でPyCaretを動かす方法を調べると、[ライブラリをイジる方法しかヒットせず](https://qiita.com/ryoshi81/items/e9560ade1f0adedbaf6c)、少しハードルが高かったのでライブラリをイジらずに動かす方法を試していこうと思います。

# 環境
“`
Python 3.7
Streamlit 1.5.1
PyCaret 2.3.6
“`

# 手順
クラス分類や回帰など問題ごとにライブラリが分かれているので、使用するものをimportします。
今回は回帰で試していきます。

“`python
from pycaret.regression import *
“`

StreamlitとDataFrameも扱うので、そちら

元記事を表示

django-stdimageで元の画像を削除する

#はじめに
django-stdimageは画像サイズを変更して保存してくれます.
元の画像はいらないので削除しましょう。

https://qiita.com/peijipe/items/68292ded4fd3e31a8bfe

こちらにまとめさせていただきました。

https://blogdodo.com/blog/223/

元記事を表示

heapq.nlargest(n, iterable)でリストの上位n番目までをスッキリ抽出

# はじめに
`heapq.nlargest(n, iterable, key=None)`
はリストなどの上位n番目までの要素をリストで返します。。調べても記事がなかったので書いておきます。
# 説明
`heapq.nlargest(n, iterable, key=None)`
ではiterableで定義されるデータセットのうち、最大値から降順にn個の値のリストを返します。

つまり、
`sorted(iterable,key=None,reverse=True)[:n]`
と同義です。
# 実行
`sample=[5,7,3,12,7,3,1]`
を例に取って実行します。

### コード
“`python
sample=[5,7,3,12,7,3,1]

print(heapq.nlargest(5,sample))
print(sorted(sample,reverse=True)[:5])
“`

### 結果
“`
[12, 7, 7, 5, 3]
[12, 7, 7, 5, 3]
“`

次に、
`sample=[(“c”,5),(“b”,7),(“e”,3),

元記事を表示

【メモ】AWS LambdaでのPythonのレイヤー作成方法参考記事

https://stackoverflow.com/questions/63931402/runtime-importmoduleerror-unable-to-import-module-lambda-function-no-module

元記事を表示

【備忘録】バイオインフォマティクス環境設定

# 【備忘録】バイオインフォマティクス環境設定(macOS Monterey 12.2.1)

「バイオインフォマティクス 〜Pythonによる実践レシピ〜」を購入して、環境構築したときのメモです。

大まかな流れは、以下の通り。
– Xcodeインストール(GUI)
– wgetインストール(コマンドライン)
– Anacondaインストール(GUI)
– condaによるインストール(コマンドライン)

## condaによるインストール

Xcode、 wget、 Anaconda のインストールは省略して、condaのところだけ詳細に記載します。

######まずは、conda自身の確認。
>$conda install conda -y

######チャネル(リポジトリ)の追加。
>$conda config –add channels bioconda
>$conda config –add channels conda-forge

######環境構築。(biopythonは最新にして、pythonは3.8に設定)
>$conda create -n bio

元記事を表示

Android端末で新と旧アプリをpython+Appiumで自動実行させて得たエビデンス画像をExcelファイルに貼り付けて新旧画像の比較結果を示した

(゜д゜)ノやぁーどもです。
今回は、割と結構実用的なプログラムを作ってみましたよ!

1年くらい前に↓の記事で、Android端末でアプリケーションをpython+Appiumで自動実行させることをしましたが、今回、これを使って作った自動実行プログラムで、新アプリと旧アプリそれぞれで貯めたエビデンス画像をExcelファイルに新と旧で並べて貼っていって、「新と旧で差異がないよね」ってことの確認を支援するプログラムを作ってみました。

https://qiita.com/jun_higuche/items/7c6a23ed4f9cda53b8a0

## 背景

私が担当したエンハンスプロジェクトで、現在のアプリ(以降、旧アプリ)で使っていたAPIの全てを別のAPI(そのとき開発中のもの)に置き換えるという案件を実施しました。新APIでは、単純に置きなおしすればよいというものではなく、その1つ1つの動作仕様が違うものやパラメーターも違うものもあり、こちら側のプログラムロジックもだいぶ修正することになったのです。そして、旧アプリと新アプリでまったく同じ動作を保証しなければなりませんでし

元記事を表示

Raspberry Piでインターホンの音を検知してLINEに通知する (1)インターホンの音を録音する

住居に必ず備わっているインターホン。
・聞こえづらい部屋がある
・イヤホンをしていると聞こえない
・外出中の来客を把握したい
という課題・要望に対応すべく、Raspberry Piを使ってLINEに通知するシステムを作りました。
LINEであれば、スマホがブーブブッと振動して気づきやすいですよね。

少し調べたところ、インターホンのLEDや画面の点灯で検出するものが多かったですが、
自分のアパートのインターホンだと難しそうだったので、音で検知するようにしました。
FFTを使って、インターホンに対応する周波数(音の高さ)を検出します。
いろんなサイトから組み合わせる形になったので、まとめます。

今回は、Raspberry Piを使ってインターホンの音を録音するところまで。
このデータを使って、音の検知基準を作成します。
※準備では.wavファイルに保存していますが、運用時には保存せずに処理します。

装置:Raspberry Pi 4
マイク:共立プロダクツ MI-305 [USBマイク]
https://www.yodobashi.com/product/10000000100450

元記事を表示

二次元データの並び替え python

# やりたいこと

frame_grabber.exeを用いてRPLiDARから取得したデータ(x,y,z)をyに注目して並び替えたい
“`
#RPLIDAR SCAN DATA
#COUNT=457
#Angule Distance Quality
358.3411 742.0 188
0.9668 735.0 188
1.7468 736.0 188
2.4060 734.0 188
3.0597 733.0 188
3.7134 732.0 188
4.2462 733.0 188
4.9054 731.0 188
5.5591 730.0 188
6.3391 727.0 188
6.8719 728.0 188
7.6520 726.0 188
8.3112 725.0 188
8.9648 725.0 188
9.6240 728.0 188
“`

こんな感じにRPLiDARからデータを取得できる!
これをzを消してyを並び替える

# 想定環境
・Jupyter-notebook

# 実際にやってみる

“`python
f = open(“./a.pts”,’

元記事を表示

OTHERカテゴリの最新記事