无法将阵列重塑为不同的形状

时间:2016-01-29 21:18:01

标签: python arrays numpy reshape

我有以下代码:

l = -r_dot_k - sq_rt + 2*sq_rt*(npl.norm(r_rel,axis=1)<np.abs(self._radius))
l.reshape(N,1)
intercept_pt = ray_direction*l + ray_point

#r_dot_k: (25L,)
#sq_rt: (25L,)
#r_rel: (25L,3L)
#l: (25L,) #after first line
#ray_direction: (25L,3L)
#ray_point: (25L,3L)

第三行有一个错误,即'操作数无法与形状(25,3)(25,)'一起广播。由于l的形状不正确,我添加第二行以尝试将l的形状从(25L,)更改为(25L,1L),但它不起作用。第二行之前和之后的l的形状仍然是(25L,)。为什么?我应该如何重塑l以​​便第三条线可以运行?

1 个答案:

答案 0 :(得分:2)

array.reshape没有修改array它会返回一个具有新形状的新数组。我想你想要:

l = l.reashape(N, 1)