2015-11-30 3 views
-2

я должен вычислить среднее значение в этой конкретной части матрицы, которая была сгенерирована со случайными числами, моя работа до сих пор:Mean конкретной части матрицы

import random as rd 
import numpy as np 

matriz= np.zeros([12, 12]) 

for i in range(0,12): 
    for j in range(0,12): 
     matriz[i,j]=rd.randint(0,10) 

Image

+1

Это не похоже, что вы * попробовали что-нибудь еще. Что вы делали, и что конкретно вас удерживает? Ошибки? (если это так, отправьте след и код). Вывод не соответствует тому, что вы ожидаете? (Если это так, покажите пример данных и вывод и т. Д.) –

+0

Я точно не знаю, как рассчитать среднее значение этой части, вот что удерживает меня –

+0

Как эта часть указана? дайте нам пример. – Tempux

ответ

0

Ваша проблема пытается подогнать алгоритм. Очевидно, что структура «отмеченного» раздела вашей матрицы четко определена, поэтому ваша проблема заключается в попытке увидеть/идентифицировать эту структуру, чтобы соответствовать ей.

То, что я вижу, является шаблоном: начиная с строки 0, вы берете столбцы от 1 до n-1, затем в строке 1 вы берете столбцы от 2 до n-2 и т. Д. Таким образом, повторно суммированием координаты для каждой строки в range(rowIndex+1, len(columns)-(rowIndex+1))

Там могут быть некоторые более изящные способы достижения этой цели, но я думаю, что это будет работать:

import random as rd 
import numpy as np 

l, w = 12, 12 # matrix has dimensions l=12, w=12 
matriz= np.zeros([l, w]) 

for i in range(l): 
    for j in range(w): 
     matriz[i,j]=rd.randint(0,10) 

vals = [] 

for i in range(int(l/2)):  # iterate through rows 0 to 4 
    for j in range(i+1, w-(i+1)): 
     vals.append(matrix[i,j]) 

# get the mean: 
print 'mean is {}'.format(sum(vals)/len(vals)) 

Примечание это, вероятно, не работает для неквадрат матрица.

Смежные вопросы