在numpy数组中找到很大的不同

时间:2019-06-12 18:31:05

标签: python python-3.x numpy numpy-ndarray

我有一个csv文件,其中包含来自两个led测量的数据。文件中存在一些错误,在图形中产生了巨大的火花。我想找到发生这种情况的地方。

我有这段代码可以绘制两个数组。

x625 = np.array(df['LED Group 625'].dropna(axis=0, how='all'))


x940 = np.array(df['LED Group 940'].dropna(axis=0, how='all'))

1 个答案:

答案 0 :(得分:0)

由于您尚未发布任何数据,因此我将提供一些人工数据的答案。

因此,在将pandas列转换为numpy数组之后,您可以执行以下操作:

import numpy as np

# some random data. 100 lines and 1 column
x625 = np.random.rand(100,1)

# Assume that the maximum value in `x625` is a spark.
spark = x625.max()

# Find where these spark are in the `x625` 
np.where(x625==spark)
#(array([64]), array([0]))

以上表示在第0列的第64行上有一个等于spark的值。

类似地,您可以使用np.where(x625 > any_number_here)

如果您不需要创建布尔型掩码,请使用以下命令:

boolean_mask = (x625==spark)

# verify 
np.where(boolean_mask)
# (array([64]), array([0]))

编辑1

您可以使用numpy.diff()来将所有元素的元素明智差异添加到列表中(变量)。

diffs = np.diff(x625.ravel())

这将在索引0中包含element1-element0的结果。 如果diffs中的值在特定索引位置较大,则在该位置出现火花。