制作一个数据分析器 class,它在初始化时将数据列表作为参数
Make a data profiler class that takes as params on the init a list of data
我需要这个 class 来包含以下仅使用 self 的方法:
- get_summary_stats: 应该计算平均值、最小值和最大值。
- min_max_scale:将数组转换为0-1值。
- score_scale:将数组转换为zscores。
我正在尝试这种方式,但没有成功,当你 运行 它顺利通过但是当我添加最后一行时它给我一个错误说 __init__() takes 1 positional argument but 2 were given
class summary_stats_class():
def __init__(self):
min_my_list = min(self)
max_my_list = max(self)
mean_my_list = sum(self)/len(self)
std_my_list = np.std(self)
def get_summary_stats(self):
print(min_my_list,max_my_list,mean_my_list)
def min_max_scale(self):
print((i - min_my_list) / (max_my_list-mean_my_list) for i in self)
def zscore_scale(self):
print((i - mean_my_list) / std_my_list for i in self)
summary_stats_class([1,2,3,4,5,6,7,8,9,10])
我试过了
1)将 list 添加到 summary_stats_class(list) 因为我在其他问题中阅读过它,以及
2) 在 __init__
块之后添加 self.list = []
最后
3)在没有任何运气的情况下向每种方法添加,*args,**kwargs,有人可以帮忙吗?提前致谢!
self
用来表示class级变量。 documentation on classes 有一些示例展示了如何使用 self
声明实例变量并在 class 方法中使用它们。
我已经更新了 class 以减轻错误:
import numpy as np
class summary_stats_class():
def __init__(self, data):
self.data = data
self.min_data = min(data)
self.max_data = max(data)
self.mean_data = sum(data) / len(data)
self.std_data = np.std(data)
def get_summary_stats(self):
return self.min_data, self.max_data, self.mean_data
def min_max_scale(self):
return [(i - self.min_data) / (self.max_data - self.min_data) for i in
self.data]
def zscore_scale(self):
return [(i - self.mean_data) / self.std_data for i in self.data]
if __name__ == "__main__":
ssc = summary_stats_class([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(ssc.get_summary_stats())
print(ssc.min_max_scale())
print(ssc.zscore_scale())
输出:
(1, 10, 5.5)
[0.0, 0.1111111111111111, 0.2222222222222222, 0.3333333333333333, 0.4444444444444444, 0.5555555555555556, 0.6666666666666666, 0.7777777777777778, 0.8888888888888888, 1.0]
[-1.5666989036012806, -1.2185435916898848, -0.8703882797784892, -0.5222329678670935, -0.17407765595569785, 0.17407765595569785, 0.5222329678670935, 0.8703882797784892, 1.2185435916898848, 1.5666989036012806]
解释:
- 我们在创建 class
summary_stats_class
的 ssc
对象时将列表作为参数传递。
- 在
summary_stats_class
的构造函数中,我们将参数列表设置为self.data
变量。
- 然后我们计算了数据的最小值、最大值和平均值,并分别设置为
self.min_data
、self.max_data
和self.mean_data
。我们将它们设置为 self
以便可以从 class. 的任何其他方法中使用这些变量
- 在
get_summary_stats
、min_max_scale
和zscore_scale
方法中,我们使用了之前使用self.VARIABLE_NAME
计算的变量。
参考文献:
我需要这个 class 来包含以下仅使用 self 的方法:
- get_summary_stats: 应该计算平均值、最小值和最大值。
- min_max_scale:将数组转换为0-1值。
- score_scale:将数组转换为zscores。
我正在尝试这种方式,但没有成功,当你 运行 它顺利通过但是当我添加最后一行时它给我一个错误说 __init__() takes 1 positional argument but 2 were given
class summary_stats_class():
def __init__(self):
min_my_list = min(self)
max_my_list = max(self)
mean_my_list = sum(self)/len(self)
std_my_list = np.std(self)
def get_summary_stats(self):
print(min_my_list,max_my_list,mean_my_list)
def min_max_scale(self):
print((i - min_my_list) / (max_my_list-mean_my_list) for i in self)
def zscore_scale(self):
print((i - mean_my_list) / std_my_list for i in self)
summary_stats_class([1,2,3,4,5,6,7,8,9,10])
我试过了
1)将 list 添加到 summary_stats_class(list) 因为我在其他问题中阅读过它,以及
2) 在 __init__
块之后添加 self.list = []
最后
3)在没有任何运气的情况下向每种方法添加,*args,**kwargs,有人可以帮忙吗?提前致谢!
self
用来表示class级变量。 documentation on classes 有一些示例展示了如何使用 self
声明实例变量并在 class 方法中使用它们。
我已经更新了 class 以减轻错误:
import numpy as np
class summary_stats_class():
def __init__(self, data):
self.data = data
self.min_data = min(data)
self.max_data = max(data)
self.mean_data = sum(data) / len(data)
self.std_data = np.std(data)
def get_summary_stats(self):
return self.min_data, self.max_data, self.mean_data
def min_max_scale(self):
return [(i - self.min_data) / (self.max_data - self.min_data) for i in
self.data]
def zscore_scale(self):
return [(i - self.mean_data) / self.std_data for i in self.data]
if __name__ == "__main__":
ssc = summary_stats_class([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(ssc.get_summary_stats())
print(ssc.min_max_scale())
print(ssc.zscore_scale())
输出:
(1, 10, 5.5)
[0.0, 0.1111111111111111, 0.2222222222222222, 0.3333333333333333, 0.4444444444444444, 0.5555555555555556, 0.6666666666666666, 0.7777777777777778, 0.8888888888888888, 1.0]
[-1.5666989036012806, -1.2185435916898848, -0.8703882797784892, -0.5222329678670935, -0.17407765595569785, 0.17407765595569785, 0.5222329678670935, 0.8703882797784892, 1.2185435916898848, 1.5666989036012806]
解释:
- 我们在创建 class
summary_stats_class
的ssc
对象时将列表作为参数传递。 - 在
summary_stats_class
的构造函数中,我们将参数列表设置为self.data
变量。 - 然后我们计算了数据的最小值、最大值和平均值,并分别设置为
self.min_data
、self.max_data
和self.mean_data
。我们将它们设置为self
以便可以从 class. 的任何其他方法中使用这些变量
- 在
get_summary_stats
、min_max_scale
和zscore_scale
方法中,我们使用了之前使用self.VARIABLE_NAME
计算的变量。
参考文献: