spike trainのファイルを読み込む
spike時刻がneuronごとに";"区切りで, 縦に並んで記録されている時にデータを読み込む
def load_data(filepath, format="list"): """ ;区切りのデータをnumpyで扱える形に読み込む データはlistでここの要素はspike time """ with open(filepath, "r") as f: lines = f.read() lines = lines.split(";") N_neuron = len(lines) - 1 # 最後は\nだけのデータのため print("neuron数は{}".format(N_neuron)) spikes = [] for index in range(N_neuron): spikes.append(np.array([x for x in lines[index].split("\n") if x], dtype=np.float64)) #print("Neuron {}-th spikes count : {}".format(index, len(spikes[index])) # , end="") print("load {} neurons".format(index)) if format=="ndarray": # listではなく, [neuron番号, spike time]のarrayにする # spike timeの順番にはしない spiketrain = [] # spiketrainにspike timeを入れていく for i in range(N_neuron): # iをスパイクの数分だけ並べただけ indexes = [i for _ in range(len(spikes[i]))] spiketrain.append(np.vstack([indexes, spikes[i]]).T) spiketrain = np.vstack(spiketrain) return spiketrain