最適化の方法について考えてみると、まだ魅力的です。私は発見されたピークのリストを取り、これらのピークがどこかの値が多次元配列にあるところを見つけるこのコードセクションを持っています。次に、ゼロ配列のインデックスに+1を加えます。コードは正常に動作しますが、実行には時間がかかります。たとえば、ind
の値が270で、refVals
の形状が(3050,3130,80)の場合、実行には45分近くかかります。私はその多くのデータが乱れていることを理解していますが、これについてもっと効率的な方法がありますか?ナンシーマスキングのスピードアップ
maskData = np.zeros_like(refVals).astype(np.int16)
for peak in ind:
tmpArr = np.ma.masked_outside(refVals,x[peak]-2,x[peak]+2).astype(np.int16)
maskData[tmpArr.mask == False ] += 1
tmpArr = None
maskData = np.sum(maskData,axis=2)
になります。アプローチ1はすぐに私の記憶を拭きましたが、そうでなければいいでしょう。 #2と#3は素晴らしい作品です。抜本的な改善があります。ありがとう – nanoPhD