【问题标题】:Convert numpy array of integers to 12 bit binary将 numpy 整数数组转换为 12 位二进制
【发布时间】:2016-09-17 13:31:08
【问题描述】:

我需要将 np 整数数组转换为数组格式的 12 位二进制数。这样做的最佳方法是什么?

我有点卡住了,所以任何帮助都将不胜感激。谢谢!

这是我必须将整数转换为二进制的内容:

def dec_to_binary(my_int):
"""

Format a number as binary with leading zeros"""
if my_int < 4096:
    x= "{0:12b}".format(my_int)
    return int(x)
else:
    return 111111111111

【问题讨论】:

  • 我能够将单个整数转换为二进制,但无法弄清楚如何遍历 np 数组并更改值而不会出错:见下文 -
  • ** 见上文**
  • “二进制数”是什么意思?没有这样的python对象。
  • 为什么要创建一个 12 位二进制数组?如果这是为了节省内存,请注意涉及 '1''0' 字符串的解决方案实际上比 16 位整数(2 字节)使用更多的内存(12 字节)。

标签: python arrays python-3.x numpy


【解决方案1】:

轻微修正(将12b替换为012b):

def dec_to_binary(my_int):
    """   
    Format a number as binary with leading zeros
    """
    if my_int < 4096:
        return "{0:012b}".format(my_int)
    else:
        return "111111111111"

例子:

In [10]: n_array = np.array([123,234,234,345, 4097])

In [11]: map(dec_to_binary, n_array)
Out[11]: 
['000001111011',
 '000011101010',
 '000011101010',
 '000101011001',
 '111111111111']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 2019-03-29
    相关资源
    最近更新 更多