2016-07-20 7 views
1

私は、wave_dataと呼ばれる異なる番号を持つ配列を持っています。それは0.30000001から0.60000002の101の数字を持っています。配列から範囲を取り出す

これは私が持っているコードです:

center_wave = 450e-9 
width = 50e-9 
wavelengths = wave_data*1e-6 

range = width/2 
min = center_wave - range 
max = center_wave + range 

wavelengths = wavelengths[somevariable:somevariable] 

目標は、これら二つの数字、最小と最大の変数を持つことである、配列のうち、番号を選択するための範囲であること。しかし、私はこの時点で立ち往生しており、その方法を知らない。

答えて

4

Select by boolean mask、スライスしていない:

waverange = width/2 
wavemin = center_wave - waverange 
wavemax = center_wave + waverange 
mask = (wavelengths > wavemin) & (wavelengths <= wavemax) 
wavelengths = wavelengths[mask] 

ヒント:これは、同じ名前のPythonの組み込みコマンドをシャドウするので、変数rangemin、またはmaxに名前を付けないでください。

+0

そのヒントが重要です! – pwnsauce

+0

ありがとう!これは動作します – Ben

1

単純なリストの理解で行うことができます。

center_wave = 450e-9 
width = 50e-9 
wavelengths = wave_data*1e-6 

wave_range = width/2 
wave_min = center_wave - wave_range 
wave_max = center_wave + wave_range 

wavelengths = [x for x in wavelengths if x >= wave_min and x <= wave_max] 
+0

これも、ありがとう – Ben

関連する問題