不在表中搜索相同的值
Posted
技术标签:
【中文标题】不在表中搜索相同的值【英文标题】:Does not search for the same values in table 【发布时间】:2022-01-19 18:56:45 【问题描述】:我有以下问题。我正在尝试对给定的信号进行采样,并且当我每隔一段时间循环遍历信号的点时,即使数组中有这样的值,这些值也会取 0。与其他功能有相同的循环,它工作正常。
for sample in samples:
tmp_a_index = np.where(sygnal.time_samples == sample)[0][0]if sample in sygnal.time_samples else None
tmp_a = sygnal.data[tmp_a_index] if tmp_a_index is not None else 0
data.append(tmp_a)
从指定的时间间隔生成样本:
samples = np.arange(0, end_time, period)
结果:
[0. 0.2 0.4 0.6 0.8 1. 1.2 1.4 1.6 1.8 2. 2.2 2.4 2.6 2.8 3. 3.2 3.4
3.6 3.8 4. 4.2 4.4 4.6 4.8 5. 5.2 5.4 5.6 5.8 6. 6.2 6.4 6.6 6.8 7.
7.2 7.4 7.6 7.8 8. 8.2 8.4 8.6 8.8 9. 9.2 9.4 9.6 9.8]
以及来自信号的数据:
[0. 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13
0.14 0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26 0.27
0.28 0.29 0.3 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4 0.41
(...)
9.66 9.67 9.68 9.69 9.7 9.71 9.72 9.73 9.74 9.75 9.76 9.77 9.78 9.79
9.8 9.81 9.82 9.83 9.84 9.85 9.86 9.87 9.88 9.89 9.9 9.91 9.92 9.93
9.94 9.95 9.96 9.97 9.98 9.99]
图表:
我想消除 0 值处的那些点。
【问题讨论】:
如果我的答案对你有用,我会很感激你接受每个偶然发现它的人都知道它有效的答案。干杯伙伴。 【参考方案1】:只需索引您的数组,不要包含您不想要的值(例如,0
)
您可以通过以下方式进行:
a = np.array([0., 1., 2., 0., 1., 5., 0.])
a[np.argwhere(a > 0.)].flatten()
OUT: array([1., 2., 1., 5.])
干杯
【讨论】:
以上是关于不在表中搜索相同的值的主要内容,如果未能解决你的问题,请参考以下文章