1
我正在使用python-3.x,我试图将[x]数组中的每个二进制行分成两部分,前四位数字将使第一个数字和第二个四位数字作为secund数字后我将它们转换为浮动。划分二进制行并将每个部分转换为浮点数或十进制数python 3
有一个函数“def test(binary)”,它将执行从二进制到浮点数的转换,并且有两个循环遍历数组。
例如,第一行是:[1,0,0,1,0,0,0,0] 我想把它分成1001 - 1000 那么最终的结果是[9,8 ]
import numpy as np
n = 4
##################################
# convert a list of Binary's to decimal
def test(binary):
wordlength = binary.shape[1]
shift = np.arange(wordlength-1, -1, -1)
decimal = np.sum(binary << shift, 1)
print (decimal)
##################################
np.set_printoptions(threshold=np.nan)
x = np.array([[1, 0, 0, 1, 1, 0, 0, 0],
[1, 1, 1, 1, 1, 0, 0, 0],
[1, 0, 0, 1, 1, 1, 0, 1]])
print(x)
for ii in range (3) :
start_array = 0
X = x[ii]
print ("X:" '\n', X)
#print(ii, X)
for i in range (2) :
end_array= start_array + n
print ("end_array:" '\n', end_array)
print ("start_array:" '\n', start_array)
flot = np.zeros ((3, 2))
flot[ii, i] = test(x[start_array:end_array])
print (flot)
start_array=end_array
,但我不能得到正确的结果,我不知道哪里出了问题,如果我的方式来解决这个问题是对的
感谢你为一个伟大的方式,但如果我用一个numpy的数组列表中的“二进制的”我会得到这个错误:'ValueError异常基地2:'[1 0''任何想法@mjsqu – azeez
我以另一种方式尝试过这种方法,但我有同样的错误,那为什么我尝试了我在开始写的东西! – azeez
更新,它似乎numpy数组可能是列表的列表,所以我已经添加了一个额外的'for'到循环 – mjsqu