如何将 ndarray 对象列表中的二进制值转换为十进制值?

How to convert binary values within a list of ndarray objects to decimal values?

我的列表包含 49 个条目。条目的大小各不相同。例如,第一个条目包含 3032 行和 27 列。这对应于 27 个信号,每个信号有 3032 个数据。数据目前是二进制的。列的大小在一个条目中也不同(27 列的大小不同)。例如,第一个条目的第一个信号具有以下格式:

print(signal_reshape_list[0][:,0] #print first entry, first signal with all columns 

输出:[列表([1, 1])列表([1, 1])列表([1, 1])列表([1, 1])....列表([1, 1] ]) 列表([1, 1])]

list([1, 1]) 对应于二进制数 0x00000011,因此将是“3”作为十进制数表示法。

print(signal_reshape_list[0][:,0] #print first entry, third signal with all columns 

输出:[列表([0,0,1,0])列表([1,0,1,0])列表([0,0,1,1])....列表( [0, 1, 1, 0]) 列表([0, 0, 1, 0]) 列表([0, 0, 1, 0])]

list([0, 0, 1, 0]) 对应于二进制数 0x00000010,因此将以“2”表示为十进制数。 list([1, 0, 1, 0]) 对应于二进制数 0x00001010,因此将以“10”表示为十进制数。等等...

你有一个这样的列表:

Output: [list([0, 0, 1, 0]) list([1, 0, 1, 0]) list([0, 0, 1, 1]) .... list([0, 1, 1, 0]) list([0, 0, 1, 0]) list([0, 0, 1, 0])]

并且希望输出就像:[2,10,3,..,6,2,2] 它可以通过以下应用于输出的代码来降低:

a= [list([0, 0, 1, 0]), list([1, 0, 1, 0]), list([0, 0, 1, 1])]
out=[]
for l in range(0,len(a)):
    A=a[l]
    out.append(A[3]+A[2]*2+A[1]*4+A[0]*8)

print(out)

并输出: out: [2, 10, 3]

更新:

每个列表元素应该连接起来得到像0010这样的二进制字符串,然后它会通过 int(result, 2) 变成十进制值 这是代码:

a= [list([0, 0, 1, 0]), list([1, 0, 1, 0]), list([0, 0, 1, 1,0, 0, 1, 1])]
out=[]
for l in range(len(a)):
    result= ''
    for element in a[l]:
        result += str(element)
    out.append(int(result,2))    

print(out)

二进制输出:['0010', '1010', '00110011'] 十进制输出:[2, 10, 51]