不在表中搜索相同的值

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.])

干杯

【讨论】:

以上是关于不在表中搜索相同的值的主要内容,如果未能解决你的问题,请参考以下文章

算法第二章上机实验报告

从一个表中选择 id 并从另一个表中选择它的值进行搜索

无法根据在搜索字段中输入的值显示表中的数据[关闭]

数据结构之树篇2——二叉排序(查找,搜索)树

页面搜索时SQL表中都多条相同的数据 怎么只选择序号最小的这条?

算法第二章上机实践报告