Python:如何确定列表中是否存在未知元素?

Python:如何确定列表中是否存在未知元素?,python,numpy,Python,Numpy,zero_crossings2基本上检测符号变化。 如果有0交叉点2我想将1附加到交叉点列表,否则我想将0附加到交叉点列表。 代码np.where(np.diff(np.sign(a2))[0]可以确定符号更改的索引。所以如果它返回一个结果,我想在那个特定的位置返回一个“1”,在任何地方返回一个“0”,它不会检测到符号的变化 以下是我的代码的当前状态: import numpy as np crossing_list = [] a2 = [1, 2, 1, 1, 0, -3, -4, 7, 8,

zero_crossings2
基本上检测符号变化。 如果有
0交叉点2
我想将
1
附加到交叉点列表,否则我想将
0
附加到交叉点列表。 代码
np.where(np.diff(np.sign(a2))[0]
可以确定符号更改的索引。所以如果它返回一个结果,我想在那个特定的位置返回一个“1”,在任何地方返回一个“0”,它不会检测到符号的变化

以下是我的代码的当前状态:

import numpy as np
crossing_list = []
a2 = [1, 2, 1, 1, 0, -3, -4, 7, 8, 9, 10, -2, 1, -3, 5, 6, 7, -10]
zero_crossings2 = np.where(np.diff(np.sign(a2)))[0]


for i in range(len(a2)):
    if X in zero_crossings2[i]:
        crossing_list.append('1')
    else:
        crossing_list.append('0')

crossing_list_new = np.array(crossing_list)
我遇到的问题是在if语句中,“X”是未知的,所以我不知道列表中是哪个元素

我的预期产出是:

[0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1]

要获得所需的阵列,可以执行以下操作:

a2 = [1, 2, 1, 1, 0, -3, -4, 7, 8, 9, 10, -2, 1, -3, 5, 6, 7, -10]
signs = np.sign(a2)
crossings = np.where(np.diff(signs), 1, 0)
缺少第一个零(因为第一个
交叉点的数量
对应于第一个和第二个
a2
交叉点的数量),因此您可以将其与此一起添加:

crossings = np.insert(crossings, 0, 0)

要获得所需的阵列,可以执行以下操作:

a2 = [1, 2, 1, 1, 0, -3, -4, 7, 8, 9, 10, -2, 1, -3, 5, 6, 7, -10]
signs = np.sign(a2)
crossings = np.where(np.diff(signs), 1, 0)
缺少第一个零(因为第一个
交叉点的数量
对应于第一个和第二个
a2
交叉点的数量),因此您可以将其与此一起添加:

crossings = np.insert(crossings, 0, 0)

np.where(np.diff(np.sign(a2)),1,0)
将实现这一技巧。不过,您可能希望在开头添加一个
0
。这取决于你想如何对待
0
的符号。虽然标题和正文看起来很混乱,但是
np.r_0,np.diff(np.array(a2)>=0)]
似乎可以做到这一点。
np.where(np.diff(np.sign(a2)),1,0
可以做到这一点。不过,您可能希望在开头添加一个
0
。这取决于你想如何对待
0
的符号。虽然标题和正文看起来很混乱,但
np.r\u0,np.diff(np.array(a2)>=0)]
似乎可以做到这一点。