假设我有一个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,可以进行上述转换? 谢谢!
答案 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))
要理解并没有比frompyfunc
和hstack
和vstack
结合起来更简单的方法