【发布时间】:2016-07-21 12:49:23
【问题描述】:
简单的问题,但我似乎无法让它工作。我想计算一个数字在数组列表中出现的百分比,并相应地输出这个百分比。 我有一个数组列表,如下所示:
import numpy as np
# Create some data
listvalues = []
arr1 = np.array([0, 0, 2])
arr2 = np.array([1, 1, 2, 2])
arr3 = np.array([0, 2, 2])
listvalues.append(arr1)
listvalues.append(arr2)
listvalues.append(arr3)
listvalues
>[array([0, 0, 2]), array([1, 1, 2, 2]), array([0, 2, 2])]
现在我使用集合来计算出现次数,它返回一个集合列表。计数器:
import collections
counter = []
for i in xrange(len(listvalues)):
counter.append(collections.Counter(listvalues[i]))
counter
>[Counter({0: 2, 2: 1}), Counter({1: 2, 2: 2}), Counter({0: 1, 2: 2})]
我要查找的结果是一个包含 3 列的数组,分别表示值 0 到 2 和行的 len(listvalues)。每个单元格都应填充数组中该值的百分比:
# Result
66.66 0 33.33
0 50 50
33.33 0 66.66
所以 0 在数组 1 中出现 66.66%,在数组 2 中出现 0%,在数组 3 中出现 33.33%,依此类推..
实现这一目标的最佳方法是什么? 非常感谢!
【问题讨论】: