故障诊断项目学习经验

第一版最简单的代码:

def Vote_Summary(narray):
    list_len = len(narray[0])
    result_list = [0] * list_len
    list_num = len(narray)

    for nlist in narray:
        for i in range(len(nlist)):
            if nlist[i] == 1:
                result_list[i] = result_list[i]+1

    for i in range(len(result_list)):
        if result_list[i] >= (list_num/2):
            result_list[i] = 1
        else:
            result_list[i] = 0
    print(result_list)

narray = [[0,1,0,0,1],[1,0,0,1,0],[1,0,0,1,0]]
Vote_Summary(narray)

1.首先是定义定长0列表的问题

定义定长list的表达式:     list = [0] *100

之前记忆里面的是,         numpy.zero(10),这是numpy包里的函数,而且出来的是数组array

第二版用了切片的代码:

import numpy
def Vote_Summary(nlist):
    list_len = len(nlist[0])
    list_num = len(nlist)
    result_list = [0]*list_len

    narr = numpy.array(nlist)
    for col_num in range(list_len):
        narr_col = narr[: , col_num]
        num_1 = 0
        for i in narr_col:
            num_1 = num_1 + i
        if(num_1 >= (list_num/2)):
            result_list[col_num] = 1
    print(result_list)

nlist = [[0,1,0,0,1],[1,0,0,1,0],[1,0,0,1,0]]
Vote_Summary(nlist)

2. 切片的问题。

切片就是一个数组,一维的或者二维的或者更高维的,以二维为例子,从一个长方形里切出一个小长方形来。

arr[ 0 , : ]    切出一行来

只有二维数组可以二维切片,列表list只能一维切片

3.对于列表的修改问题

列表的修改应该是只能用a[i]来修改了,如果是for i in a再去改i,是影响不到数组里的元素的

怪不得很多地方,遍历数组要用len算了长度然后再去for循环

猜你喜欢

转载自blog.csdn.net/sinat_38640606/article/details/82887203