2012-03-29 1 views
2

У меня очень большой массив NumPy: a = np.array. Из этого массива я хочу получить min, max и average, которые можно легко сделать с помощью np.min(a), np.max(a) и np.mean(a).мин, макс и среднее по большим массивам NumPy в Python

Однако, я хочу также иметь мин, макс и среднее значение части (начальную часть или конечную часть) этого массива. Существуют ли какие-то функции для этого без создания нового массива/списка (потому что это действительно приведет к снижению производительности)?

ответ

4

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

>>> import numpy as np 
>>> arr = np.array([1,2,3,4,5]) 
>>> part = arr[1:3] # no copies here 
>>> part[:] = 22,33 
>>> print arr 
[ 1 22 33 4 5]