Python 在一个数组中平均每2个数据点创建一个新数组
我试图取数组中每2个值的平均值,并将新数据存储在新数组中 这是我所能做到的:Python 在一个数组中平均每2个数据点创建一个新数组,python,arrays,numpy,Python,Arrays,Numpy,我试图取数组中每2个值的平均值,并将新数据存储在新数组中 这是我所能做到的: y1 = np.array([1,2,3,4,5,6,7,8,9,10]) avgy = [0]*(len(y1)//2) for i in range (0, len(y1)-1): if (2*(1+i)<=len(y1)): avgy[i] = ( y1[i+2[i]] + y1[2+2*i] )/2 print(avgy) y1=np.数组([1,2,3,4,5,6,7,8
y1 = np.array([1,2,3,4,5,6,7,8,9,10])
avgy = [0]*(len(y1)//2)
for i in range (0, len(y1)-1):
if (2*(1+i)<=len(y1)):
avgy[i] = ( y1[i+2[i]] + y1[2+2*i] )/2
print(avgy)
y1=np.数组([1,2,3,4,5,6,7,8,9,10])
avgy=[0]*(len(y1)//2)
对于范围(0,len(y1)-1)内的i:
如果(2*(1+i)我认为这是一个简单的打字错误。y1[i+2[i]]+y1[2+2*i]
应该是
y1[2*i] + y1[2*i+1]
Python列表从索引0开始
如果
我认为这是一个简单的打字错误,你可能需要调整你的。y1[I+2[I]+y1[2+2*I]
应该是
y1[2*i] + y1[2*i+1]
Python列表从索引0开始
你可能需要调整你的,如果一个整洁(如果有点棘手)的方法是以创造性的方式使用切片和zip
——参见下面的控制台记录
#输入数据。
>>>y1=[1,2,3,4,5,6,7,8,9,10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#看看偶数和奇数。
>>>y1[::2],y1[1::2]
([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
#使用zip将这两个五人列表转换为五个两人列表。
>>>邮政编码(*(y1[::2],y1[1::2]))
[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
#对两人进行列表理解,得出平均值。
>>>[(a+b)/2.对于拉链中的(a,b)((y1[:2],y1[1::2]))
[1.5, 3.5, 5.5, 7.5, 9.5]
如果列表的长度不能被二整除,这将崩溃。一种简洁(如果有点棘手)的方法是创造性地使用切片和zip
——请参阅下面的控制台记录
y1 = [1,2,3,4,5,6,7,8,9,10]
avgy = []
for i in range(0,len(y1),2):
avgy.append((y1[i]+y1[i+1])/2)
print(avgy)
#输入数据。
>>>y1=[1,2,3,4,5,6,7,8,9,10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#看看偶数和奇数。
>>>y1[::2],y1[1::2]
([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
#使用zip将这两个五人列表转换为五个两人列表。
>>>邮政编码(*(y1[::2],y1[1::2]))
[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
#对两人进行列表理解,得出平均值。
>>>[(a+b)/2.对于拉链中的(a,b)((y1[:2],y1[1::2]))
[1.5, 3.5, 5.5, 7.5, 9.5]
如果列表的长度不能被2整除,则会崩溃
y1 = [1,2,3,4,5,6,7,8,9,10]
avgy = []
for i in range(0,len(y1),2):
avgy.append((y1[i]+y1[i+1])/2)
print(avgy)
这将给你一个平均值列表
y1 = np.array([1,2,3,4,5,6,7,8,9,10)]
avgy = ((y1 + np.roll(y1,1))/2.0)[1::2]
这将给你一个平均值列表
y1 = np.array([1,2,3,4,5,6,7,8,9,10)]
avgy = ((y1 + np.roll(y1,1))/2.0)[1::2]
编辑:此方法比使用for循环快20倍左右,比使用zip和列表理解快90倍左右
编辑:此方法比使用for循环快20倍左右,比使用zip和列表理解快90倍左右。i+2[i]
应该做什么?这就是导致错误的原因。i+2[i]
应该做什么?这就是导致错误的原因。