2017-05-03 550 views
0

我想要計算輪廓/球的平均大小。我用arclength計算球的周長,然後找出直徑。我的問題是輪廓值不斷變化。如何設置python numpy數組大小限制

我想將直徑的前10個值輸入到np.array中,並計算用作對象大小的平均值。我是python的新手,一直在嘗試多種方法,但還沒有找到解決方案來設置大小或提取前10個數組元組。我已經嘗試拉你的第一個10使用我在範圍內。

我當前的代碼是:

def average_diam (diameter): 
    av_diameter = np.array(diameter) 
    for i in np.arange(1, len(av_diameter)): 
      for i in av_diameter >= 10: 
        average = np.mean() 
        print(average) 


perimeter = cv2.arcLength(c, True) 
diameter = perimeter/pi 
average = average_diam(diameter) 

感謝您的幫助!

+0

直徑在此情況是一個'float',所以你的'numpy'數組的長度爲1.假設它是一個數組,你可以像'for i in range(0,10:av_diameter = diameter [i]'那麼只需打印'np .mean(av_diameter)' – quantik

回答

0

假設直徑你根本就做類似

def average_diam(x): 
    av_diameter = np.zeros(10) 
    for i in range(0, 10): 
     av_diameter[i] = x[i] 
    return np.mean(av_diameter) 

average_diam(diameter) 

元素的列表你真的可以只是做了這樣的一個襯墊,而不調用函數:

average = np.mean(np.asarray(diameter[0:10]))

+0

我收到了: 'float'對象在兩種方法上都沒有屬性'__getitem__'錯誤? –

+0

然後'直徑'不是一個列表。這是一個數字。在開始扔掉它們之前,確保你知道什麼是對象/變量。 – hpaulj

+0

哦,我明白了!當我打印直徑時,數值不斷變化。所以我想通過把它們放在一個數組中它會存儲所有不同的尺寸 –