【发布时间】:2022-01-01 09:52:57
【问题描述】:
学校问题:
定义一个 2 参数(输入)函数,该函数将返回给定范围内元素的平均值。范围以元组形式给出。
我必须编写 2 个函数:
1 正在使用循环;
2 正在使用操作。
def mygmean(array,tuple): # Determines values inside and outside a specified range
"""
Determines values inside and outside a specified range.
"""
import numpy as np
incluided = []
excluded = []
for k in range(0, array.shape[0]):
for i in range(0, array.shape[1]):
if array[k,i] < tuple[0] or array[k,i] > tuple[-1]:
excluded.append(array[k,i])
pass
else:
incluided.append(array[k,i])
final_geomean = np.prod(incluided)**(1/len(incluided))
print(array)
print(incluided)
print(excluded)
print(final_geomean)
return(final_geomean,excluded)
编辑: 通过写作解决了第 1 部分:
def mygmean(array,t): # Determines values inside and outside a specified range
"""
Determines values inside and outside a specified range.
"""
import numpy as np
incluided = []
excluded = []
for k in range(0, array.shape[0]):
for i in range(0, array.shape[1]):
if array[k,i] < t[0] or array[k,i] > t[-1]:
excluded.append(array[k,i])
pass
else:
incluided.append(array[k,i])
final_geomean = np.prod(incluided)**(1/len(incluided))
return(final_geomean,excluded)
控制台输入:
mygmean(np.array([[2,4],[-9,3],[6,-2],[8,1],[12,8]]),(0,10)))
期望的输出:
(3.684369762785971, array([-9, -2, 12]))
【问题讨论】:
-
是
array是list(即1D)还是list的列表(即2D)? -
不要调用你的参数
tuple。这隐藏了同名的 Python 类型。也许target会更好。 -
@not_speshal 不确定您的意思。数组给出为:np.array([[2,4],[-9,3],[6,-2],[8,1],[12,8]])
-
@TimRoberts 好电话
标签: python arrays tuples spyder