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

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

ノイズ処理でnp.fft.fftにデータがうまく渡せません。教えてください。

プログラム初心者です。
windows10,python 3.8,IDLEで作っています。

脳波のノイズ処理プログラムをいろいろ組み合わせながら作成したのですが、
np.fft.fftでデータがうまく渡せていないようです。
111行目では、読み込んだ―データをfloatの配列で読み込めています。
プログラムが動作しているか確認の為に、60行から73行目まで
元の波形とそのFFT、IFFTとカット後の波形を表示するプログラムを入れております。
そのグラフをみると、元データはきちんとプロットされているのですが、FFTを見ると、
元データと同じような表示になっているためFFTがうまく動いていないように見えます。
どこを触ったら修正できるのか見当がつかなくなったので、投稿させていただきました。
参考としたプログラムは以下のサイトのものです。
https://qiita.com/ajiron/items/ca630de8b6e3ed28ad1e
https://qiita.com/spicy_HotChicken/items/83c329c4eb0ea9401fe5

“`
# – codi

元記事を表示

Pythonのf-stringsについてしっかり調べてみた

Pythonの文字列関係の制御を調べていて、f-strings(f文字列)が結構奥が深く知らないことも多かったので、別途Qiita記事にまとめておきます。

# そもそもf-stringsってなに?

Pythonで文字列の前に`f`という文字を付与し、且つ`{}`の括弧を使うことで文字列中に変数を展開したりコードを実行したりできる機能です。

以下のようなコードになります。

“`py
name = ‘タマ’
txt = f’猫の名前は{name}です。’
print(txt)
“`

“`
猫の名前はタマです。
“`

# 主な参考サイト

f-stringsについて詳しく説明がされている[PEP 498 — Literal String Interpolation](https://www.python.org/dev/peps/pep-0498/)を主に参考にします。

# 記事上で使う環境

– Windows10
– Python 3.8.0
– Jupyter(実行にはVS CodeのPython拡張機能を利用)

# f-stringsを使うと何が嬉しいのか?

元記事を表示

【備忘】Google Colaboratoryでカスタムモジュールをインポート

## 手順
**1. Google Driveをマウント**

“`python
from google.colab import drive
drive.mount(‘/content/drive’)
“`

**2. sys.pathl.append()でパスを通してインポート**

例として次のようなファイル構成だったとします。

– My Drive
– colab Notebooks
– module
– utils.py
– my_modules.py

※:「MY Drive」がGoogle Driveのルートディレクトリ

このファイル構成でカスタムモジュールをimportするには次のように`sys.path.append()`でモジュールの親ディレクトリまでのパスをシステムに伝える必要があります。

“`python
import sys
ROOT_PATH = ‘drive/My Drive/ colab Notebooks/module/’
sys.path.append(ROOT_PA

元記事を表示

K-Shape法を用いて心電図データをクラスタリングしてみた

# 本記事サマリ
K-Shape法を用いて時系列データをクラスタリングしてみる

# データセット
– 今回はカリフォルニア大学リバーサイド校の時系列データコレクション(UCR Time Series Classification Archive)を使います

– 心電図(ECG)は心疾患検出を促進するものとして知られています

– 使用する**ECGFiveDays_TRAIN.tsv**の中身は以下の通りです

“`python:DataFrame
df = pd.read_table(“ECGFiveDays_TRAIN.tsv”,header=None)
df.head(10)
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577151/e92cecd3-489c-4f95-ee10-d51564f2242a.png)

データサマリはこちら

“`python:Summary
import numpy as

元記事を表示

Pythonで文字列の”一部分”反転方法と気をつけること

#はじめに
pythonで文字列を反転するときにスライスで[::-1]をよく使いますが、
普通のスライスは“`[left:right+1:step]“` で**left

元記事を表示

ゼロから始めるLeetCode Day70 「295. Find Median from Data Stream」

# 概要

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

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

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

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

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

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

Python3で解いています。

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

前回
[ゼロから始めるLeetC

元記事を表示

製薬企業研究者がPythonのユニットテストについてまとめてみた

# はじめに

ここでは、`unittest`を用いたPythonのテストについて解説していきます。

# テストの基本

テストは、対処となる関数に対応させるように、以下のように書きます。

“`python
import unittest

def average(num1, num2):
return (num1 + num2) / 2

class AverageTests(unittest.TestCase):

def test_average(self):
actual = average(1, 2)
expected = 1.5
self.assertEqual(actual, expected)
“`

`average`という関数に対して、`AverageTests`というclassが用意され、このクラス内のメソッドとして、`test_average`が書かれています。
このように、テスト用の関数は`test_テスト対象の関数名`とすることが多いです。

# `assert`メソッド

元記事を表示

2値分類問題を解くAutoMLを自作した(その2)-学習と予測-

 その1の記事に引き続き、[自作のAutomated Machine Learning(AutoML)プログラム][1]の解説を書きます。
[1]:https://github.com/bright1998/AutoML_Binary_Classification/blob/master/AML_binary-classification.py

##【データの分割】
“`
# モデル用データの分割
X_train_eval, X_test, y_train_eval, y_test = train_test_split(X_fin_m, y_m, train_size=0.8, test_size=0.2, random_state=1)
X_train, X_eval, y_train, y_eval = train_test_split(X_train_eval, y_train_eval, train_size=0.8, test_size=0.2, random_state=1)
“`
 学習用、検証用、テスト用のデータに分割しています。今回はテスト用とし

元記事を表示

2値分類問題を解くAutoMLを自作した(その1)-特徴量選択まで-

 2値分類(Binary Classification)を解くための自作のAutomated Machine Learning(AutoML)プログラムを[Github][1]にアップしたので、その解説を書きます。機械学習を勉強しながら作成したプログラムなので、至らない点があるかもしれません。要改善点を指摘して頂けると嬉しいです。
[1]:https://github.com/bright1998/AutoML_Binary_Classification/blob/master/AML_binary-classification.py

##【経緯】
 昨年JDLAのE資格を受験しました。受験資格を得るためには認定講座を修了する必要があります。私が受講した機械学習講座の最終課題で作成したのが、上記のプログラムです。最近、業務で非常に役に立ったので、備忘録を兼ねて解説を残しておこうと思い立ちました。それにしても、思いもよらないところでE資格受験が仕事に好影響を与えたということで、嬉しい誤算です。さて、ここからが本題の解説です。

##【パラメータ】
AutoMLの中身に行く前に、実行時に

元記事を表示

Pythonスクリプトの実行

#目次

[1. シバン行](#1-シバン行)
[2. WindowsでPythonスクリプトを実行する](#2-windowsでpythonスクリプトを実行する)
[3. MacやLinuxでPythonスクリプトを実行する](#3-macやlinuxでpythonスクリプトを実行する)

##1. シバン行
このスクリプトを実行するのはPythonであることをコンピュータに伝える働きをする。
**※シバン行がなくてもIDLEからスクリプトを実行することは可能だが、コマンドラインから実行するにはシバン行が必要**

“`Windows.ver
#! python3
“`

“`Mac.ver
#! /usr/bin/env python3
“`

“`Linux.ver
#! /usr/bin/python3
“`

##2. WindowsでPythonスクリプトを実行する

Windowsでは、Pythonのインタプリタは、

– C:\\Python36\python.exe

– %HOMEPATH%\AppData\Local\Programs\Python\

元記事を表示

AtCoder beginner Contest 172

##[A – Calc](https://atcoder.jp/contests/abc172/tasks/abc172_a)

“`Python:PYthon
A = int(input())
print(A+A**2+A**3)
“`

##[B – Minor Change](https://atcoder.jp/contests/abc172/tasks/abc172_b)

“`Python:PYthon
S = input()
T = input()

c=0
for i in range(len(S)):
if S[i] != T[i]:
c+=1

print(c)
“`

##[C – Tsundoku](https://atcoder.jp/contests/abc172/tasks/abc172_c)

– 一番最初に考えるのが、貪欲法のAとBの一番上の本の読書時間を比較し小さい方を計測していく。

しかし、
4 3 200
80 1 1 1
70 70 70
みたいな入力だとWAになります。

– 累積和を使用します。
– し

元記事を表示

【2020年度版】税金と手取りの計算を全部Pythonにやらせてみる

## 概要
税金の計算って難しいですよね。
社会人になると毎年なんとなく税金やら保険料やらが引かれてますが、僕は税金について全然詳しくないのでなにがなんやらという状態です。
さらに聞いた話だと今年から控除やら所得税やらのルールが変わるみたいです。
「**退屈なことは全部Pythonにやらせよう**」とう格言(?)があるので、今回は勉強を兼ねて`Python`で税金計算用のクラスを作ってみようと思います。
ゼロからいろいろ調べながら書いたので知ってる人にとっては当たり前の説明が多いかもしれません。

## Github
`Github`に税金計算用のクラスを作ってあげました。

– https://github.com/tetsuro731/Tax

コードを書くにあたって参考にしたサイト

– https://punhundon-lifeshift.com/tax_calc_by_python

## 使い方
税金の難しい話をする前に、まずは簡単に使い方を説明しようと思います。
今回作った`Tax`クラスは`tax.py`の中で実装されています。
例として**年収500万の独身男性の

元記事を表示

Pythonでログ解析したい

各サーバーやプログラムのログを解析/集計する時に使用する関数の備蓄録です。
「Pythonでログを解析してみたい!」という方は是非参考にしてください!

# 1行を空白で区切る
splitを使用します。
splitの使用法は大きく分けて

– “`str.split()“`の様に区切り文字を指定せず、文字列strが空白区切りにされたリストを返してもらう
– “`str.split(‘区切り文字’)“`の様に区切り文字を指定し、文字列strを指定した区切り文字で区切ったリストを返してもらう

この2つの使用法があります。
前者の“`str.split()“`を使用します。
ログはタブや1文字分の空白で区切られていることが多いです。
ログの中で区切り文字が統一されていれば区切り文字を指定するのも良いのですが、残念ながら、タブと1文字分の空白の両方が混同されていることもあります。
“`str.split()“`であればタブも1文字分の空白も同じ「空白」として区切ってくれるのです。
もちろん、カンマなどで区切られている時は、“`str.split(‘区切り文字’)“`を採用

元記事を表示

tracemallocの出力をフィルタする

現在Pythonのプログラム上で、どの変数がどれくらいのメモリを確保しているのかを確認するためのモジュールとして、`tracemalloc`という標準モジュールがあります。

これを使えば例えばこんなコードを書くことで、ある処理のメモリ解放漏れを確認することができます。

“`py:tracemallocを直接呼び出すコード
import tracemalloc

tracemalloc.start()
snap1 = tracemalloc.take_snapshot()
size1 = sum([stat.size for stat in snap1.statistics(“filename”)])
for stat in snap1.statistics(‘lineno’)[:10]:
print(stat)
# … ある処理 …
snap2 = tracemalloc.take_snapshot()
size2 = sum([stat.size for stat in snap2.statistics(“filename”)])
for stat in snap2

元記事を表示

Python3 エンジニア認定基礎試験 受験記

#事前知識
Pythonを2020年1月くらいぼちぼちやっていて形が欲しかったので受験しました。
実際に集中して取り組んだのは、6月初旬からです。

#試験情報
下記サイトになりますが、オライリーの本がベースとなって出題されています。
[Pythonエンジニア認定試験](https://cbt.odyssey-com.co.jp/pythonic-exam.html)
出題情報も載っていますので、必ずチェックするべきです。

#資格勉強で使用したもの
– [スッキリPython](https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BPython%E5%85%A5%E9%96%80-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E5%9B%BD%E6%9C%AC%E5%A4%A7%E6%82%9F/dp/4295006327)
– [Pythonチュートリアル](h

元記事を表示

Raspberry Pi 4 で 5秒ごとにCPUの温度を表示させる

# はじめに
Rasberry Pi 4 を使っていると結構CPUが熱くなります.
どれくらいCPUが熱くなるのか調べたかったので,Python3を使って5秒ごとにCPUの温度を表示させるプログラムを作ってみました.

#環境
OS : Ubuntu server20.04 + Xubuntu Desktop(gdm3)

#プログラム

“`python:cpu_temperature.py
import time
import threading
import subprocess

def schedule(interval, func, wait = True):
base_time = time.time()
next_time = 0
while True:
t = threading.Thread(target = func)
t.start()
if wait:
t.join()
next_time = ((base_time – time.time())

元記事を表示

【python3.8.2】【AtCoder】AtCoder 081 B Shift-Only についての質問

AtCoder 081 B Shift-Only についての質問

【問題概要】
黒板に N 個の正の整数 A1,…,AN が書かれています。
すぬけ君は,黒板に書かれている整数がすべて偶数であるとき,次の操作を行うことができます。

黒板に書かれている整数すべてを,22 で割ったものに置き換える。
すぬけ君は最大で何回操作を行うことができるかを求めてください。

【制約】

1≤N≤200
1≤Ai≤10E9
【数値例】
1)
 N=3
 A=(16,12,24)
 答え: 2

自分の解答はpython(3.8.2)を用いて作成しました。
解答を以下に示しますが、回答を提出しても不正解と返されます。
自分のコマンドプロント上で入力した場合には正常に動作するのですが、解答が不正解となる理由がわかりません。

【自分の解答】(python(3.8.2)を使用)
![AtCoder Shift_only.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663850/8da55251-b464-3878-0

元記事を表示

【Python】投稿した全記事の閲覧数を取得する

# はじめに

[いいね順で取得する](https://qiita.com/riekure/items/166abfefed095fefe00a)記事を書いたので、その続きとして、今回は閲覧数順です。

# 動作環境

– Windows 10
– Python3.7(Anaconda)

# コードを書く前にやること

Qiita の個人用のアクセストークンを取得してください。

1. https://qiita.com/settings/applications にアクセス(Qiita にログイン済前提)
2. 画面下にある “新しいトークンを発行する“ を押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233011/4cc2f190-9996-cedd-6aff-fc44d2af85f0.png)
3. “アクセストークンの説明“ には使用用途などを入力、 “スコープ“ は “read_qiita“ を選択した状態で、“発行する“ を押す。
![image

元記事を表示

ファイルの読み書き

##ファイルの読み書き
###osモジュール
####各OSに対応したパスを文字列として返す

“`python.py
import os
os.path.join(‘usr’, ‘bin’, ‘spam’)
“`

“`result.
‘usr\\bin\\spam’
“`
※今回はWindows環境であり、文字列の中では\をエスケープする必要があるためこのような出力結果になっている

“`python.py
my_files = [‘accounts.txt’, ‘datalist.csv’, ‘invite.docx’]
for filename in my_files:
print(os.path.join(‘C:\\Users\\aswegart’, filename))
“`

“`result.
C:\Users\aswegart\accounts.txt
C:\Users\aswegart\datalist.csv
C:\Users\aswegart\invite.docx
“`

#####カレントディレクトリのパスを取得する

“`pyth

元記事を表示

Pycharm への pypy 導入手順【競プロ】

# はじめに
趣味の競技プログラミング用に IDE として Pycharm を愛用しています。
特にコード補完、ライブテンプレート、Vim エミュレーターが気に入っています。

今回は、ローカル環境でのコードテスト実行のために pypy を導入するにあたり、
やや手間取ったので手順を共有します。

# 実行環境
 OS:Windows 10 Pro (64 bit)
 Pycharm:2020.1 (Community edition)

# 手順 1: pypy インストールモジュールの入手
公式サイトから各環境におけるインストールモジュールを入手します。

 https://www.pypy.org/download.html

本環境では以下を用いました。

 Python 3.6 compatible PyPy3.6 v7.3.1 – Windows binary (32bit)

64bit OS ですが、現在のところ問題なく使用できています。

# 手順 2: Pycharm インタープリター設定
Pycharm を起動し、メニューバー > File > Setting

元記事を表示

OTHERカテゴリの最新記事