Python 使用numpy.mean进行平均直到一个数字N
假设我有一个包含10个元素的列表Python 使用numpy.mean进行平均直到一个数字N,python,numpy,average,mean,Python,Numpy,Average,Mean,假设我有一个包含10个元素的列表 a = [1,2,3,4,5,6,7,8,9,0] 我只想取N元素的平均值,比如4,也就是说, 平均[1,2,3,4]如何使用Numpy 通常我可以迭代一个列表,但这会花费我一个额外的列表,我不想投资 文档没有提供任何信息。假设您有一个numpy数组而不是列表,只需将第一个N元素切片,然后使用mean方法 (如果你想让事情正常运行,不管它是一个列表还是一个numpy数组,使用np.mean(a[:4]),就像上面@larsmans建议的那样。) 比如说 imp
a = [1,2,3,4,5,6,7,8,9,0]
我只想取N
元素的平均值,比如4
,也就是说,
平均[1,2,3,4]
如何使用Numpy
通常我可以迭代一个列表,但这会花费我一个额外的列表,我不想投资
文档没有提供任何信息。假设您有一个numpy数组而不是列表,只需将第一个N
元素切片,然后使用mean
方法
(如果你想让事情正常运行,不管它是一个列表还是一个numpy数组,使用np.mean(a[:4])
,就像上面@larsmans建议的那样。)
比如说
import numpy as np
x = np.arange(10)
print x
print 'Mean of first 4 items in x', x[:4].mean()
对numpy数组(即y=x[:4]
进行切片不会使用numpy数组制作副本(与列表一样)。相反,它将“视图”返回到x
。这不会复制内存,因此非常有效
对numpy数组的部分进行切片和操作是一种非常常见的习惯用法。有关更多信息,请参阅文档: 如果您不想要额外的列表开销,可以编写一个简单的均值函数:
def mean_of_n(arr, n):
index = 0
current_sum = 0
n = min(n, len(arr))
while index < n:
current_sum += arr[index]
index += 1
return float(current_sum) / n
def平均值n(arr,n):
索引=0
电流和=0
n=最小值(n,len(arr))
当指数你的意思是np.mean(a[:4])
?是的。愚蠢,我错过了。