Python帮助--如何从1D数组中提取特定范围的值?
在python中,是否有一个命令允许我提取给定数组的特定子集 例如,假设我有以下1D数组:Python帮助--如何从1D数组中提取特定范围的值?,python,arrays,Python,Arrays,在python中,是否有一个命令允许我提取给定数组的特定子集 例如,假设我有以下1D数组: x = np.array([1,0,35,9,1,23,10,2,4,8,3]) 如何获得2到10之间的唯一元素?因此,我希望输出类似于: subx = [9,2,4,8,3] 我只是想澄清一下,我不想要指数。我只需要这些值。其中一种方法是使用列表理解 注:含2为下限,不含10为上限 x = [1,0,35,9,1,23,10,2,4,8,3] y = [c for c in x if c >=
x = np.array([1,0,35,9,1,23,10,2,4,8,3])
如何获得2到10之间的唯一元素?因此,我希望输出类似于:
subx = [9,2,4,8,3]
我只是想澄清一下,我不想要指数。我只需要这些值。其中一种方法是使用
列表理解
注:含2为下限,不含10为上限
x = [1,0,35,9,1,23,10,2,4,8,3]
y = [c for c in x if c >=2 and c<10]
方法2:
import numpy as np
x = np.array([1,0,35,9,1,23,10,2,4,8,3])
y = x[(x>=2) * (x<10)]
将numpy导入为np
x=np.数组([1,0,35,9,1,23,10,2,4,8,3])
y=x[(x>=2)*(x希望这有帮助
a=[1,0,35,9,1,23,10,2,4,8,3]
li=[]
for ele in a:
if ele in range(2,10):
li.append(ele)
print(li)
输出:
[9, 2, 4, 8, 3]
由于您使用的是numpy阵列,因此可以执行以下操作:
x[(x >= 2) & (x < 10)]
x[(x>=2)和(x<10)]
请注意,您的numpy版本没有产生所需的输出。您可以通过索引[0]来更正它
最后。您的第二个选项似乎不起作用。是否有输入错误?这不是输入错误。我在Linux机器上使用的是numpy-1.18.2
。您会遇到什么错误?我犯了一个错误。在修复它之后,您的方法似乎确实起作用。当我尝试此操作时,我会遇到以下错误:TypeError:“>=”在“列表”a的实例之间不受支持nd'int'@HelixFossil,那么你有一个列表,与你在问题中所显示的相反。你是对的。我在测试你的解决方案时很马虎。通过实际使用np.array,这个解决方案有效!
x[(x >= 2) & (x < 10)]