Cucco’s Compute Hack

コンピュータ関係の記事を書いていきます。

移動平均(numpy.convolve利用)

移動平均の関数のテスト。 numpy.convolveは、以下が想定とちょっと違ったので。 平均の範囲 戻ってくる大きさ 計算範囲と結果の数(データ数8、平均幅3) 想定 入力と出力が同じ大きさの配列 2次元配列を処理してほしい データがないところはNAN プログラ…

より大きな値の数や割合

こんな感じ。要素数で割れば、割合がわかる。 for文を回さなくていいので、numpy便利。 >>> import numpy as np >>> >>> a=np.array([71,77,80,80,89,83]) >>> b=np.sum(a>=80) >>> print(b) 4実際のところTrueを1として計算してくれている。 >>> c=a>=80 >>…

移動分散のサンプルプログラム

移動分散のサンプルプログラム プログラム import numpy as np a=np.array([71,77,80,80,89,83]) windowsize=3 for i in range(a.shape[0]-windowsize): print("print a[{0}:{1}]".format(i,i+windowsize)) np.std(a[i:i+windowsize]) 実行結果 print a[0:3]…

ujsonのインストールができない

解決方法 https://visualstudio.microsoft.com/downloads/から、下のほうにある、Build Tools for Visual Studio 2017 をダウンロード。 実行して、以下を選択してインストール ワークロードタブ Visual C++ Build Tools 個別のコンポーネントタブ VC++ 2017…

iPhoneのボイスメモをmp3にする

icloud driveにボイスメモを保存する。 PCでicloud driveにアクセスして、ファイルをPCに持ってくる。 iTunesで開く ファイルを選択した状態で、ファイルメニューから変換→MP3バージョン ファイルはC:\Users\\Music\iTunes\iTunes Media\Music\Unknown Artis…

matplotlibの日本語対応

plotに日本語を含めていると化けるので、日本語フォントを使えるようにする。 matplotlibのフォントディレクトリに対応フォントを入れて、fontlistを更新する。 事前準備 https://ipafont.ipa.go.jp/ から、フォントファイルをダウンロードする。 C:\Program…

sklearnでクラスタリング(その2)

プロットするプログラムhello_scatterもつけてみた。 import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans def hello_kmeans_demo(): X = np.array([[1, 2], [1, 4], [1, 0],[10, 2], [10, 4], [10, 0]]) """ array([[ …

sklearnでクラスタリング(その1)

データ形式がこうなっていれば、直接KMeansに渡せる。2次元データ6件分。 array([[ 1, 2], [ 1, 4], [ 1, 0], [10, 2], [10, 4], [10, 0]])以降、確認に使ったコード >>> import numpy as np >>> from sklearn.cluster import KMeans >>> X = np.array([[1, …

anacondaでTensorFlow環境の準備 その3

gpu環境向けにやったことのメモ。 conda install -c anaconda cudnn conda install -c anaconda cudatoolkit pip install tensorflow-gpu 確認方法。TureならOK. import tensorflow print(tensorflow.test.is_built_with_cuda())

anacondaでTensorFlow環境の準備 その2

VS Codeを使っているので、デバッグとかのための手続き。 Pythonのパスを書き換えればよいらしい。フォルダごととか、ワークスペースごととか設定がありそう。 "python.pythonPath": "C:\\Users\\Cucco\\AppData\\Local\\Continuum\\anaconda3\\envs\\tensor…

anacondaでTensorFlow環境の準備

何が起きているかわからないが以下で成功した。 (base) C:\>conda create -n tensorflow_gpuenv tensorflow-gpuいろいろインストールしていい?と質問があるのでyを回答。以上で使えました。環境を使うときのおまじないは以下。 # To activate this environm…

python開発環境初期設定

作りかけ。gitのインストールと設定 git CMDで以下を実行 git config --global user.name "First-name Family-name" git config --global user.email "username@example.com"anacondaインストール インストーラが連携して、VSCodeを入れてくれる。PythoPath…

複数ファイルを連続して読むプログラム

複数に分割されたファイルを決まった順番で、連続して読む。 csv.readerっぽく。forで1行ずつ読めるようにイテレータとして実装。 import csv class MyIterator(object): def __init__(self, readFileNames, skipHeader=False): self.readFileNames = readFi…

Neural Network Consoleによる学習済みニューラルネットワークの利用

環境構築 ベースはanaconda。nnablaがなく、importに失敗するのでパッケージ追加しました。以下のコマンドを管理者で開いたコンソールで実行。 pip install ipykernel pip install nnabla事前にpip自体の更新が必要な場合もあり。 python -m pip install --u…

時刻ちょうどに実行する その3

5秒に1回のタスクAと、15秒に1回のタスクBがある。 タスク自体は、マルチプロセスで動く。 タスクの実行中は、メインプロセスはある作業を実施できない。 タスクAまたはタスクBを実行した場合は、メインタスクを1回だけ実行する。 import multiprocessing im…

時刻ちょうどに実行する その2

マルチプロセス版の時刻ちょうどに実行する 2秒ごとと5秒ごとに実行する。ただし開始は0秒から。 import multiprocessing import datetime import time class Worker(multiprocessing.Process): def __init__(self,queue,interval=5): self.interval=interva…

sqliteをインメモリで使ってみた

やりたいことは以下。全部できた。 インメモリDBは早い。 インメモリで動かす 日付、日時を格納する 日時、日時の新しいN件だけをDB内に維持する 日付、日時の新しいM件を取り出す ソースコード import sqlite3 import time import datetime start=time.time…

リングバッファと計算

# -*- coding: utf-8 -*- class RingBuffer(): def __init__(self,bufferSize): self.size = bufferSize self.pc= 0 #次に使うバッファの番号 self.data=[None]*self.size #固定長さのリスト self.valid=False #リングバッファがいっぱいになったらTrueにす…

multiprocessingのサンプルコード

multiprocessingのサンプルコード。 マルチコア処理してほしい&処理には共通の情報を利用する、という条件あり。 メンバ変数の書き換えは、returnには反映されるが、実行のたびに1に戻っている感じ。 # -*- coding: utf-8 -*- from multiprocessing import …

Threadを使うときの"TypeError: function1() got multiple values for argument 'arg1'"

threading.Threadを使って引数持つ関数を実行すると、以下のようなエラーになることがある。 run()に直接関数を記述せず、すでにある関数をrun()の中で実行しようとすると起きる。 "TypeError: function1() got multiple values for argument 'arg1'" 原因は…

時刻ちょうどに実行する

プログラム # -*- coding: utf-8 -*- import threading import datetime from time import sleep """ 1秒ごとに交互に実行する。 時刻は現在時刻を取得して、1/100秒単位くらいでx秒ちょうどに開始したい。 →時刻取得の関数が重たいのか、精度が出ているかど…

