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

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

Windows Master File Table($MFT) をElasticsearchにimportする

# Overview

[Windows EventLogをElasticSearchにimportする](https://qiita.com/sumeshi/items/491891d83c3aca224880)
[Windows EventLogをElasticSearchにimportする(のを100倍早くする)](https://qiita.com/sumeshi/items/cb2fbafe59c2c83e3085)
[Windows EventLogをjson形式に変換する](https://qiita.com/sumeshi/items/f3e87f0412f9b05f85a3)

このへんの記事のMFT版です :sushi:

DFIRをする際に, たまにMFT(Windowsのファイル管理テーブル)を調査する必要があるので自分用にライブラリ化しました.
内部でRust製ライブラリを使用しているのでなかなかに高速です.

僕のようにフォレンジック以外の用途として, ファイルを高速に検索するサービスを作ってる人もいるようです(凄い!).
Pythonで検索サービスなんか

元記事を表示

Anacondaコマンドリスト

#anacondaのコマンド備忘録

###仮想環境の作成
“`conda create -n {ENV_NAME} python={VERSION}“`

###削除
“`conda remove -n {ENV_NAME} –all“`

###仮想環境のリスト表示
“`conda info -e“`

###複製
“`conda create -n {NEW_ENV_NAME} –clone {ORIGINAL_ENV_NAME}“`

###環境の適用
“`conda activate {ENV_NAME}“`

###環境の無効化
“`conda deactivate“`

###インストール
“`conda install {PACKAGE_NAME}“`

###アンインストール
“`conda uninstall {PACKAGE_NAME}“`

元記事を表示

Jaxの自動微分で二次の勾配を求める

# はじめに
複雑な関数の微分を求めたい時に、自動微分が便利ですよね。そんな時、私は今まで[Pytorchの自動微分](https://helve-python.hatenablog.jp/entry/pytorch-automatic-differentiation)を利用していました。しかし、自動微分だけ使いたいのにpytorchのパッケージがかなり重いので、もっと軽量なパッケージはないかなと探していたところ、[jax](https://github.com/google/jax)にたどりつきました。

# jaxとは?
[公式](https://github.com/google/jax)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570899/137ddbb6-c4db-080f-a317-993e409b6224.png)
[Autograd](https://github.com/HIPS/autograd)(今はメンテナンスされていない)の更新バージョンです。GPUを使

元記事を表示

普通のグラフを散布図っぽくアレンジ|Pandas

#散布図の描画を利用してグラフ作成
散布図と言いますとだいたいこんなイメージですよね。
スクリーンショット 2020-06-17 23.32.49.jpg
こういったデータ分析に強いのが**Pandas**ライブラリです。

これを使ってフツーのグラフを散布図風に描画してみました。

まずはソースコードです。

“`Python:scatterSample.py
# Pandas ライブラリ
# 2020.06.18.ProOJI
# Matplotlib.pyplot、 そしてNumpyも使用
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# 等差数列 linspace(初項、最終項、要素数)
# 例:np.l

元記事を表示

ゼロから始めるLeetCode Day59 「1221. Split a String in Balanced Strings」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

[初心者用] Pythonでの標準入力まとめ (解説付き)

#はじめに

__*この記事は、AtCoder や paiza などで、標準入力がわからず困っている方用です。__

たくさん種類があり、難しそうに見えるかもしれませんが、実際は入力の種類に合わせたものを選択しているだけです。

初めのうちは、覚える必要は全くないので、一回一回確認しながら、少しづつ慣れていきましょう。

注)__この記事は初心者の方のための記事となっております。__初心者の方の理解を優先するため、一部不十分な言い回し等が含まれていますが、ご理解いただくようよろしくお願いいたします。

# どのコードを使えばいいか

Atcoder や paiza の問題において、どのコードで標準入力を受け取るかは、主に次の二つを考慮します。

– 入力がどの種類のものか (一行 or 複数行、文字列 or 数字)
– その入力をどのように受け取りたいか (変数に入れる、リストにする、etc)

このうち、二つ目は繰り返し問題を解くうちに、徐々にわかってくるので、この記事では一つ目に焦点を当てて解説していきます。

# 一行 入力が一つ

入力

“`
abc # 文字列
12

元記事を表示

倒立振子ロボット製作記~ハードウェア編~

倒立振子ロボットを製作しました。
今回はハードウェア編です。

##1.材料
[ラズパイタンク](https://qiita.com/shi78ge/items/e4d9dd90dc8274431e45)の材料に追加で購入したものです。

■機構部品
 ↓タミヤ楽しい工作シリーズ
 ・スポーツタイヤセット
 ・ユニバーサルプレートセット
 ・ユニバーサルアームセット
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/8a9667de-c2e9-1ff4-e675-79e22552944b.png)

 ↓その他
 ・六角オネジ・メネジ MB26-11
 ・M2.6のビス、ナット
 ※M3でも問題なし?M3のほうが入手性がよいです。

■電装部品
 ・BMX055使用9軸センサーモジュール
 ・ユニバーサル基板Cタイプ
 ・ピンヘッダ
 ・ピンソケット

##2.ベースの作製
![image.png](https://qiita-image-store.s3.ap-northe

元記事を表示

人工知能学会全国大会2020を盛り上げた組織はどこか?

# はじめに
近年盛り上がりを見せている人工知能領域は学術機関だけでなく企業や自治体まで注目しています。
この領域の学術的祭典とも言えるのが年1回開催される人工知能学会全国大会です。

今回は何番煎じかわからない出涸らしのような記事ですが
オンラインで開催された人工知能学会全国大会2020にどのような組織が発表していたか確認することで、
近年の学術的祭典を盛り上げている組織を Python を利用して分析してみます。

触発されて書いてみたものなのでお手柔らかにお願いします。

# データ
今回利用するのは下記の記事で利用している github 上に公開されている集計データです。
[人工知能学会2020&2019年の集計(データセットあり)](https://qiita.com/keeeeei0315/items/5f4879d8935b97868e8c)

この記事の執筆時点にてタグによるバージョン管理がされておりましたので [v0.2.0](https://github.com/tobara289/jsai-datasets/tree/v0.2.0) を利用します。

ディレクトリ

元記事を表示

【Python3】tkinterでonChange的なイベントを捕まえたい

# 目的
Tcl/Tkには他のGUIインターフェースを持つ言語によくある『テキストボックスの中身が変更されたら発生するイベント』が元から実装されていない。よって、なるべく簡便に実装できる方法を考え、実際に作ってみる。

## ことの経緯
[Teratailのこの記事](https://teratail.com/questions/268691)
バーコードリーダからキーボードインタフェースで入力されるデータを監視し、Entryにバーコードデータが入ったら自動で次のEntryにフォーカスを持っていきたいという話。
バーコードリーダーは機器側の設定でデータの末尾に改行を付与することができるので、テキストの変更を検知して末尾の改行を読み取ればよい。

# 実装

## 最初の実装
StackOverflowで見つけた記事 [Python tkinter text modified callback](https://stackoverflow.com/questions/40617515/python-tkinter-text-modified-callback)を参考にEntry中の`cr

元記事を表示

学習の吐き出し1(Python編1)

学習の吐き出しです。
今回主に学んだのは、文字列についてでした。

### エスケープ
\のこと。文字列の改行***\n***でよく使われる。
こんな感じ。

“`py
>>> palindrome = ‘A man, \nA plan,\nA canal:\nPanama’
>>> print(palindrome)
A man,
A plan,
A canal:
Panama
“`
また、***\t***でテキストの位置調整ができる。

“`py
>>> print(‘\tabc’)
abc
>>> print(‘a\tbc’)
a bc
>>> print(‘ab\tc’)
ab c
>>> print(‘abc\t’)
abc
“`

そしてクォートを文字として使いたい場合も、\が必要。

“`py
>>> testimonyb = “\”I did nothing!\” he said. \”Not that either! Or the other thing.\””
>>> print(testimonyb)
“I did nothing!” he sai

元記事を表示

Python初心者がクイックソートを整理する

###これは備忘録です
ホントに忘れそう
#引用サイト
今回は先に整理するために拝見させていただいたサイトを紹介させていただきます

– [アルゴリズム参考](https://qiita.com/muijp/items/257e8b9b49d891137d56)
– [トレース参考](https://www.suzu6.net/posts/68-quicksort/)

それぞれ少しだけアルゴリズム自体が違いますが同じクイックソートなので@muijpさんのアルゴリズムを元に整理させていただきます

#プログラム
[@muijpさんのクイックソート](https://qiita.com/muijp/items/257e8b9b49d891137d56#%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88-quick-sort)に先日@shiracamusさんからアドバイスをいただいたランダム配列のプログラムとデバッグ用の出力を入れました

“`q_sort.py
def qSort(a):
print(a

元記事を表示

ゼロから始めるLeetCode Day58 「20. Valid Parentheses」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

python3での競プロの標準入力部分のテンプレートらしきもの

#初めに
最近、自分のスキルアップのためにAtCoderで競技プログラミングを始めてみました。
正直、周りのつよつよエンジニアの解く速度に圧倒されていますが、少しずつ解けるようになってきて楽しいです。

始めたての時にまず詰まるのが、与えられたデータの入力をどう処理するかです。
初心者用の問題でよくあるのが、整数の入力だったり、N個の数値が入力されたり…。
Pythonを使っている側からすると、正直あんまり標準入力とか使わないんですよね(私だけではないですよね…?)
そこで、最初の入力系でよく使う個人的なテンプレートみたいなのをまとめたいと思います。

#Pythonでの標準入力
私が実際に使っているのは、sys.stdin.readline()で、一行ずつ読み込んでくれます。
改行コードも読み込みますが、使いやすいので使っています。
事前にinputにsys.stdin.readlineを代入しておくと、input()だけで使えるので便利です。
このinputでは、文字列が得られます。

“`python:input.py
import sys

input = sys.s

元記事を表示

Docker-Compose&Python3.6+NGINX+MariaDB10+uWSGIのDjango環境構築におけるMigrationエラー対処法について

“Docker-ComposeでPython3.6+NGINX+MariaDB10+uWSGIのDjango環境欲張りセット”のおまけ。
https://qiita.com/NickelCreate/items/bed3dc9d088b57127ba7

@NickelCreate ++

環境
– Python 3.6.10
– Django 3.0.7

# トラブル発生

つらつらと環境欲張りセットを実行していくと、マイグレーションコマンド実行でバージョン互換エラーが発生。

> docker-compose run web ./manage.py makemigrations

`django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.`

モジュールを確認すると、以下のような構成(バージョンは最新版を当てたい)

“` requirements.txt
django
djangorestframework
django-filt

元記事を表示

ラズベリーパイZERO-WHの監視カメラを動かすための環境構築作業

# はじめに

前々回からQiitaにて監視カメラの記事を投稿しています。
監視カメラをもう一つ構築するので、環境構築についてもすこしまとめてみました。

## 1) 準備するもの

* Raspberry Pi Zero WH
* microSD カード(32GB、16GBでもOK)

## 2) 設定する前に必要なもの

設定作業を行う上で必要な周辺機器です。

* PC(windows or mac) OSのダウンロードやmicroSDカードの作成ほか
* USB2.0のハブ(USB2.0-microUSB変換アダプタが必要)
* USB マウス(USBハブに接続)
* USB キーボード(USBハブに接続)
* HDMI接続できるモニタ(接続ケーブルが必要。HDMI-miniHDMIケーブルもしくはminiHDMIに変換できるアダプタが必要
* マイクロUSB電源アダプタ
* USBのSDカードリーダ(MicroSDカードの場合はSD用のアダプタが必要)。PCに接続します。

# OSのイメージをmicroSDに作成する。

1. microSDカードをWin

元記事を表示

Pythonによる.txtファイルの読み込み

paizaラーニングの環境でPythonの基礎をひと通り勉強した後にAtomに移行したら標準入力ができないことに困惑してしまい、どうしたら外部からのデータを読み込めるか調べた時のまとめです。
初心者の自分用にまとめたものなので間違いなどあったら教えてくださると幸いです。

以下のサイトを参考にさせていただきました。
**note.nkmk.me**様
– [Pythonでカレントディレクトリを取得、変更(移動)](https://note.nkmk.me/python-os-getcwd-chdir/)
– [Pythonでファイルの読み込み、書き込み(作成・追記)](https://note.nkmk.me/python-file-io-open-with/)
**crukky**様
– [atom・pythonで競技プログラミングのテスト環境構築](https://qiita.com/crukky/items/73c1322f5929b1ca5834)
##カレントディレクトリを取得してパスをつなげる
“`python:pass.py
import os
path = os.ge

元記事を表示

いまさらPython3(その他)

# はじめに
自分用のPython3として基本的な制御構造とデータ構造以外の文法を記載する。正確性より実用性を重視する。
(Javaや.NETを主に使ってる自分が、Pythonを使うためのページです)

制御構造は[いまさらPython3(制御構造編)](https://qiita.com/hos20r1/items/acd331c36403b96b5a1b)
データ構造は[いまさらPython3(データ構造編)](https://qiita.com/hos20r1/items/3326bdf6b4d2d75e33c0)

# モジュール
## import文
“`
(1) import モジュール名 as 別名
(2) from モジュール名 import 定義名 as 別名, 定義名 as 別名
 ※定義名は、クラス名、関数名、変数名など
“`
“`py:importの例
import math as m
from math import pi

print( m.pi )
print( pi )
“`
(1)は、モジュールをインポートし、モジュール名.定義名で利用する。

元記事を表示

subprocessでPATHが必要な外部プログラムを動かす時,実行エラー

# 結論
PATHが通ってないと動かない様なプログラムをsubprocessから実行するにはshell=Trueが必要?

# やりたかったこと
pythonからfortranのプログラムを動かしたかった.
具体的にはこんな感じのものを副次的に呼び出す.
“`subprocess.run(‘./hoge.out’)“`

# 動かしてみると
– 正常に動作してくれない…
– 出力を見てみるとifort(コンパイラ)がfile not foundうんたらかんたら
– PATHが通ってない時によくみる症状
– シェルから動かすと普通に動くのでPATHは通っているはず…
– 試しに副次的じゃなく直接叩くpythonプログラムを書いてみても動いた…

# 原因
“`subprocess.run([‘echo’ ‘$PATH’])“`
とすると
“`$PATH“`
とそのまま返ってきて何も参照していないのが原因?
調べてみるとこんな記述が…
>「PATHを参照したかったらshell=Trueにしろよ!」
>- [stackoverrunより](https://stac

元記事を表示

電力使用量予測 with Keras (TensorFlow)

# はじめに

これまで電力需要予測という言葉を使って何度も扱ってきたテーマですが、今年の5月のデータがとても特徴的だったので再度記事を書いてみます。

[過去の記事]
– [機械学習で電力需要予測をしてみる](https://qiita.com/mix_dvd/items/2938b162610a3b23d630)
– [機械学習で電力需要を予測してみる パート2](https://qiita.com/mix_dvd/items/1f96f5202614dbea93e0)
– [Chainerで電力使用量予測](https://qiita.com/mix_dvd/items/cf625bbb447797afa063)
– [TensorFlowで電力使用量予測 with Keras](https://qiita.com/mix_dvd/items/ecfa6f0038e39cdce57e)

# 動作環境

– [Colaboratory](https://colab.research.google.com/)
– Python 3.6.9
– Pandas 1.0.4
– Nump

元記事を表示

1行でじゃんけんゲームをつくる(python)

python3.8+ onlyです
# コード

“`python
print(“a|b|c”*-~-((a:=input(“a:パー\nb:チョキ\nc:グー\n”))in”abc”)or”Draw”*((b:=__import__(“random”).choice(“abc”))==a)or”You “+”lwoisne”[b+a in”abbcca”::2],f”\nyou:{a} pc:{b}”)
“`

185Byteです

# 解説

最初に言っとくと多分もっと短くできると思います…

まあわかりやすくすると

“`python
import random

a = input(“a:パー\nb:チョキ\nc:グー”)
b = random.choice(“abc”)
if -~-(a in “abc”):
print(“a|b|c”)
elif a == b:
print(“Draw”)
else:
print(“win” if b+a in “abbcca” else “lose”)
print(f”you:{a} pc:{b}”)
`

元記事を表示

OTHERカテゴリの最新記事