是否有一个numpy api用于转换和平面映射2d数组的行?

时间:2018-12-14 23:34:28

标签: scipy numpy-ndarray flatmap

假设我有一个2d的正整数的numpy数组:

[[1, 3]
 [2, 7]]

我想对每个元素应用一个函数,将其转换为整数序列,给我:

[[[0,0,1],[0,1,1]]
 [[0,1,0],[1,1,1]]]

然后我希望将其逐行展平为:

[[0, 0, 1, 0, 1, 1]
 [0, 1, 0, 1, 1, 1]]

我知道这可以逐步完成,但是也许有一个更好,更有效的内存和cpu时间明智的Numpy / SciPy api,可以进行上述转换? 谢谢!

1 个答案:

答案 0 :(得分:0)

我已经收到了这个,但是在我的书中却远远不够简洁:

def fn(x):
    return np.array([int(c) for c in '{0:08b}'.format(x)])
F = np.frompyfunc(fn, 1, 1)

a = np.arange(6).reshape((2, 3))

np.vstack(np.hstack(F(a))).reshape((2, 24))

要理解并没有比frompyfunchstackvstack结合起来更简单的方法