0

配列リストから a から b までの範囲の要素を削除する際に問題が発生しています。オンラインで検索したソリューションは、個々の要素、隣接する要素、または整数の要素に対してのみ機能するようです。浮動小数点数を扱っています。

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)

ただし、コンソールで次のように表示されます。これは、整数ではなく浮動小数点数を減算しているため、整数を扱う場合に行うことになる削除ではなく、文字通り減算するためです。

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.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.7、4.7、4.7、 4.8、4.9]

temp_select: [ 0.1 0.2]

genx(after subtracted): [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, 2.1000000000000001, 3.1000000000000001, 3.7000000000000002 、4.5]

4

2 に答える 2

1

私はこれをテストしませんでしたが、次のようなことができるはずです:

self.genx = [ item for item in self.genx if not range_min < item < range_max ]
于 2013-10-13T19:26:24.820 に答える
0
self.genx = [ item for item in self.genx if not range_min <= item <= range_max ]

これは、あなたの望むことですか??

于 2016-07-28T08:07:24.750 に答える