- 论坛徽章:
- 4
|
回复 1# 瑞安3980
给写了段code,你以后可以只更换传入的函数来对于list in list的数值的计算了。
比如:你自己再写个stdev等等。- # do not apply to empty list, it will result exception
- mean = lambda x: sum(x) * 1.0 / len(x)
- median = lambda x: sorted(x)[len(x) / 2] if len(x) % 2 == 1 else (sorted(x)[len(x) / 2 - 1] + sorted(x)[len(x) / 2]) / 2.0
- def MatrixCalc(data, function, byRow=True):
- """
- """
- if byRow: # By Column
- return map(function, data)
- else: # By Column
- return map(function, map(list, zip(*data)))
- def main():
- data = [[1, 2, 3, 10], [2, 3, 4, 5], [3, 3, 9, 100]]
- print MatrixCalc(data, mean, True)
- print MatrixCalc(data, median, True)
- print MatrixCalc(data, mean, False)
- print MatrixCalc(data, median, False)
- if __name__ == "__main__":
- main()
复制代码 |
|