【数据分析】图书馆数据-06数据处理过程中的算法

来源:互联网 发布:类似sketch windows 编辑:程序博客网 时间:2024/06/11 21:24

1、加标签算法

给定一个数组:

x = [A,B,H,D,F,E,A,D,C,F,V,C,D,B,B,C,A,F,E,D,F,D,D]

Output:

x = [1,2,3,4,5,6,1,4,7,5,8,7,4,2,2,7,1,5,6,4,5,4,4]

说明:
将数组x中的字母全部用数字表示,相同的字母使用同一个数字表示,不同的字母使用不同的数字表示。

分析:
对于上述数组x而言,数组x的长度是已知的,数组中字母的类别也是已知的,所以在处理的过程中,会更加简单;而在数据分析中的数据集中,数据量是非常庞大的,类别也是未知的,此时就会变得复杂。

算法:

def add_label(s):  # 参数s为数组    l = []  # 最终list    m = []  # 临时list    for i in range(len(s)):        if i == 0:  # list是从0开始索引的,先考虑第一个位置            m = []            l = [1]        else:            m.append(s[i - 1])            if s[i] in m:                if m.index(s[i]) == 0:                    l.append(1)                else:                    l.append(l[m.index(s[i])])  # m.index(s[i])通过索引查找这个位置的元素            else:                l.append(max(l) + 1)    return l

2、多值处理算法

给定一个二维数组:

x = [['A', 36],     ['B', 85],     ['C', 15],     ['B', 65],     ['B', 52],          ['A', 89]]

Output:

x = [['A', 36, 89],     ['B', 85, 65, 52],     ['C', 15]]

说明:
第一列不动,将第二列中的元素加到对应的第一列元素后面。

分析:
使用字典进行操作,键值唯一,而值不唯一,也就是多值处理操作。

算法:

# 字典多值处理res = {}for item in l:  # l为二维数组    k = item[0]    if not res.has_key(k):  # 给定的键在字典中,就返回true,否则返回false        res[item[0]] = []    res[item[0]].append(item[1])print res

上述两个算法将应用于之后的数据处理操作。

0 0
原创粉丝点击