ファイルの最後の1行を読む

ファイルの最後の1行を読みたい時。 # -*- coding: utf-8 file_name="some_file.csv" with open(file_name,'r') as f: num_lines = sum(1 for line in f) f.seek(0) for line in range(0, num_lines-1): f.readline() line = f.readline() print(line)

QueueをつかったPython マルチスレッド

マルチスレッドのテストプログラム。 Listをもらって、加算して、結果をグローバルのリストに書き込む。 import threading import queue import time commonList=[] q=queue.Queue() def worker(): """ マルチスレッドで走らせる関数 Queueからデータをもら…

DBに特定のデータがあるかどうかを確認する

DB内にデータがあるかどうか確認する。 あった時は更新(update)、なかった時は挿入(insert)するように処理すればよい。cur.execute(sql,data)に渡した時にSQL文がうまく展開されない?問題で困った。 # -*- coding: utf-8 import mysql.connector import dat…

pythonのunittestのコード

ちょっと前に書いた記事compute-cucco.hatenablog.comのテストコード。というか抽象クラスは関係ないので、ただのテストコード。 raiseに対するテストコードの書き方が分からない。。。 # -*- coding: utf-8 -*- import unittest import movingCalcs from mo…

Jenkinsのインストール(CentOS on raspberry pi3)

インストール手順は以下にアリ。 RedHat Repository for Jenkins追記:Javaがない、といってJenkinsの起動に失敗します。動作確認はまた後日。 # sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo: wget…

Raspberry Pi3にCentOS

CentOSが入るらしいのでやってみた。 wi-fiのドライバを別途ダウンロードする必要があるので、Raspberry Pi3に有線LANが必要。 ダウンロード Download CentOSMore download choicesへ。 http://wiki.centos.org/DownloadAltArch Releasesの中に、RaspberryPi…

Abstract Base Classのテスト

Abstract Base Classのテスト。 メソッド名が同じで、引数が異なるオブジェクトの生成と実行のサンプルです。 メソッド名を共通で固定したいので、Abstract Base Classを使ってみました。変数名にnameを使っていたら、「TypeError: 'str' object is not call…

Failed to create session. CUDA_ERROR_INVALID_DEVICE

古いGPUがついていると、こんなエラーになることがある。 $cd /usr/local/lib/python3.5/dist-packages/tensorflow/models/image/mnist $/usr/local/lib/python3.5/dist-packages/tensorflow/models/image/mnist$ python3 convolutional.py I tensorflow/str…

CUCA Toolkitのインストール (network deb)

Ubuntu 16.04にCUCA Toolkitのインストールした時のメモ。 CUDA ToolkitCUDA 8.0 Downloads https://developer.nvidia.com/cuda-downloadsSelect Target Platformから Operating System:Linux Architecture:x86_64 Distribution:Ubuntu Version:16.04Install…