【发布时间】:2016-01-29 21:18:00
【问题描述】:
我有以下代码:
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 以便第三行可以运行?
【问题讨论】:
-
我认为
ray_direction*l[:,None],如果你想使用第二行,可能与ray_direction*l.reshape(N,1)相同,其中N = 25。
标签: python arrays numpy reshape