私は4つのnumpy配列を持っています:time_start、time_stop、time1、pressure。 time_startの各要素について、time1に最も近い値のインデックスを見つけて、圧力値を読み取る必要がありますからまでそのインデックス!ナンシースライシングとインデックス付け
同様に、time_stopの各要素について、time1に最も近い値のインデックスを見つけて、圧力値を読み取る必要があります。そのインデックスまで! (時間_とtime_stopの長さが同じ)ここで
は私が書いたものです。その後、
import numpy as np
def find_nearest(array,value):
idx = (np.abs(array-value)).argmin()
return array[idx]
と:: 機能を最も近い値を見つけるために
p = np.zeros(len(time_start), dtype = object)
itemindex_str = np.zeros(len(time_start), dtype = object)
itemindex_stp = np.zeros(len(time_start), dtype = object)
for i in range(0,len(time_start)):
itemindex_str =np.where(time1==find_nearest(time1,int(time_start[i])))
itemindex_stp = np.where(time1==find_nearest(time1,int(time_stop[i])))
p[i] = pressure[itemindex_str:itemindex_stp]
と私を得ますエラー:
Traceback (most recent call last):
File "re-written_mobility.py", line 174, in <module>
p[i] = pressure[itemindex_str:itemindex_stp]
TypeError: slice indices must be integers or None or have an __index__ method
非常にnですあなたが私にこれを解決するのを手伝ってもらえるならば、 はどうもありがとうございました:)
まず、idxを返さないのはなぜですか? 'np.where'はおそらく整数ではなく配列を返し、スライスするのがやや難しくなります。問題は、 'idx' - >' itemindex_str = find_nearest(time1、int(time_start [i])))) 'などを返すことによって回避されます。 – Uvar
あなたは正しいです。それは今解決される。どうもありがとう! :) – user8224662
喜んで助けになるために、私は答えとしてクイックフィックスを追加しました。 :) – Uvar