Python中大型NumPy数组的min,max和mean

时间:2012-03-29 16:20:06

标签: python numpy max average min

我有一个非常大的NumPy数组:a = np.array。从这个数组我想得到最小值,最大值和平均值,可以使用np.min(a)np.max(a)np.mean(a)轻松完成。

但是,我还希望得到此数组的一部分(开始部分或结束部分)的最小值,最大值和平均值。如果没有创建新的数组/列表,是否有一些功能(因为这会导致性能损失)?

2 个答案:

答案 0 :(得分:7)

  

基本切片生成的所有数组始终是原始数组的视图。

http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html

所以,是的,只需使用切片。

答案 1 :(得分: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]