2016-10-25 48 views
-1

我試圖理解一個Python代碼,代碼的特定行困擾了我一下:`np.average()`格式選項

mean = np.average(data[:,index]) 

我明白,這是一個平均計算data早在上面聲明,但[:,index]表明什麼? 如果此問題重複,我表示歉意,但請在標記之前將其鏈接到我的解決方案。這是我接觸Python的第一天,請原諒我的無知。感謝您的任何建議!下面
原代碼

data = np.genfromtxt(args.inputfile) 

def doBlocking(data,index): 
ndata = data.shape[0]  
ncols = data.shape[1]-1 
#things unimportant 
mean = np.average(data[:,index]) 
#more unimportance 
+0

對投票給我的人來說:對於有經驗的Python用戶來說這可能是一個微不足道的問題,但我已經清楚地說明這是我的第一個接觸Python,以及你在這裏做出的貢獻是什麼?那些試圖在這裏幫助的人至少值得信任,請尊重! –

回答

-1

在這種情況下,data是二維numpy.arrayNumpy支持切片類似的Matlab

In [1]: import numpy as np 

In [2]: data = np.arange(15) 

In [3]: data 
Out[3]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]) 

In [4]: data = data.reshape([5,3]) 

In [5]: data 
Out[5]: 
array([[ 0, 1, 2], 
    [ 3, 4, 5], 
    [ 6, 7, 8], 
    [ 9, 10, 11], 
    [12, 13, 14]]) 

In [6]: data[:, 1] 
Out[6]: array([ 1, 4, 7, 10, 13]) 

正如你可以看到它上面的選擇

你的代碼,第二列將得到index列的平均值。它基本上是這樣說的:「計算每行數據的均值,並且列index

+0

嗨@Andrew,首先感謝您的快速回復。但我仍然不確定這個索引,在我的代碼 data = np.genfromtxt(args.inputfile) def doBlocking(data,index): ndata = data.shape [0] ncols = data。形狀[1] -1 #something不重要在這裏 mean = np.average(data [:,index]) –

+0

並且還要感謝@kameranis 上面是原始代碼的一部分,很明顯看到' data'是輸入文件的輸入,如果我的理解對我有用,這個'index'是輸入文件數據中特定的變量列,如果我錯了,請糾正我的錯誤嗎? 對不起,我通過了字符數限制,這就是爲什麼我單獨發佈,請問 –

+0

它看起來沒有適當地格式化,讓我在原始問題 –

0

據所謂切片的一部分。在你的情況下,計算二維數組的特定列的平均值(索引等於名稱爲「索引」的變量)。

+0

此外,爲了我自己的好奇心,我剛剛快速檢查了Python切片符號,在我找到的所有示例中缺少逗號「'',我不知道逗號在這種情況下會做什麼? –

+0

這是numpy軟件包的一項功能。請查看https://docs.scipy.org/doc/numpy-1.10.0/user/basics.indexing.html以獲取更詳細的解釋。 – Andrew