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

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

Pyhton コードで Splunk サーチ結果を読み込む (RestAPI編)

# はじめに

以前、[JpyterNotebookを使ってSplunkデータを利用する](https://qiita.com/maroon/items/3c243b0f391d9ab73411) という記事を書いたのですが、RestAPIを使ってもっと簡単に読み込むことが出来たので、ご紹介します。

# Splunk RestAPI

Splunkでは、 8089ポートを使って API接続することができます。RestAPIに関しては、@odorusatoshiさんの[Splunk REST APIの玄関を叩いてみる](https://qiita.com/odorusatoshi/items/06669525a9eae58e87ff)が参考になるので、ご覧ください。

今回は、この Curlで取り込む方法を使って pythonで直接読み込むようにしたいと思います。

# Curl 内容を Pythonコードに変更

Curl でできることは、pythonでももちろんできます。しかもこちらのサイトを利用すると、自動的にpythonコードに変換してくれるという[非常に便利なサイト](

元記事を表示

【数理考古学】とある実数列(Real Sequance)の規定例①等差数列から加法整数群へ

以下は下記の概念のささやかなサブセット(部分集合)とも思えるのですが、現代数学の用語は難し過ぎてまるで頭に入ってきません。
[完全加法族 – Wikipedia](https://ja.wikipedia.org/wiki/%E5%AE%8C%E5%85%A8%E5%8A%A0%E6%B3%95%E6%97%8F)
[実数の集合論の基礎の基礎](https://fuchino.ddo.jp/notes/set-th-of-reals-kiso-no-kiso.pdf)

なので今はある種の作業仮説として自分なりの言葉でまとめ、それを独自の方法で発展させていくしかありません。もしかしたら最終的には既存の数理のどれかに発展的解消を遂げるのかもしれませんが、少なくともその段階に到達するまでは迂闊に特定の既存概念によって強引な説明をつける事は避けたいのです。

#実数族(Real Famiry)の定義。
とりあえず「(特定の数直線=座標軸上に存在し得る)**あらゆる数**」を**元**(Elemennt)と置く。逆を言えば、この条件を満たさないの

元記事を表示

Pythonでロジスティック回帰②

# はじめに

[Pythonでロジスティック回帰①](https://qiita.com/honda28/items/c70bbee5a6b6f5e5c4ff)に続けて、ロジスティック回帰の精度向上を試みる。

## ロジスティック回帰の偏回帰係数

データに標準化処理を行った場合、学習した後に得られる偏回帰係数の絶対値の大きさがその変数の影響度の大きさといえる。そこで前回の学習時の偏回帰係数の絶対値が大きい順にソートしてみる。

“`python:sortCo.py
l = []
for i, c in enumerate(lr.coef_[0]):
l.append([i, X.columns[i], c])
li = pd.DataFrame(sorted(l, reverse=True, key=lambda x: abs(x[2]))) # 係数の絶対値に注目してソート
li.columns = [“index”, “colnames”, “coefficients”]
print(li)
# index colnames coefficients
#

元記事を表示

【実践編】Discord.py Botを作ってみる

こんにちは Taitaitatata(Taitaitatata418#5407)です。
Botって便利ですよね。「MEE6」とか「顔文字で返してくるうざいBot」とか、
そいうやつ作ってみませんか?
この記事はDiscord.pyを使ってBotを作るという記事です。
**この記事はとりあえず作ってみたい人向けの記事です**
#はじめに
この記事は前回の[記事](https://qiita.com/taitaitatata/items/1039dc1786bf27c3def9)読んでいる前提で作っています。読んでいない方はまずそっちを読んでからこの記事をお読みください。

また今回使う言語はPython3.8.6です。
[.NET(C#)](https://qiita.com/tags/discord.net)や[Java](https://qiita.com/search?q=Discord+Java), ruby, [Javascript](https://qiita.com/tags/discord.js)ではありません.

癒やし動画((((((は?:https://www.yo

元記事を表示

リカレントニューラルネットワーク(RNN)まとめ(数式なし)

#はじめに

今回は、時系列データや自然言語処理を扱うときによく使われる「リカレントニューラルネットワーク(RNN)」についてまとめていきます。

?難しい数式等は扱いません。

#リカレントニューラルネットワーク(RNN)とは

通常のディープラーニングでは「出力は現在の入力によって決まる」。
つまり、過去の出力は関係ない。(過去の重みを表現できない。)

一問一答の画像認識や分類問題であればこのやり方でも問題ないが、時系列データ(株価の推移)などの場合は、過去の情報が現在の出力に及ぼす影響は大きい。

よって、時間の情報を反映できる仕組みが必要となり生まれたのが「リカレントニューラルネットワーク(RNN)」。

?イメージ図

![Qiita用-6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672827/f96aca91-3b7b-a3db-4dfe-7c477e34a680.jpeg)

##概要

リカレントニューラルネットワーク(RNN)を一言でいうと、「内部に閉路をもつニューラルネット

元記事を表示

Python: Windows10+Eclipse+PyQt5で作成したGUIソフトをラズパイで動かす方法①

記)2021/02/27

この記事はメモである。いずれちゃんとした記事にはする予定

①ラズパイ
pip3のアップグレード、これをしないとPyQt5インストール時にsetup.pyが見つからないとエラーが出てインストールできない(理由不明)
sudo pip3 install –upgrade pip

PyQT5インストール
sudo pip3 install PyQt5
めっちゃ呪い 数時間かかる

Windows側Eclipse
あらかじめ、GitHubにはプッシュ出来るようにしておきリポジトリは作っておく

フォルダ構成
例)
GUItest
–__init__.py
–main.py
setup.py
requirements.txt

__init__.py中身は空ファイル

main.py

“`
import sys
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QApplication,QMainWindow

from pk1.ui_test import Ui_M

元記事を表示

気象関係でよく見るカラーマップをmatplotlibで再現する

# 気象関係でよく見るカラーマップをmatplotlibで再現する

## はじめに

matplotlibで気象関係の図を描くときに、カラーマップをmatplotlib搭載のものではなく、grads標準のものや気象庁で公開されているものに合わせたいことがある。

本記事では以下のような感じでそれらのカラーマップを自作して、matplotlibでも同様の配色の図を作成できるようにする。

![intro.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257782/c0b0347e-af13-b112-6bce-9afb11853b46.png)

## 環境

python 3.7.8
matplotlib 3.3.2
numpy 1.19.2
cartopy 0.18.0 緯度経度座標でのプロットに利用
xarray 0.16.1 netcdfデータの読み込みに利用

プログラムの実行はjupyterlabで行った

## 自作のカラーマップを作る

カラーマップ作成に必要なモジュールのインポート

元記事を表示

SAISONカード(Netアンサー)サイトにPythonとSeleniumを使ってログインする

SAISONカード(Netアンサー)のサイトにPythonとSelenium使ってログインする方法を解説します。

※2021/02/26時点の情報です

## 環境
– Windows 10
– Python 3.8
– Selenium 3.141.0

## 全体の処理の流れ
全体の処理の流れについては、下記記事に詳しく書いたのでこちらもあわせて確認してみてください。楽天銀行の例になっていますが、処理の流れは同じです。

[楽天銀行サイトにPythonとSeleniumを使ってログインする](https://qiita.com/yoshi2045/items/2fff5bf5f0fa763f7104)

## SAISONカードサイトでのポイント
全体の処理の流れについては上記記事を参考していただくとして、ここではSAISONカードサイトにおけるポイントを中心に紹介します。

### パスワードパズル問題
SAISONカードサイトの最大の難関は、ログイン時にパズルを完成させる必要がある点です。

![image.png](https://qiita-image-store.s3.

元記事を表示

Python の関数定義・関数適用の記法、決定版

# はじめに

Python の関数定義・関数適用はやや特殊であるが、完全な仕様については意外と書かれていないのでまとめる。
主に **引数リストをどう指定するか** に注目して説明する。

# 対象バージョン

Python 3.9

# 参考文献

Python 3.9.2 Documentation

– 用語集/parameter: https://docs.python.org/ja/3/glossary.html#term-parameter
– Python 言語リファレンス/関数定義: https://docs.python.org/ja/3/reference/compound_stmts.html#function-definitions

# 関数定義 (仮引数リスト) の構文と仕様

Python は構文定義がちゃんと書かれているので参考にするとよい。`` が仮引数リスト。

“`ebnf
funcdef ::= [decorators] “def” funcname “(” [param

元記事を表示

【pyqgis】ベクターデータの選択地物を別レイヤに

## マップ上で選択する

“`
input_lyr = iface.activeLayer()
input_lyr.selectByExpression(‘”カラム” =’ + 値, QgsVectorLayer.SetSelection)
“`

## 選択地物をインスタンス化する

“`
#例えば属性検索で地物を選択
selection = input_lyr.selectByExpression(‘”カラム”=’ + “値”)

# 選択地物をインスタンス化
selected_lyr = input_lyr.materialize(QgsFeatureRequest().setFilterFids(input_lyr.selectedFeatureIds()))

# レイヤに追加
QgsProject.instance().addMapLayer(selected_lyr)

“`

元記事を表示

Sphinxを利用してGitHub Pages上にドキュメントを公開しよう

# やりたいこと

Pythonのプロジェクトに

1. docstring(google style)形式で記述した内容を
2. Sphinxを利用してhtmlドキュメントを作成して
3. GitHub Pagesを利用して公開する

が目標です。

# 用語説明

## docstringとは

モジュールやクラス、メソッドの直後に記載される`”””`で囲まれた文字列リテラル。[参考](https://en.wikipedia.org/wiki/Docstring)
docstringの書き方はこのページでは紹介しません。

“`python
“””The module’s docstring”””

class MyClass:
“””The class’s docstring”””

def my_method(self):
“””The method’s docstring”””

def my_function():
“””The function’s docstring”””
“`

## Sphinxとは

Sphinxは知的

元記事を表示

OR-Toolsによる配送計画最適化

# OR-Toolsとは
**Googleが作っているフリーの最適化ツール**です。OR-ToolsにはLPやMIPのソルバーもありますが、本記事ではCPソルバーを用いて配送計画問題を解く例を紹介します[^solver]。CP(Constraint Programming)とは言ってもかなり配送計画などの**ルーティング問題向けに使いやすいものになっている**ので、CPとは何か知っていなくても全然使えます(私もそんなに知らないですし、本記事でもCPの説明はしません)

[^solver]: OR-ToolsにはCPソルバーが2つ(CP-SATとOriginal CP)あり、現在はCP-SATが推奨されています。本記事で使うRoutingModelはOriginal CPのほうのCPソルバーを使っていますが、こっちは実質Routingにだけ使われている想定っぽいです。OR-Toolsのページを見てもrouting solverって書いてあったり、CP solverを使ってるって書いてあったり、この辺り正確にどういうことになのかはよく分からないですが…

なおOr-ToolsはC++

元記事を表示

dictのdictをDataFrameにする

# dictのdictをDataFrameに変換したい

以下のようなdictを一発でデータフレームにしようとしました。

“`python
data = {
‘1001’: { ‘A1’ : ‘1’, ‘A2’, ‘2’ },
‘1002’: { ‘A1’ : ‘3’, ‘A2’, ‘4’ },
}
“`

`1001`,`1002`を index に、その後ろのdictのkeyを列にvalueを値にしたい

以下でOKです!

“`python
df = pd.DataFrame.from_dict(data, orient=’index’)

print(df)
“`

結果

“`python

A1 A2
1001 1 2
1002 3 4
“`

以上となります。
ご参考にー

元記事を表示

Pythonで可変長引数を利用するには

# 可変長引数とは
可変長引数とは、名前の通り長さが**可変**な引数である。要するに引数が固定ではなく、任意の個数を受け取ることができる。これだけではわかりかねると思うので、実際のコードを例に見ていこう。

# *args
“`python
def main(*args):
print(args)

main(1, “one”, [“one”, “two”], {“one”, “two”})

# 実行結果 -> (1, ‘one’, [‘one’, ‘two’], {‘two’, ‘one’})
“`
`*args`は任意の数の引数を受け取り、その内容を`args`という`*`(アスタリスク)を外した形でアクセスすると受け取った引数を**タプル型**で展開してくれる。`*`以降は任意の文字列でもよいが、特別な理由がなければ`*args`とする場合が多い。

# **kwargs
“`python
def main(**kwargs):
print(kwargs)

main(int=1, str=”one”, list=[“one”, “two”], dict={

元記事を表示

yukicoder contest 284 参戦記

# yukicoder contest 284 参戦記

## [A 1406 Test](https://yukicoder.me/problems/no/1406)

0点から100点までの101パターン、平均点が整数になるかをチェックすればいいだけ.

“`python
N, *A = map(int, open(0).read().split())

if N == 1:
print(101)
exit()

a = sum(A)
result = 0
for i in range(100 + 1):
if (i + a) % N == 0:
result += 1
print(result)
“`

元記事を表示

with 構文で使っているメソッドをmockする

# with構文で使っているメソッドをmockしたい

Unittest を書いていて with でリソースを取得している箇所のmockをすることを考えました。
以下のように書けばmockができるので、参考にしてください。

## withが使えるということは?

withが使えるということは、以下のようなメソッドがクラスに定義されていて、
withの開始、終了でそれぞれのメソッドが呼ばれます

“`python
class someClass:

# with の開始で呼ばれる
def __enter__(self):
return self

# with の終了で呼ばれる
def __exit__(self, exception_type, exception_value, traceback):
pass
“`

## Unittest を書いてみる

以下のようなソースのUnittestを書こうと思いました。
`tempfile.TemporaryDirectory()`をmockして`tmp_dir_nam

元記事を表示

Pythonでポアソン分布

前回の[二項分布](https://qiita.com/863/items/47d6e4bec12573aba007)に引き続き今回はポアソン分布オブジェクトを作成したいと思います。素人なので間違いがあったら教えていただけると嬉しいです。

## ポアソン分布って何

導出方法から見ると、ポアソン分布は二項分布の「全試行回数」が__無限大__になったバージョンだと考えていいと思います。

### ポアソン分布の確率質量関数の導出方法
– 二項分布の確率質量関数を用意する
– 全試行回数n→∞、確率p→0 の場合の極限を求める

式変形はこちらの記事がわかりやすいです。
https://note.com/konpyu/n/ncede5754aba8

### ポアソン分布の確率質量関数
上記の方法で導出されたポアソン分布の確率質量関数は以下のようになります。

単位区間(時間 or 空間)内における平均発生回数がλ回である事象が単位区間内にk回発生する確率(eはネイピア数):

“`math
P(k)=e^{-\lambda}\dfrac{\lambda^k}{k!}
“`
##

元記事を表示

PythonでIDを取得してオブジェクトに戻す

# TL;DR
PythonでIDを取得してオブジェクトに戻す小技の紹介です.

# IDを取得する
Pythonでは[id関数](https://docs.python.org/ja/3/library/functions.html#id)を使うことでオブジェクトのIDを取得することができます.
これはオブジェクトを一意に表すIDです.

“`python
>>> val = 5
>>> id(val)
140725152520080

型にもあります
>>> val = int
>>> id(val)
140725152283920
“`

# オブジェクトに戻す
一意に表すIDであればIDからオブジェクトを取得できるのでは?という話です.

\_ctypesモジュールのPyObj_FromPtrという関数を使用します.

“`python
>>> import _ctypes
>>> val = 5
>>> id(val)
140725152520080
>>> _ctypes.PyObj_FromPtr(140725152520080)
5
“`

インスタンスオブジェ

元記事を表示

Python の開発環境問題には direnv が最高だった件

# よくある悩み

– *「Python で開発するけどローカル環境汚したくないんだよなー」*
– *「Python コンテナ立てて VSCode でアタッチしてもいいけど拡張機能の管理がめんどいなー」*
– *仁義なき `virtualenv` vs `pipenv` vs `venv` 派閥争い*

# そんなあなたに direnv

[https://github.com/direnv/direnv](https://github.com/direnv/direnv)

一言でいうと、ディレクトリ毎に環境を分けるもの

## つまり何 ??

venv と組み合わせると、direnv を有効化したディレクトリに移動しただけで venv を `activate` することが可能

また、環境変数も同様に自動でセットすることが可能

# 使い方

## インストール

Mac の場合は `brew install direnv` 、Windows は知らん

## 設定

`~/.zshrc` に追記

> $EDITOR で指定するのは自分の好きなやつ

“`s

元記事を表示

numpyでシフト演算を使って符号無し⇒符号有りに変換する

# TL;DR
numpyの符号無しのndarrayをシフト演算を使って符号有りに変換する方法の紹介です.

# numpyのシフト演算
numpyは要素毎にシフト演算することができる.
シフト演算も例外できる.

“`python
>>> import numpy as np
>>> val = np.arange(5)
>>> val
array([0, 1, 2, 3, 4])
>>> val << 4 array([ 0, 16, 32, 48, 64], dtype=int32) >>> val >> 1
array([0, 0, 1, 1, 2], dtype=int32)
“`

# 符号無し => 符号有りに変換
## astype
astype関数を使って符号無しから符号有りに変換することはできる.
8bitであれば,uint8からint8に変換すれば問題ない(16bit/32bit/64bitも同様).

“`python
>>> import numpy as np
>>> val = np.asarray([255, 0, 127, 128], dtype

元記事を表示

OTHERカテゴリの最新記事