我有一个非常大的numpy数组。我怎样才能将其转换为
array([[1, 1, 0, 0, 1, 0, 0, 1],
[0, 1, 0, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 1, 1, 0, 0],
[0, 0, 1, 0, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 1, 1, 0],
[0, 0, 1, 1, 0, 1, 1, 0]])
将这两行分成一行?虽然我需要每四行作为一行?这个例子会有所帮助!我搜索了很多地方都找不到合适的解决方案!
array([[1, 1, 0, 0, 1, 0, 0, 1 , 0, 1, 0, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 1, 1, 0, 0 , 0, 0, 1, 0, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 1, 1, 0 , 0, 0, 1, 1, 0, 1, 1, 0]])
然后再回到
array([[1, 1, 0, 0, 1, 0, 0, 1],
[0, 1, 0, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 1, 1, 0, 0],
[0, 0, 1, 0, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 1, 1, 0],
[0, 0, 1, 1, 0, 1, 1, 0]])
答案 0 :(得分:4)
使用.reshape()
:
>>> import numpy as np
>>> a = np.array([[1, 1, 0, 0, 1, 0, 0, 1],
... [0, 1, 0, 0, 0, 1, 0, 0],
... [0, 0, 1, 0, 1, 1, 0, 0],
... [0, 0, 1, 0, 1, 1, 0, 0],
... [0, 0, 1, 1, 0, 1, 1, 0],
... [0, 0, 1, 1, 0, 1, 1, 0]])
>>> b = a.reshape(3,16)
>>> b
array([[1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0]])
>>> b.reshape(6,8)
array([[1, 1, 0, 0, 1, 0, 0, 1],
[0, 1, 0, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 1, 1, 0, 0],
[0, 0, 1, 0, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 1, 1, 0],
[0, 0, 1, 1, 0, 1, 1, 0]])