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

    xiaoxiao2021-03-25  110

    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

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

    转载请注明原文地址: https://ju.6miu.com/read-16125.html

    最新回复(0)