def bin2decAry(x): if(x.ndim==1): x = np.expand_dims(x,0) bits = x.shape[1] mask = np.expand_dims(2**np.arange(bits-1,-1,-1),1) return x.dot(mask).astype(int)
时间: 2023-10-20 08:48:15 浏览: 86
ShinyMotion:我们为2015年本地Hack Day设计的小应用
这是一个将二进制数组转换为十进制数的函数。它也使用了NumPy库中的函数和操作来执行位运算。
参数x是要转换的二进制数组。
首先,函数检查x的维度,如果x是一维的,则使用np.expand_dims函数将其转换为二维数组。这是为了确保能够进行矩阵乘法运算。
然后,函数获取二进制数组的位数,并使用np.arange函数生成一个从bits-1到0的序列,作为mask的指数。再次使用np.expand_dims函数将mask的维度扩展为与x相同。
最后,函数使用矩阵乘法运算x.dot(mask)将二进制数组转换为对应的十进制数。astype(int)将结果转换为整数类型,并返回结果。
该函数返回一个十进制数或一组十进制数,表示给定二进制数组的十进制表示形式。
阅读全文