У меня есть матрица numpy, которая представляет изображение, и я хочу эффективно получить массив первого элемента каждого цвета. Матрица имеет размер N x M x 3 и x 3, потому что это цвета. Я хочу суммировать все, например, красные. Пример следующий:
a = np.random.randint(1,10,(2,4,3))
a
array([[[1, 8, 8],[9, 9, 9],[4, 7, 7],[7, 1, 5]],[[3, 2, 2],[8, 5, 4],[3, 3, 5],[2, 2, 7]]])
sum_r = 0
for i in a:
for j in i:
sum_r += j[0]
print(sum_r)
37
1 + 9 + 4 + 7 + 3 + 8 + 3 + 2
37
a[:,:,0].sum() или a.sum(axis=(0,1))Я люблю тебя, правда, спасибо, мой генетический алгоритм был очень медленным, спас мою добычу.





def sumColumn(m):
return [sum(col) for col in zip(*m)]
column = 0
matrix = [[1 , 4, 5, 12],
[-5, 8, 9, 0],
[-6, 7, 11, 19]]
print("Sum of the elements in column", sumColumn(matrix)[column])
Спасибо, но я скорее искал быстрое эффективное решение, такое как [:, 0] или что-то в этом роде.
Мне нужно сделать это эффективно, потому что N и M очень велики.