Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

numpy

loadtxtでcsvから指定した列のデータを読み込む【python3, numpy, matplotlib】

過去記事 coffee-guhaw.hateblo.jp loadtxtでcsvから指定した列のデータを読み込む サンプルコード import numpy as np fname="hoge.csv" a = np.loadtxt(fname, delimiter=",", dtype="unicode", skiprows=1, usecols=[0, 3, 4]) 説明 今回は、いつもやって…

【pandas】numpyのデータをDataFrameに整形し直す

pandas.DataFrameの作り方あれこれ #Python - Qiitaここに色々と載ってる個人的にやりやすいな・・・と思ったのは、 import pandas as pd d = {"x": [1, 3], "y": [2, 4]} pd.DataFrame(d) の方法pandas.DataFrame, Seriesを辞書に変換(to_dict) | note.nk…

【numpy】複数のテキストデータを読み込んで1つのndarrayにまとめたい、2つのarrayを結合する

こんな感じのテキストデータがあって、これを読み込む 1 21 2 22 3 23 4 24 5 25 2列目のみ解析に使う、2列目のみ使うので1列目は捨てる import numpy as np fname="hoge.txt" a = (np.loadtxt(fname, unpack=True))[1] unpackのオプションがなんで必要かは…

【python3, numpy】arrayの文字列を別の型に変換する + csvを読み込み

python - How to convert an array of strings to an array of floats in numpy? - Stack Overflow サンプルコード import numpy as np fname="hoge.txt" a = np.loadtxt(fname, unpack=True, dtype=str) y = a["x"].astype(np.float) >|python| hoge.txtと…

【python3】loadtxtでcsvファイルを読み込む + %をコメントアウトとして指定

import numpy as np fname="hoge.txt" a = np.loadtxt(fname, delimiter=",", unpack=True, comments="%") comments="%"でOK ランキング参加中です ↓クリックしていただけると嬉しいです〜ランキング参加中Python ランキング参加中HTML ランキング参加中Mac

【numpy】ndarrayで複数の条件を満たす要素のみをフィルターしたい

hogeというarrayがあるとする このarrayの要素が1以上かつ10以下のものだけを解析に使いたいとすると・・・hoge[(1 <= hoge) & (hoge <= 10)]&の代わりにandではダメ 条件式を()で囲わないとダメ ランキング参加中です ↓クリックしていただけると嬉しいです…

【numpy, python3】あるarrayを別のarrayのソート順に従ってソートする(argsort)

実際使うことはなかったけど、今後必要な気もするのでメモ2つのarrayがある、例えばxとyとするxはデータのindex相当のもので、順番がぐちゃぐちゃになってる yはデータの値 xをソートするときに、yの順番も同時に同じようにソートしてほしい■ 参考 : argsort…

【numpy, python3】arrayからある範囲のデータ以外を取り出して別のarrayを作る

■ 参考 : Numpyで特定のindex以外を抽出する方法■ 参考 : Numpy で特定のインデックス以外の要素を取り出すarrというndarrayに条件を掛けて、条件を満たす成分をarrから抜いて、別のarrayを作成する 例えば、arrの中身がx0より大きいものだけ取り除きたいと…

【python3, numpy】文字列ndarrayからあるキーワードを含んだ要素を検索する(numpy.char.find)

ndarrayに文字列のリストが詰まっている その文字列の中にあるキーフレーズが含まれているかどうかを検索して、そのindexを取得して、 その文字列を取り出し、必要な部分のみ切り出したい最初は1度リストに変換してから、inを使って判定してたけど ndarrayの…

【matplotlib】1度プロットした図にlegendを追加したいとき

■ 過去記事 : matplotlibの凡例(legend)レイアウト関連メモmatplotlibでプロットするときにlabel="aaa"と書いて、ax.legend() みたいにlegend機能をオンにすると 最初から図にlegendを付けられる# ↑のリンクからお借りしたimport matplotlib.pyplot as plt…

【python3, numpy】1次元のndarrayをある短い区間ごとに最大値を求めたい

ndarrayなことを活用しつつ、最大限高速で処理を終わらせたいndarrayを区間ごとに分割するのはnp.splitを使えばいい 割り切れない場合は、numpy.array_split()を使うとndarrayをできるだけ等分割で分割できる numpy.split()は等分割■ 参考 : NumPy配列ndarra…

【scipy】でSOS形式のIIRフィルターの周波数応答を見たい

IIRフィルターについてはscipyのドキュメントが詳しいのでそちらを一読がおすすめ■ 参考 : Signal Processing with SciPy: Linear Filters(Warren Weckesser)IIRフィルターには3つの表し方の形式がある ・伝達関数 ・zero, pole, gain(ZPK方式) ・second ord…

【matplotlib】histogram関数でbin化したデータを使ってプロットしたい

import random import numpy as np import matplotlib.pyplot as plt a = [random.random() for i in range(100)] val1, base1 = np.histogram(a, bins=100, range=(0.4, 0.8)) みたいな感じでヒストグラムを作る val1とbase1にはヒストグラムのあるビンのサ…

【numpy, python3】文字列を入れたarrayで、文字列の検索をしたい

今のところやり方が見つかっていないarrayじゃなくてリストだと部分内包表記で書くことができる[c_match for c_match in c_list if "hoge" in c_match] [c_match for c_match in c_list if "hoge" == c_match]とかもしリストの要素数が多い場合は、numpyのar…

【matplotlib】1から0に変化する累積分布(cdf)を書く

普通の累積分布はy軸は0から1に向かって増えていく 今回は1から0に向かって減っていく累積分布を書く あと、縦軸を0~1の範囲に収まるように規格化する必要がある import matplotlib.pyplot as plt import numpy as np val1, base1 = np.histogram(input1, bi…

【python3】データがy=0と交差する点を検出する(zero-cross detection)

sin波の位相と振幅を調べる必要があった 振幅はsin波のmaxを調べればいい →np.argmaxを使えばOK位相はzero crossする時刻から割り出せばよいのかな?と思った ひとまず、zero crossするindexを割り出す方法を調べてみた■ 参考 : Efficiently detect sign-cha…

【python3】numpyの便利関数メモ、リストの分割

numpy.argmax numpyのarrayの中から最大値になってるindexを返してくれる使い方例 : datasetというarrayのうち、i_beg からi_endの要素の中から最大値を見つけたい 返ってくるindexはi_begから何番目かなので、最後にそれにi_begを足す i_max = numpy.argmax…

【python3】numpy arrayが2次元リストか1次元のリストか判定したい

dataというnumpy arrayがあったとして、それが2次元リストか1次元リストか知りたい # 1次元だけの空のarray data = [] # 1次元のarray data = [1, 2, 3] # 2次元のarray data = [[1, 2, 3], [4, 5, 6]] これらを区別したい - そのために len(data) data.shap…

【python3, matplotlib】プロットのx軸を日付にしたい + 日付データをcsvから読み込む

まずはcsvから日付の部分を読み込む 日付データは 2022/03/28 というフォーマットになっている これをdatetime型で読み込めば良さそうだけど、他の部分が実数で読み込まないといけないのでこういう実装にしてるデータを読み込んで文字列にする ↓ / を - に置…