2015-12-14 75 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

相關問題