我有一个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'))
答案 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
中的值在特定索引位置较大,则在该位置出现火花。