代码在这里:
a1 = np.random.permutation(10)
print("before :" + str(a1.shape))
a1.reshape((1,10))
print("after :" + str(a1.shape))
结果:
before :(10,)
after :(10,)
我很困惑。为什么会这样?
答案 0 :(得分:1)
Numpy的reshape
不会就地修改数组(有关替代方法,请参见this answer)。您可以ndarray.resize
(确实会修改形状in-place
或将重新成形的视图再次分配给a1
:
a1 = np.random.permutation(10)
a1.reshape((1,10))
a1.shape
# (10,)
a1.resize((1,10))
a1.shape
# (1, 10)
或者
a1 = a1.reshape((1,10))