Python 识别x数组索引的范围,以将对应的y数组值设置为零

Python 识别x数组索引的范围,以将对应的y数组值设置为零,python,arrays,numpy,indices,Python,Arrays,Numpy,Indices,假设我有t和y数组中的数据。我想确定t=0.5到t=1.5和t=3到t=4之间的数组元素索引,以便将相应的y值设置为零,并将其放入ynew数组中。我在将索引放入空数组tnew时遇到了问题,因为我只得到了[]的输出 有什么想法吗 我想最终绘制ynew与tnew。您的问题在于: for index, item in enumerate(t): tnew = [] # put index values here if item > 0.5 and item < 1.5:

假设我有t和y数组中的数据。我想确定t=0.5到t=1.5和t=3到t=4之间的数组元素索引,以便将相应的y值设置为零,并将其放入ynew数组中。我在将索引放入空数组tnew时遇到了问题,因为我只得到了[]的输出

有什么想法吗

我想最终绘制ynew与tnew。

您的问题在于:

for index, item in enumerate(t):
    tnew = [] # put index values here
    if item > 0.5 and item < 1.5:
        tnew.append(index)
        #print (index, item)
    elif item > 3 and item < 4:
        tnew.append(index)
或列表:

tnew = [index for index, item in enumerate(t) 
        if (0.5 < item < 1.5) or (3 < item < 4)]
你的问题是:

for index, item in enumerate(t):
    tnew = [] # put index values here
    if item > 0.5 and item < 1.5:
        tnew.append(index)
        #print (index, item)
    elif item > 3 and item < 4:
        tnew.append(index)
或列表:

tnew = [index for index, item in enumerate(t) 
        if (0.5 < item < 1.5) or (3 < item < 4)]

您只需要使用numpy的布尔索引


添加这一行:y[t>0.5&t3&t您只需要使用numpy的布尔索引


添加这一行:y[t>0.5&t3&tSo我如何将相应的y值设置为零?对于tnew中的I和y[I],这不仅仅是一件小事=0。请更清楚地说明您想要的内容;ynew不是全部为零,长度与tnew相同吗?也许可以为您的问题添加一个较短的输入和示例输出。对不起,我想确定相应的y数组值-索引在tnew中指定。然后我想将这些y值设置为0。这个新数组将被称为ynew。这是cl吗EAER?那么ynew中的值是从y的相应索引中提取出来的,之后它们在y中被设置为零?正确。另外,请参见CT Zhu的答案。那么我如何将相应的y值设置为零呢?对于I在tnew中:和y[I],这不仅仅是一件小事=0。请更清楚地说明您想要的内容;ynew不是全部为零,长度与tnew相同吗?也许可以为您的问题添加一个较短的输入和示例输出。对不起,我想确定相应的y数组值-索引在tnew中指定。然后我想将这些y值设置为0。这个新数组将被称为ynew。这是cl吗因此,ynew中的值是从y的相应索引中提取的,之后它们在y中被设置为零?正确。另外,请参见朱克强的答案。