2013-10-13 51 views
0

我有問題,從數組列表中刪除範圍a到b中的元素。在線搜索的解決方案似乎只適用於單個元素,相鄰元素和或整個數字的元素。我處理浮點數。在控制檯Python:從數組列表中刪除一系列數字

self.genx = np.arange(0, 5, 0.1) 

temp_select = self.genx[1:3] #I want to remove numbers from 1 - 3 from genx 
print(temp_select) 
self.genx = list(set(self.genx)-set(temp_select)) 
print(self.genx) 
plt.plot(self.genx,self.geny) 

但是我得到以下,這是因爲IM減去浮動,而不是整數,因此從字面上減去而不是刪除這就是它會做,如果處理整數:

GENX :[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2,2.3 ,2.4,2.5,2.6,2.7,2.8,2.9 ,3.0,3.1,3.2,3.3,3.4,3.5,3.6,3.7,3.8,3.9,4.0,4.1,4.2,4.3,4.4 ,4.5,4.6,4.7 ,4.8,4.9]

temp_select:[0.1 0.2]

GENX(減去後):[0.0,0.5,2.0,3.0,4.0,1.5,1.0,1.1000000000000001,0.70000000000000007,0.90000000000000002,2.7000000000000002,0.30000000000000004,2.9000000000000004,1.9000000000000001,3.3000000000000003,0.40000000000000002 ,4.7000000000000002,3.4000000000000004,2.2000000000000002,2.8000000000000003,1.4000000000000001,0.60000000000000009,3.6000000000000001,1.3,1.2000000000000002,4.2999999999999998,4.2000000000000002,4.9000000000000004,3.9000000000000004,3.8000000000000003,2.3000000000000003,4.8000000000000007,3.2000000000000002,1.7000000000000002,2.5,3.5,1.8,4.1000000000000005,2.4000000000000004,4.4000000000000004,1.6000000000000001 ,0.80000000000000004,2.6000000000000001,4.6000000000000005,21000000000000001,3.1.1000000000000001,3.7000000000000002,4。 5]

+0

請注意,方括號'[]'用於基於* index *的訪問。 'self.genx [1:3]'表示「self.genx'的第一個和第二個元素」。這與這些指數的*價值*商店完全無關。 – MisterMiyagi

回答

0

我沒有測試這一點,但你應該能夠做到像下面這樣:

self.genx = [ item for item in self.genx if not range_min < item < range_max ] 
+0

這很好用!但它會圍繞數字。因此,如果我設置min = 2,max = 4,genx是: [0.0,0.10000000000000001,0.20000000000000001,0.30000000000000004,0.40000000000000002,0.500000000000000009,0.70000000000000007,0.80000000000000004,0.90000000000000002,1.0,1.100000000000000001,1.2000000000000002,1.3,1.4000000000000001,1.500000000000001,0.10000000000000001, 1.6000000000000001,1.7000000000000002,1.8,1.9000000000000001,2.0,4.0,4.1.100000000000000,5.42000000000000002,4.2999999999999998,4.4000000000000004,4.5,4.6000000000000005,4.7000000000000002,4.8000000000000007,4.9000000000000004] 可固定? – Potion

0
self.genx = [ item for item in self.genx if not range_min <= item <= range_max ] 

這是你想要什麼?