- 論壇徽章:
- 4
|
回復(fù) 1# 瑞安3980
給寫了段code,你以后可以只更換傳入的函數(shù)來(lái)對(duì)于list in list的數(shù)值的計(jì)算了。
比如:你自己再寫個(gè)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()
復(fù)制代碼 |
|