2015-12-14 79 views
2

我想在宾夕法尼亚州的所有压裂井上进行时间序列数据分析,当然很多这些都是0井产量的干井。我想没有它零创建列表内的每个阵列的直方图,因此每个阵列的总长度将缩水一点点如何摆脱在Python中的数组列表中的每个数组的零?

P = [data3P, data4P, data5P, data6P, data7P, data8P, data9P, data10P] 
for i in P 
N = [] 
for i in data3P: 
if i >0: 
    N.append(i) 
N 

我想我应该做一个for循环,只是不确定如何为列表中的所有数组做到这一点。我应该使用双循环吗?

+3

哪种编程语言? –

+0

它看起来是Pythonic,所以也许'P = [data3P,data4P,...]'然后'P = [我为我在P如果我> 0]' – TessellatingHeckler

+0

你有任何非工作代码分享?那些数据对象(数字,数组...)是什么?如果这是Python并且它们是数组,那么可以尝试'filter(None,P)'。 – kwinkunks

回答

0

如果你正在处理大量的数据,numpy是你的朋友。您可以创建一个遮罩数组(其中零点被遮罩),并应用常规直方图功能,例如参见this answer

+0

谢谢。我得到了“hist没有定义”,我应该导入这个库来使它工作。 –

+0

@BowenLiu你需要使用'pyplot.hist' – erip

+0

@BowenLiu,你需要将numpy导入为np。请参阅:http://docs.scipy.org/doc/numpy-1.10.0/reference/maskedarray.html。 pyplot.hist是对matplotlib的引用,而不是我正在谈论的工具。 – Benjamin

0

我不是100%肯定,如果这是你所需要的,但如果你要收集所有与NumPy阵列datanP但没有它们可能包含的零,你可以这样做:

[a[a!=0] for a in P] 

它如果你展示了其中一个输入数组的样子,以及你想从你正在处理的处理中得到什么,这将有所帮助。

+0

这是一种低效率的方式来处理numpy数组,再加上它返回一个列表,而不是一个numpy数组。 – Benjamin

+0

这不是他有一个数组列表。我无法分辨实际的输入。 – kwinkunks

相关问题